lunes, 29 de agosto de 2011

Cambiar bombillas del Mazda por leds.

Las bombillas del coche se las he ido cambiando por unas de leds, casi todas menos las de cruce y largas (ya que no hay de leds, solo se podrían cambiar por xenon, pero esto lo dejo para otro día) con intención de no volver a cambiarlas nunca más (si no se estropean) y por estética (el color que dan es mas intenso). Las he comprado todas por Ebay, a este vendedor: http://stores.ebay.es/wardenjp2002
He cambiado tanto las interiores (lectura conductor y pasajero, luz de cortesía, guantera y maletero) como las exteriores (posición, intermitentes delanteros y traseros, freno central y antiniebla trasero). Las luces de freno traseras ya eran de leds en mi modelo (Sportive), en el resto de modelos creo que son convencionales.
Aquí tenéis una relación de las bombillas por si quieres cambiarlas:

Tengo que decir que solo he tenido problemas con unas de posición W5W de 12 leds convencionales que compré y me duraron unos meses (empezaron a fallar algunos leds de los 12). EL resto con leds SMD me han ido perfectas, realmente se ven muy bien. Hay otra ventaja con las bombillas led en el caso de los intermitentes, el encendido es inmediato. Con las incandescentes a la hora de encender las bombillas hay un poco de retardo (fade in). También hay un problema/ventaja: los intermitentes tienen un sistema de detección de bombilla fundida y al reemplazarla por las de leds la frecuencia de los intermitentes va un poco más rápido. A mi me gusta así, ya que considero que da más seguridad a la hora de cambiar de carril: entre el color más intenso y mayor cadencia te haces notar más (objetivo de estas luces). El problema vendrá cuando vaya a la ITV, ya que aquí en España si ven algo fuera de los normal no les suele gustar, ya lo veré cuando tenga que pasarla.
Para cambiar todas las bombillas no he tenido que realizar ninguna adaptación, ya que son totalmente compatibles. Solo hay que probar que la hayas puesto en la polaridad correcta y ya está.
Solo me he encontrado un problemas, los intermitentes laterales. Estos intermitentes tienen una bombilla incandescente que no se puede cambiar, ya que la cubierta está pegada de fábrica y no se puede despegar sin romperla. Para sacar este piloto solo hay que empujarlo hacia un lateral y tirar del otro lado, si no sale probar en el otro sentido.


Es importante que al sacarlo identificar la polaridad del conector, ya que las bombillas leds tienen polaridad y en este caso no podremos cambiarla una vez colocada. Al conector llegan 2 cables, uno negro totalmente y otro negro mas otro color. Este con un color es el positivo.
La bombilla led que he usado es tal que así:




 El identificar la polaridad es crucial, ya que luego el conector del piloto no se puede invertir. Localizando el ánodo de un diodo ya tenemos el positivo. Para montar la bombilla simplemente corté la parte saliente del piloto:


Saqué la bombilla incandescente y preparé el agujero del conector para alojar la de led. Para montar la bombilla soldé las patillas al conector:

Y luego usando masilla epoxy volvi a poner el conector en su sitio:


El resultado una vez montadas en el coche es bastante bueno: una luminosidad no mucho mayor que la incandescente pero un color más vivo y sobro todo un tiempo de respuesta mucho mayor, se enciende al instante.

miércoles, 24 de agosto de 2011

Restauración de un cockpit o salpicadero.

De un amigo que ya montó una pantalla en su Mazda 3 conseguí parte de una instalación anterior. Concretamente una pantalla Liliput de 7" encajada en un panel del cockpit del coche (más bien es el salpicadero pero me gusta más decir cockpit, aunque es más indicado para un panel de mandos de avión o coche). Este panel está justo encima de las salidas de aire y tiene bastante sitio por debajo, así que montó la pantalla de tal manera que quedaba oculta y se podia levantar. Este es el post original: http://www.clubmazda.es/foros/viewtopic.php?f=3&t=4413.
Pues este panel lo he utilizado para probar los materiales y técnicas a usar para integrar la pantalla, básicamente resina epoxi y masilla de poliester. Recuerdo que yo la pantalla la quiero integrar donde va la radio, usando el kit de Metra para alojar un DIN2 y esta restauración es básicamente una prueba.
El cockpit una vez desmontada la pantalla estaba en este estado:
El cockpit agujereado
Las dos piezas de plástico
Los plásticos en su sitio

Primero limpié de restos de pegamento los bordes de los plásticos, y también este pequeño lijado permitirá  a la masilla epoxi fijarse mejor:

Para fijar las dos tapas al panel y que queden lo más enrasadas posibles he improvisado:


De esta manera puedo colocar las tapas y que estas se coloquen siguiendo la curvatura del propio panel. Para fijar estos plásticos he usado masilla epoxi de Feroca, la manera más fácil de mezcalrla en la proporción correcta es haciendo bolitas. Hay que usar guantes para que no se peguen a los dedos:


Aplicando la masilla por debajo:

Eliminando sobrante por la parte superior y lijando:

Ahora el siguiente paso es usar la masilla de relleno de poliester. De esta hay dos tipos, una de relleno y otra para acabado fino, yo solo he usado la de relleno:

Hay que decir que endurece bastante rápido una vez mezclada con el endurecedor, así que hay que darse prisa, he usado una paleta de pintor:

Después de un primer lijado grueso (lija grano 80):


Vuelta a aplicar masilla y lijado fino (lija grano 150), listo para pintar:

En este momento había pocas imperfecciones, se podrían haber tapado con otro enmasillado y con masilla de acabado, pero ya tenía suficiente como entrenamiento. Después pinté con un spray negro con este resultado:


Cockpit acabado.
De este trabajo se extraen varias conclusiones: La masilla epoxi y la masilla de poliester se agarran al plástico perfectamente si este está lijado y limpio claro, también quedan muy duras pero modelables. el acabado depende en gran manera del último lijado que se haya hecho, si este es fino la pintura disimilará el lijado. Lo digo porque en mi caso la zona con masilla de poliester ha quedado muy lisa en comparación del resto del plástico que tenía como 'textura' en el plástico. Debería haber lijado toda la superficie, haber aplicado masilla de acabado y pintado a pistola para un acabado perfecto, pero para ser una prueba no ha quedado nada mal, quizás aproveche esta pieza algún día para meter unos relojillos:
http://www.mazdaspeeders.com/index.php?topic=105012.0

sábado, 26 de febrero de 2011

Primeros mensajes CAN:

Ya tengo listo los primeros resultados del análisis del bus en estático, es decir dentro de un parking. Para acabar de mapear correctamente algunos valores tendré que hacer un análisis conduciendo. Tampoco he conseguido mapear algunas cosas como las luces, los elevalunas o la temperatura exterior, posiblemente porque esten en el bus de motor o no estén. La temperatura exterior debe estar en alguno de los mensajes, ahora que he localizado donde está el sensor (delante del radiador) podré calentarlo para ver que mensaje queda afectado.
 El funcionamiento del climatizador y los datos de consumos y velocidad media que se muestran en el ordenador de a bordo también están claros donde están, el consumo instantáneo falta ver que formato muestra. Otras cosas que no he comprobado simplemente porque ni me he acordado son los sensores de cinturón de seguridad y los retrovisores eléctricos.
Otro cosa que me hubiera gustado encontrar es la marcha que hay puesta, para poder diseñar un algoritmo que te recomiende cambiar de marcha en base a la velocidad, consumo instantáneo actual, revoluciones.. Y avisarte en el LCD que cambies a otra marcha. Quizás mas adelante conecte el bus de motor para poder hacer esto. Estos mensajes si están en el análisis que hizo Madox, seguramente porque su Mazda es mas nuevo, y al ser una versión americana marca las marchas automáticas (1,2,3, P, N, R). Otra diferencia muy importante es que él ve los mensajes 290 y 291 que son los códigos ascci de lo que hay que mostrar por el LCD. Esto es así porque en el reestilyng del Mazda el LCD tiene su propia centralita CAN y no depende directamente de la radio. Parece ser que en Mazda se dieron cuenta de que era una putada muy grande para quien quisiera cambiar la radio quedarse sin todas las funcionalidades del LCD. Esto le permitió a Madox y otros hacks que circulan por internet con este LCD interactuar con él simplemente lanzando los mensajes necesarios sobre el CAN Confort. Pero tiene un inconveniente, tienes que enviar los mensajes más rápido y en mayor cantidad de los que envia la radio a su vez para evitar el flickering al mostrar dos mensajes a la vez.
En mi caso va a ser algo más complicado. La comunicación con el LCD parece ser que es un SPI pero aún he de descubrir que señales son exactamente porque tengo 5 señales de datos/sincronismo y con el SPI solo serian 4. Bueno, aquí dejo el documento y unas fotillos de como he empezado a analizar las comunicaciones del LCD.

Mensajes CAN Mazda 3 2004 (google Docs)

 
Set de Hacking CAN y del LCD.
Comunicaciones SPI?

viernes, 11 de febrero de 2011

Conexión del LCD.

Como el objetivo principal es controlar el LCD hay que descubrir que señales envía la radio para poder reproducirlas después. Para ello he de interceptar las comunicaciones desmontando el LCD. EL conector es un JST de 14 vias paso 2.0mm por lo que la 'centralita' que diseñe tendrá un conector macho en el PCB para conectar el LCD.

LCD Mazda 3.

La conexión en el propio LCD solo tiene 12 cables, por lo que haré un conector externo con 12 pines para poder ver las comunicaciones con el osciloscopio.
.
Conector en el LCD
  Al intentar desmontar el circuito para poder ver el micro que controla el LCD veo que debería desoldar todos los pines que van al LCD, así que mejor no meto mano porque si me lo cargo tendría que buscar otro. Por suerte los que diseñaron el PCB dejaron un regalito:

Leyenda del conexionado del LCD
Al lado del conector tenemos la leyenda de los pines, que me servirán para poder entender mejor que señales capto con el osciloscopio. Por ahora ya veo una tensión de 8V para el LCD que tendrá que generar. Las linea LCD-DAT, LCD-SCL y LCD-CS dan pistas sobre que la comunicación puede ser SPI, pero también puede ser una comunicación síncrona corriente. Para descubrirlo sueldo una serie de cables a los pines del conector del PCB que irán a una pequeña placa con tira de pines y me permitirán montar el LCD en el coche funcionando y observar las comunicaciones.


Cables soldados al conector del LCD.

Placa con tira de pines.

Conector instalado para el análisis.
Así que ahora además de las comunicaciones CAN tengo que trabajar también sobre la comunicación con el LCD, al menos ya tengo todo dispuesto para ello. Por otro lado he ido poniendo en marcha el entorno de desarrollo para PIC, ya tengo el MPLAB funcionando y pudiendo compilar en C, el programador/debugador ICD2 y un PIC 16F876 que tenía por ahí para ir abriendo boca, el que usaré finalmente será el 18f2480. Quizás primero adelante un poco con los mensajes de CAN, para tener claro que es lo que puedo mostrar en el LCD y diseñar los botones necesarios para configurar los mensajes a mostrar. Por cierto, buscando por ahí información me topé con esta imagen:
Mapa de centralitas.
Se parece a la imagen que cree en la entrada anterior con los números de centralitas, pero con las centralitas identificada. Algo así tiene que acabar siendo el mapa que hice pero además identificando los mensajes.

Próximamente más cosillas.



domingo, 16 de enero de 2011

Primer análisis de mensajes CAN

Ya tengo capturados unos cuantos mensajes con el identificador de mensaje. Pare ello además de todo lo dicho anteriormente hay que mandar un comando más al ELM327 para que muestre el encabezado del mensaje: ATH1. Hay otro comando que muestra un byte del mensaje que describe la longitud de los datos (DLC): ATD1, pero es más para comprobar y preparar el buffer de recepción.
Los mensajes los he capturado con el coche parado y sin el motor en marcha, solo activé los elevalunas y las luces un momento para ver si había cambios. En el momento no vi nada por la velocidad a la que se muestran por el terminal, pero luego analizando el log si que hay mensajes que cambian. El resumen de mensajes sería este:

ID Receptor  Emisor B0 B1 B2 B3 B4 B5 B6 B7
23  23 40






201 2  1 0 0 40 0 0 0 0 0
265 2  65 0 0





285 2  85 60 0 0




295 2  95 0 0 0 0 0 0 0
2A0 2  A0 C0 AA 52 80



400 4  0 0 1A FF FE 0 65 1 C4
401 4  1 0






420 4  20 6C 0 0 0 42 0 0 0
460 4  60 3 C0 0 0 0 0 0 0
4F3 4  F3 32 31 31 34 35 38 37 39
4F4 4  F4 42 4B 31 34 46 32 35 31
4FA 4  FA 1C DE 90




501 5  1 11 2 0




511 5  11 1 2 0





De cada uno hay varios cada segundo, con cadencias diferentes. Si me fuera necesario más adelante analizaría la cadencia de los mensajes para preparar su recepción. Otro detalle es que a diferencia de Madox no veo ciertos mensajes, quizás cuando esté en marcha o quizás son mensajes puntuales que solo se muestran una vez cuando son necesarios. Haré pruebas de campo con el coche en marcha, logeando los datos y luego importándolos a una base de datos para tratarlos más fácilmente. Hasta ahora he usado excel y la identificación de emisor y receptor está hecha a mano. Con estos datos he creado un mapa de mensajes o "centralitas" ya que una misma centralita puede enviar varios mensajes con diferente identificador, pero ya podemos ver dos grandes receptores de mensajes, la centralita 2 y la 4:
Mapa de mensajes CAN
Por ahora solo están las direcciones de los envíos, espero ir completando el mapa con el significado de esos mensajes según vaya descubriendo que hay dentro de ellos.

viernes, 14 de enero de 2011

Soporte magnético para móvil.

Hasta que no tenga montado el carputer necesito un GPS para salir de excursión, y mi HTC Hero cumple muy bien, con google maps o con Copilot. El problema era el soporte para el móvil, hasta que encontré estos: http://www.tetrax.it/es pero son un poco caros, así que mejor me lo fabrico yó. No voy a explicar mucho porque las imágenes hablan por si solas de lo simple que es, solo la lista de materiales:
  • Imanes de neodimio planos, yo los saqué de un disco duro estropeado.
  • Hojas de cutter finas.
  • Cinta de doble cara fina o blue-tack
  • Cinta de doble cara gruesa
He creado unas instrucciones en Instructables: http://www.instructables.com/id/Magnetic-phone-holder-for-car/







domingo, 2 de enero de 2011

Comenzando con el ELM327

Para poder descifrar los mensajes del bus de confort necesito acceder a él con el cable OBD. En el conector OBD del coche están presentes los dos buses, el de motor (HS, High Speed 500kbps) y el de confort (MS, Medium Speed 125kbps), pero el cable OBD solo está conectado al de motor. Madox también especifica este bus de Medium Speed en uno de sus comentarios.
Conector OBD, vista trasera.

Para poder conmutar entre los dos buses, y no perder la conexión con el bus HS por si hace falta algún día para leer errores de la centralita de motor (ECU), he instalado un conmutador de 2 polos en el propio conector, respetando la polaridad H-L del interface CAN para los dos buses.
Conector OBD con conmutador de selección de buses CAN.
Con el cable listo he comenzado a evaluar diferentes softwares de diagnosis de coche en sus versiones para ELM (ScanMaster, ScanXL, OBDSpy, ScanTool, Digimoto,wOBD, EasyOBD, EEC Analyzer, etc...), ninguno de ellos me sirve para poder filtrar mensajes CAN, ya que se basan en el protocolo OBD para poder leer mensajes de la ECU pero para poder ver si funciona el hardware sirven.
Para poder comunicarnos con el ELM327 lo haremos a través de un terminal serie, en mi caso he usado TeraTerm pero se puede usar hyperterminal de windows o PuTTY o cualquier otro. Hay que tener a mano el manual del ELM327 para saber que comandos ATM usar. La velocidad por defecto es de 38400, aunque hay un pin del ELM que permite configurarla por hardware a 9600bps. Otro de los pines del ELM es el que introduce un LF (Line Feed) al final de la linea, pero en mi caso no esta activado por lo que para comunicarse correctamente el primer comando será un ATL1 para activar el line feed.
Primeros comandos del ELM
Otro comando para ver todos los mensajes es el ATMA (Monitor All), que nos muestra una serie de tramas hasta que el buffer de recepción se llena y da mensaje de error. Para saber el protocolo actual usaremos ATDP (Describe Protocol) y nos confirma que es un bus CAN con identificadores de 11bits y 500kbps de velocidad. Al conmutar al bus de confort y realizar un ATPC (Protocol Close) y un ATMA para reiniciar el sistema de escaneo de protocolos obtenemos esto:
Cambio al bus de confort.

Los errores de recepción me parecen extraños, por lo que al comprobar el protocolo elegido con ATDP veo que es el número 8: CAN 11bit ID- 250 kbaud. Consultando el manual veo que hay un par de protocolos ajustables, el B y que ya viene por defecto con el formato que me interesa: 11bit ID, 125 kbaud. Fijo este protocolo mediante  ATSPB (Set Protocol B) y con un ATDP y un ATMA compruebo que funciona correctamente:

Fijar velocidad correcta para el bus (11bit ID, 125 kbps).
Ahora ya puedo leer correctamente mensajes CAN del bus de confort, para ello utilizaré los comandos ATMA (Monitor All), ATMR (Monitor Receiver) y ATMT (Monitor Transmitter).

Mensajes enviados hacia la centralita 2 (ATMR02).
 Aún tengo que acabar de leerme el manual del ELM para poder configurarlo correctamente y ver los encabezados de los mensajes, lo que me permitirá saber los números de las centralitas que hay en el bus (emisoras y receptoras). Por ahora he podido observar que la centralita 02 recibe datos del clima (si está encendido, velocidad de ventilador, temperatura, etc..), así que es un buen comienzo!!. Espero ir descifrando mensajes poco a poco, si veo que hay muchos mensajes quizás opte por un script en linux o algún software en C que me permita ir viendo los cambios bit a bit conforme vaya actuando sobre los controles del coche, al igual que hizo Madox con PHP y Javascript. Primero me miraré mas a fondo la configuración del ELM e iré buscando el micro que usar (NEC, Microchip?). En el trabajo ahora estamos usando un embedded EXM32-IXM35 que tiene interfaz CAN, pero me parece demasiado pasado de especificaciones para lo que quiero, o no? ;).