viernes, 19 de agosto de 2011

MAZDA 3 2007

Bueno os dejo unas fotos del coche como es por fuera, ya que su dueño se ha quejado de las fotos que he subido de su exterior un poco sucio.
Aprovecho para agradecer a Archival que me haya dejado su coche para realizar todas las pruebas que necesite.

Espero que os guste!!

....y mas del MAZDA 3

Hola de nuevo!!!!!

Aquí "peleándome" con el Mazda 3....

He seguido probando codigos y distintas PIDs en el coche, y he avanzado un poquito.

Ya se porque, como os comente en el anterior post, el coche se volvía "loco", y era porque el programa que hice de lectura lo configure el bus a 1 Mbps, y debí haberlo configurado a 500 Kbps, ya que es a lo que trabaja el bus CAN del OBD.  Pero tras solucionar esta duda, me ha surgido una nueva.....yo creía que el protocolo del OBD por medio de bus CAN era un protocolo de petición-respuesta, pero si leo el bus leo continuamente datos sin que mande una solicitud....¿que son esos datos? ¿acaso el bus no solo es de petición-respuesta sino que esta mandando datos continuamente?... es algo que tengo que mirar en las próximas semanas y mirar si puedo descifrar por ingeniería inversa alguno de esos datos....aunque es una tarea mas que sumar al carro de cosas por hacer....
Aparte de esto, he realizado una lista con todos los PIDs que he probado y los que he obtenido una respuesta correcta, aunque desconozco el porque algunos si me han funcionado y otros no, ¿puede que el vehículo no este dotado de los sensores necesarios?

También intente realizar un código que detectara la marcha en la que estamos siguiendo la información que encontré en una página muy interesante:



Aunque no he conseguido que funcione correctamente, ya que tengo que mandar 2 peticiones, tanto velocidad como rpm, y no consigo obtener los datos correctamente (solo consigo uno de los 2), si alguien supiera o tuviera algún código de ejemplo para sacar las marchas, estaría muy agradecido por su ayuda.

Bueno ahora voy a seguir probando mas códigos, para exprimir al máximo posible el coche mientras pueda acceder a él, así que os mantendré informados de los avances.

Un saludo!!



jueves, 11 de agosto de 2011

Mazda 3, pruebas de diagnosis OBD


Pues como ya veis el título no acompaña mucho a la transmisión inalámbrica de las señales del can bus, que es con lo que os dije que iba a continuar en mi anterior post y esto es porque hace como 1 semana que tengo acceso a un Mazda 3 del año 2007 con terminal de diagnosis OBD por medio de can BUS (justo ahora que llevaba 2 meses buscando algún coche de estas características y había desistido de seguir buscando...). 
Con esto se me ha presentado una nueva vía para conocer mejor el bus CAN, sus mensajes y su funcionamiento, así que he decidido dejar un poco de lado el tema de la transmisión inalámbrica (ya que además me esta causando innumerables problemas el intentar adaptar la librería de SECUduino a el hardware que estoy utilizando para la transmisión, lo que supongo que me llevará a realizar otro intensivo estudio de la librería, el MCP2551 y el MCP2515....para intentar adaptarla...ya que me encuentro algo perdido ante la compresión de la librería...), y ponerme manos a la obra a intentar sacar parámetros del coche por medio del terminal de OBD.
Lo primero de todo que hice fue comprobar que funcionaba por CAN BUS, para ellos comprobé que entre los pines 6 y 14 del conector había una resistencia de 60 Ω....y ¡allí estaban!.
Para el análisis del bus, dispongo de un Arduino Uno que ya adquirí hace un tiempo, junto al shield y la librería de SECUduino. Únicamente he tenido que adquirir un conector de OBD a db9 para así "engancharme" al coche. En esta pagina podéis adquirirlo:
http://www.cooking-hacks.com/


Tras esto gracias (de nuevo xD) a SECUduino, utilice el código usado en uno de los proyectos que se encuentran en su pagina, para poder intentar sacar las rpm del coche, y así comprobar que el vehículo responde a los PID estantar que podemos encontrar en la wikipedia.


Y funcionó perfectamente, aquí os dejo con algunas imágenes y un vídeo del programa sacando los valores de las rpm:

Tras esto me puse a realizar mas códigos para leer otros valores. 

Primero hice un sencillo programa en el que simplemente leía lo que recibía del terminal OBD, según tengo entendido trabaja de manera pedido-respuesta, por lo que no detectaba ningún mensaje, aunque comento esto porque nada mas cargar el programa, el coche (encendido) realizo un anómalo aumento de las revoluciones y dejo de responder a cualquier tipo de orden que realizara externamente (pisar el acelerador para aumentar las revoluciones...). No se cual puede ser la razón, pero me ha parecido como si el coche se quejara porque lo estoy intentando analizar.....:)

A parte de esto, he probado varios códigos (sacando los PID de la wikipedia) y algunos de ellos, los de los primeros PID que encontramos en la tabla de la wikipedia como 0C-0D-11 han funcionado perfectamente (velocidad, posición del acelerador, rpm ) mientras que otros con PID como 45-46-51-5B-67 (tipo de combustible, temperatura ambiente, temperatura refrigerante...), no funcionaban o recibían mensajes con los 2 últimos bytes del mensaje como […..FF-64] en intervalos de tiempos largos y no iguales. Ahora voy a intentar analizar la causa de que algunos PIDs funcionen y otros no, intentando modificar el mensaje para ver todos los mensajes que manda el coche tras la petición y probando otros PIDs nuevos. Os mantendré informados por si saco alguna conclusión relevante de los PIDs.
De aquí en adelante seguiré intentando conseguir el máximo numero de parámetros del Mazda y comenzare con la librería, haber si puedo hacer algo...


Un saludo!!!

miércoles, 3 de agosto de 2011

Bus CAN y el shield de SECUduino


Buenas a tod@s!!

Bueno ya he probado los Arduinos que tengo con los shield de SECUduino y funcionan a la perfección. He probado a realizar los tutoriales de la pagina web de SECUduino:


Me ha servido de mucha ayuda para comprender el funcionamiento del bus CAN y como una primera toca de contacto. A todos los que queráis empezar un proyecto relacionado con el bus CAN, empezar por esta pagina tanto tutoriales, noticias, y sobre todo el FAQ, que contiene la información necesaria para comprender el bus.



Os dejo con unos vídeos de los tutoriales que he realizando siguiendo los pasos del grupo SECUduino, perdonar si están mal grabados pero entre que la cámara no es muy buena y no tengo demasiado pulso ….

- Transmisión del estado de unos leds:


- Alarma:


- Potenciómetro+servo:


Siguiente paso, meterme con la transmisión inalámbrica del bus CAN.......