Kawasaki Motorcycle Forums banner

06/06 ZX636 ZX6R actualización del velocímetro y TRE

234K views 533 replies 187 participants last post by  gavinvandertoorn  
#1 · (Edited)
05/06 Actualización del velocímetro ZX636 ZX6R

Hola a todos.

Hace un tiempo hubo una gran discusión sobre cómo instalar un velocímetro ZX6 estilo P7 en una moto de modelo anterior (típicamente el modelo 05/06 C1H).

La razón principal para hacer esto era tener los bonitos diales blancos fácilmente legibles en lugar del tipo LCD, que es bastante ingenioso pero menos claro.

Bueno, en resumen, se podía reemplazar el velocímetro (de hecho, los pernos de montaje son exactamente iguales para ambos modelos) siempre que se hiciera un adaptador (porque el velocímetro usaba un conector diferente en el nuevo modelo). Sin embargo, había que soportar una molesta luz de advertencia intermitente causada por la falta de comunicación de la ECU con los relojes. La única solución en ese momento era cubrir la luz con cinta adhesiva, pero entonces no se tendría el beneficio de ninguna advertencia real.

Por fin me he dedicado a la ingeniería inversa de la señal de comunicación entre una ECU P7 y un velocímetro P7. La idea es instalar un pequeño circuito de microchip para engañar al nuevo velocímetro y hacer que todo funcione perfectamente en un ZX636 del 05. De hecho, no solo se comporta la luz de advertencia, sino que también podemos hacer que el indicador de marcha funcione correctamente (es decir, hacer un gadget tipo TRE) también.

No espero que esto sea de mucha utilidad para la mayoría de la gente, pero quería poner la información en el dominio público, ya que aparentemente no se conoce. Se necesitaría ser ingeniero electrónico para hacer uso de esto.

OK, aquí vamos con la parte 1. Las señales:

La línea de comunicación de la ECU del velocímetro tiene una resistencia de pull-up incorporada a 10v, por lo que para inyectar una señal necesitamos un accionamiento de colector abierto.
La línea de comunicación es normalmente HI (9,8v más o menos)
Los datos se envían en tres paquetes con un período de 10 ms entre el inicio de cada byte de datos.
La señal de datos se repite con un período de 80 ms (o aproximadamente 60 ms desde el final de un paquete hasta el inicio del siguiente).
Si los datos se interrumpen, después de unos segundos el velocímetro informará un error FI y hará la cosa de la luz roja (LED) parpadeante, por lo que necesitamos mantener los paquetes de datos continuamente.
Los datos comienzan solo cuando se enciende el encendido.
Los tres paquetes de datos son todos serie de 8 bits más un bit de inicio (lo). El período de cada bit es de 64us.
(Los siguientes datos se escriben como si fueran un diagrama de temporización)

1ª marcha ...10100000001..(10ms)..10000000001..(10ms)..10100000001..(60ms)..
2ª marcha ...10010000001..(10ms)..10000000001..(10ms)..10010000001..(60ms)..
3ª marcha ...10110000001..(10ms)..10000000001..(10ms)..10110000001..(60ms)..
4ª marcha ...10001000001..(10ms)..10000000001..(10ms)..10001000001..(60ms)..
5ª marcha ...10101000001..(10ms)..10000000001..(10ms)..10101000001..(60ms)..
6ª marcha ...10011000001..(10ms)..10000000001..(10ms)..10011000001..(60ms)..

Así que para la 1ª marcha, si monitoreamos la línea de señal del velocímetro a la ECU (en un velocímetro P7 a la ECU P7, por supuesto), entonces vemos que la señal va a 0v durante 64us, luego 9,8v durante 64us, luego 0v durante 448us, luego de vuelta a 9,8v
Luego hay un intervalo de 10 ms (menos 576 us) al paquete medio, que es un marco nulo: 0v durante 576 us
Después de otro intervalo de 10 ms (menos 576 us) se repite el primer byte de datos.
La línea de datos está entonces inactiva (todavía a 9,8v) durante unos 60 ms hasta que se repite todo.
(En la secuencia de datos mostrada, los puntos representan dónde está la línea de datos a un nivel constante de 9,8v)

El velocímetro utiliza estos paquetes de datos para verificar continuamente las comunicaciones con la ECU, pero, por supuesto, estos también representan en qué marcha estamos.
Siempre que se envíe alguno de estos paquetes de datos de 3 bytes, el FI/LED rojo no se activará debido a una falla de comunicación.
Si la moto está en punto muerto, no se muestra ninguna marcha en la parte LCD del velocímetro.
Si la moto está en marcha, el segmento LCD muestra la marcha 1-6 dependiendo de qué paquetes de datos se estén enviando en la línea de comunicación de la ECU.

Ahora estamos en condiciones de hacer nuestro propio indicador de marcha automático utilizando la señal de RPM del motor y del tacómetro de la rueda. Esto se hace dividiendo el conteo de RPM del motor por el conteo del tacómetro de la rueda. Ambas señales ya van al velocímetro para mostrar la velocidad y las revoluciones.

OK, así que seguiré esto con una parte 2: hardware barato para hacer todos los controles de señal.
Finalmente, la parte 3: este será el software para programar en un micro PIC.

Saludos

Extr400
 
#2 ·
Si sirve de algo, Gipro fabrica un producto que extrae información de marcha de la ECU 03-06 a través del conector de diagnóstico. Afirman que es información calculada por la ECU (la ECU conoce la marcha), pero por otro lado, el conector de diagnóstico solo podría alimentar las señales del tacómetro y la velocidad.

Si se te ocurre un circuito que estás planeando, al menos me alegro. Las ECU de los kits no tienen información de marcha, por lo que todo tu arduo trabajo sería inútil, al menos para mí...

¡Sigue con el buen trabajo! :)
 
#4 ·
dulce, pero como también uso la ecu del kit...UPS

No me importa el pequeño F1, ya que el mío está cubierto con cinta adhesiva, siempre y cuando el tacómetro funcione y con el speedohealer la velocidad y la temperatura del agua, eso es todo lo que realmente necesito de todos modos.
 
#5 ·
Extr400, realmente necesitas publicar CON MÁS FRECUENCIA.
buena información, hombre.
había leído de algunos tipos que arrancaban el sensor de velocidad y obtenían una falla. hice una pequeña investigación y vi que LO REGISTRA, marca el bit, lo almacena en el registro de bits de falla y envía un código de luz FI.

no sabía que era un pullup de 10V. pensé que era 5V o 12.. jajaja

había leído de otra persona (un ingeniero electrónico integrado) que hay una forma de falsificar la ECU en el 12-R para "evitar" el limitador de velocidad. utilizó el recuento de pulsos del tacómetro para controlar la entrada de la ECU y satisfacer la detección de bits. Creo que lo ejecutó a través de algunos NPN o un amplificador operacional para algunos cambios de voltaje. ¿No recuerdo si tal vez una señal era TTL y la otra no?

tengo que buscarlo.
buena mierda. repeticiones.
 
#6 ·
05/06 Clocks upgrade to P7 - nearly there!!!

OK,
Así que he estado ocupado con un kit de desarrollo micro todo el fin de semana y ahora he completado la primera parte del software para apagar la luz FI y hacer que la información de la marcha funcione en los relojes P7.
Por el momento, tengo un pequeño programa de prueba en ejecución para probar mi comunicación ECU kid-on con el velocímetro. Recorre todos los códigos de marcha para que la pantalla pueda ser verificada.

La buena noticia es que todo funciona bien. Sin error FI ni LED rojo. La lectura de la selección de marchas es estable y sin fallos. He publicado una foto aquí. Esta es una actualización súper ingeniosa :)

Tengo que escribir más código a continuación para usar las revoluciones y la velocidad para calcular la marcha. También necesito reescalar el pulso de velocidad ya que las relaciones de la caja de cambios son diferentes para los nuevos relojes.

He basado la electrónica en un kit de desarrollo / programador Microchip barato, pero creo que será posible usar un programador casero (como Pony Prog) que solo cuesta $10 construir.
 

Attachments

#8 ·
Enfermo, estoy viendo esto ahora, se ve bien y un trabajo increíble
 
#11 ·
¡Haces plug and play y estoy vendido! Me encantan esos tacómetros.

Sin embargo, tengo una pregunta... eventualmente, podría reequipar mi moto por diversión, ¿cuánto se vería afectado o seguiría funcionando un speedo healer?

Además... la línea roja en ese tacómetro, ¿hay alguna forma de hacer que muestre la línea roja de la 636? ¿O al menos tener la opción de luz de cambio todavía?
 
#12 ·
Hola Lemmon1-
A ver cómo resulta esto. Si obtengo suficiente interés, puedo diseñar una PCB personalizada para que actúe como un adaptador de enchufe + microplaca. Solo necesita ser un poco más grande que el contorno del conector.
Había pensado en el problema del engranaje: podría proporcionar una opción para un piñón delantero 1 diente más pequeño. Cualquier cosa más compleja en términos de relación de transmisión puede ser fácilmente atendida por opciones en el software.

Recuerda que esto es efectivamente un curador de velocímetro también, por lo que no necesitas nada más.

No había pensado en la línea roja del tacómetro, pero la luz de cambio funcionará bien. Lo pensaré.

Saludos
Extr400
 
#14 ·
Gran trabajo. Como ingeniero eléctrico, entiendo lo que estás haciendo. ¡Simplemente no tengo el tiempo / la paciencia para lograrlo! ¡Felicidades!
¿Pacientes? ¿Tú también eres médico? :Laughing rolling: Para que conste, soy ingeniero mecánico y no tengo idea de lo que está hablando. :D
 
#17 ·
Eso es genial... Estoy bastante seguro de que en la parte de la línea roja probablemente está pintado de fábrica, así que no me preocupa demasiado eso... En cuanto a la transmisión, probablemente no haré más de +2 en la parte trasera solo para un poco de ayuda, tal vez... Para ser honesto, estoy más interesado en el trato plug and play que en el resto.
 
#18 ·
¡Buen trabajo!

Si no es un trabajo duro, me gustaría que guardaras el código que no corrige el velocímetro. Como las kawis 03/04 y 07/08 usan la misma entrada de velocímetro, no se necesita ninguna corrección.

Y solo estoy lanzando esto: si usas otra marcha que no sea la original, pero capturas la entrada de rpm y velocidad (el velocímetro estará mal), ¿no calculará la marcha correctamente? Y si usaras algo como un speedohealer DESPUÉS de que la marcha haya sido calculada, ¿también tendrías la velocidad correcta en el velocímetro? Así se abordaría el problema con los cambios de marcha...
 
#21 ·
¡Buen trabajo!

Si no es mucho trabajo, me gustaría que guardaras el código que no corrige el velocímetro. Como las kawis 03/04 y 07/08 usan la misma entrada del velocímetro, no se necesita ninguna corrección.

Y solo estoy lanzando esto: si usas otra marcha que no sea la de serie pero capturas las rpm y la entrada de velocidad (el velocímetro estará mal), ¿no calculará la marcha correctamente? Y si usaras algo como un speedohealer DESPUÉS de que se haya calculado la marcha, ¿también tendrías la velocidad correcta en el velocímetro? Así se solucionaría el problema con los cambios de marcha...
Hola markketo.
He echado un vistazo al manual de servicio del modelo 03/04 y parece que la señal del velocímetro es completamente diferente a la del P7 (aunque los datos del P7 también son incorrectos en mi copia):
Velocímetro 03/04: 60 mph a 146 Hz de señal del motor
Velocímetro 04/05: 60 mph a 1168 Hz de señal del motor
Velocímetro 06/07: 60 mph a 276 Hz de señal del motor (el manual de servicio dice 840 Hz)

Estoy trabajando en millas en lugar de km, pero la diferencia se mantiene.

Además, el libro dice que la 3ª marcha tiene una relación diferente entre 03/04 y 05/06. Estoy bastante seguro de que el nuevo modelo tiene una relación de marchas muy diferente a la de las motos antiguas.

Ya he mencionado que la transmisión final no es un problema.

Las motos 05/06 utilizan una línea FI dedicada de la ECU al velocímetro. Como esto también está presente en los relojes P7, supongo que los códigos de error FI normales seguirán informándose correctamente. ¡Tengo que comprobarlo, por supuesto!

Extr400
 
#19 ·
Y tengo que agregar, ¿eres capaz de codificar una entrada de interrupción en el circuito?
Esta caja eliminará por completo la función FI, lo cual no es bueno... Pero si pudieras hacer una entrada que impida que la caja transmita en la entrada positiva (la antigua señal de luz FI, por supuesto), entonces comenzaría a parpadear la luz FI cuando haya un problema real...
 
#20 ·
Ok, hora de otra actualización.

Ahora tengo la conversión de la señal de velocidad funcionando. Estoy probando con el velocímetro viejo y el nuevo, pero el nuevo reloj tiene mi circuito haciendo la conversión.

El factor de escala es dividir la frecuencia por 4,2211 (hmm, si está interesado, el manual de servicio de los relojes P7 parece dar información incorrecta sobre las pruebas del tacómetro). De hecho, mi software permite casi cualquier factor de escala con un grado muy alto de precisión.

Por el momento, el número del factor de escala está codificado (lo que significa que no puede cambiarlo) pero estoy pensando en tener un botón externo para permitir una función de ajuste. Esto facilitaría lidiar con cualquier cambio de marcha sin tener que irse y reprogramar el micro.

Por interés, puse una señal en el pin del tacómetro de cada velocímetro. Es una mierda que ambos lean en el lado alto. El C1H es un 6% rpm demasiado rápido y el P7 lee un 2,5% rpm demasiado rápido (la señal de entrada fue de 13.140 rpm) - ¿alguien más se ha dado cuenta de esto? Esto agrava el problema de que la luz de cambio se active a 14k en el velocímetro antiguo y a 15k en el nuevo. ¡Casi he agotado todas las funciones del pequeño micro que elegí para este proyecto, pero puede quedar un poco para hacer también un curador de tacómetro!

Todavía tengo que calcular la marcha a partir de las señales de velocidad y tacómetro y luego puedo alimentarla en el bit que envía el código digital al pin de la ECU de los relojes. Por cierto, esto es independiente de cualquier transmisión final, porque utiliza las señales directamente de la captación del motor (y antes de volver a escalarlas). Entonces, si cambia las ruedas dentadas, el indicador de marcha seguirá leyendo correctamente.

Si alguien quiere adelantarse al juego y construir uno de estos, podría hacer algo peor que pedir un pickit2 a Microchip (disponible directamente o a través de Digikey.com en los EE. UU. o Farnell.co.uk aquí en casa. También hay versiones de copia en ebay). También necesitará el micro específico, que es un PIC12F683. Publicaré pronto un archivo zip de la placa de circuito y los archivos de software tan pronto como todo esté probado.

Una nota final, es cierto que si alimenta una señal de velocidad reducida en la propia ECU, AUMENTARÁ proporcionalmente cualquier función de limitación de velocidad dentro de la ECU. Sin embargo, esto también puede afectar el mapeo del encendido, por lo que se debe tener cuidado. Personalmente, solo estoy usando el circuito descrito aquí para alterar las señales a los relojes, no a la ECU también.
 

Attachments

#23 ·
Entiendo esto un poco, tú y tú están haciendo un gran trabajo, sigue así hombre, es mucho trabajo duro, ojalá tuviera tiempo en el día para hacer estas cosas y todo eso
 
#28 ·
Al menos, tanto el 03/04 como el 05/06 utilizan el mismo método para mostrar los códigos de error, es decir, parpadeando el led durante ciertas cantidades y tiempos. Así que si el FI funciona para el 05, debería funcionar también en el 03. Confío en ti en esto, estoy bastante impresionado con tus habilidades eléctricas.

La información de la marcha pasa por esa señal FI dedicada (pulso de comunicación de la ECU en el 07, masa de la luz indicadora FI para el 03-06), así que creo que tiene que tener algún tipo de pin de interrupción. Entendí que de todos modos estás metiendo la señal de la ECU en la caja, así que no puede ser tan difícil de codificar, ¿verdad?

Otra cosa es qué hace la caja mientras el embrague está puesto. Si no envía, ¿no dará la luz FI entonces? Me gustaría que siguiera mostrando la marcha anterior antes de detectar una nueva, creo que eso se puede programar. ¿O hay alguna forma de enviar una marcha en blanco que no sea la luz de punto muerto?

El tacómetro de fábrica debería tener alrededor de un 7-10% de error, estoy bastante asombrado si el elemento 07 solo tiene un 2,5% de error. O incluso puede alimentar el tacómetro con una señal un poco optimista para evitar ese error del 7%. 16500 rpm reales suenan muy altas para que el motor las soporte. El 03 tiene una línea roja de 15500 y una línea roja real del motor de 14700 o algo así.