Ingeniería inversa del bus CAN Peugeot 207
Aquí hay un truco de coche clásico "una cosa llevó a la otra". [Alexandre Blin] Quería invertir una cámara para su viejo Peugeot 207 y se hundió en un agujero de conejo, lo que le llevó a hacer una ingeniería inversa de bus CAN extremo con Arduino e iOS. Comprar un bisel costoso, una pantalla HDMI barata, un Arduino, un protector de bus CAN, un iPod touch con un cable de interfaz serial defectuoso, un módulo HM-10 BLE, un iPad 4S, la cámara en sí, y aproximadamente un año y medio trabajando en él de forma intermitente, finalmente salió más pobre con alrededor de € 275, pero ganó un trabajo bien hecho. Una renovación corporativa no solo le costaría mucho más, sino que lo privaría de todo lo que había aprendido a lo largo del camino.
Agregar la cámara fue la parte más fácil del ejercicio, ya que encontró una versión del mercado de accesorios específicamente diseñada para su modelo 207. La pantalla original sin gráficos tenía como objetivo dejar espacio para una nueva pantalla HDMI y un marco nuevo que le costaba mucho más que el pantalla. Además de mostrar la imagen de la cámara durante la inversión, la nueva pantalla también necesitaba mostrar toda la otra información sobre un sistema de entretenimiento. Esto no se pudo obtener del puerto OBD-II, pero el bus CAN parecía prometedor, aunque al principio no pudo encontrar detalles para su modelo. Pero con más de 2,5 millones de 207 en circulación, no ha sucedido mucho antes [Alexandre] un premio exitoso en un proyecto de un estudiante universitario francés que utilizó 207 para estudiar el bus CAN. El sistema de bus CAN 207 se subdividió en tres buses separados y el bus "cómodo" proporcionó todos los datos requeridos. Para descifrar los fotogramas CAN, usó un Arduino, un escudo de bus CAN y un script de Python para visualizar los datos, controlando qué fotogramas cambiaban cuando realizaba ciertas funciones, como cambiar el volumen o invertir la marcha, por ejemplo.
El Arduino no podía controlar la pantalla HDMI directamente, por lo que necesitaba hardware adicional para completar su truco. Si bien Raspberry Pi sería ideal, [Alexandre] es un desarrollador de iOS, por lo que, naturalmente, gravitó hacia el ecosistema de Apple. Conectó un iPod viejo al Arduino a través de una conexión en serie desde el puerto Dock del iPod. Pero el uso del adaptador HDMI de Apple para conectarse a la pantalla rompió la conexión en serie, por lo que tuvo que reemplazar su tapa de pensamiento. Esta vez usó un módulo BLE HM-10 conectado al Arduino y reemplazó el iPod Touch más antiguo (que no era compatible con BLE) por un iPhone 4S más moderno. Después de haber trabajado todas las piezas, no pasó mucho tiempo antes de que pudiera terminar esta actualización largamente dibujada, pero el resultado final se ve tan bien como un original de fábrica. Mira el video después de la pausa.
Es genial leer sobre estos trucos en los que el pirata informático se clava en los pies y no se rinde hasta que está terminado y desempolvado. Y gracias a su publicación detallada, y todo el código compartido en su repositorio de GitHub, debería ser fácil replicar esto por segunda vez, para aquellos que quieran actualizar su viejo 207. Y si estás buscando inspiración, mira esto gran Subaru casero - Actualización de la unidad principal.
abzman2000 dice:
me recuerda a una picadura en la memoria de los videojuegos hace más de 10 años. Foto memoria de fotos, obtenga más dinero en el juego, diferencie contra la memoria actual, obtenga más dinero, vuelva a diferenciar, continúe hasta que esté bastante seguro de haber aislado en qué memoria está el dinero, cámbielo y vea.
notarealemail dice:
Anhelo jugar con GameShark en el N64.
Jarek dice:
Todavía tengo la cinta vhs que te muestra cómo hacer esto ...
Antron Argaiv dice:
Hice algo similar en los 90 con mi sistema de cable. Invertí el protocolo de dirección en banda para las cajas de cable lo suficiente como para cambiar la dirección de mi caja a una que me dijeron que podía obtener todos los canales.
Sí, funcionó. No, no me atraparon. Y no, tampoco valía la pena ver nada en los canales "principales". Pero fue muy divertido descubrir el protocolo y demostrar que lo hice bien eligiendo una dirección del flujo de datos, poniéndola en mi caja y viendo todos los canales.
Mythgarr dice:
¿Hace más de 10 años? Sigo usando Cheat Engine con bastante regularidad. Probablemente exista una alternativa de fuente gratuita.
CRi dice:
Lol sobre invertir tanto dinero en un Peugeot de 10 años.
Supongo que eso duplicó el valor del auto ... tal vez incluso pueda triplicarlo si llena el tanque 😉Hans dice:
Sin duda: gran trabajo y esfuerzo. Pero, ¿quién diablos necesita una cámara trasera para un Peugeot 207?
Ren dice:
"¿Pero quién diablos necesita una cámara trasera para un Peugeot 207?"
¿Alguien con vértebras cervicales fusionadas?
¿Alguien con un camino de entrada largo, estrecho y con curvas?
Además, preferiría parchear (es decir, piratear) un coche de 10 años que uno nuevo.Dante Blando dice:
Está en Francia. Tienen personal de reparación de Peugeot en todas partes. No se parece a los Estados Unidos.
Alquilé 207 cuando lo visité en 2008 y amaba al diablo. Buen equipo, excelente control de estado (nivel de aceite en la pantalla como objeto medido, por ejemplo).
Alexandre Blin dice:
Vivo en Niza, los estacionamientos son muy duros;) Créanme, ¡es útil!
Alexandre Blin (@alexandreblin) dice:
¡Vivo en Niza, aparcamos en todas partes en paralelo! Nuestras carreteras son pequeñas y los estacionamientos son estrechos;) ¡Créanme que funciona!
Garbz dice:
¿Invertir cuánto? 275EUR es un poco más de 2 tanques de combustible en muchas partes de Europa. También cuesta alrededor de 1/20 del valor del automóvil usado, que se vende por alrededor de 5000EUR.
CRi dice:
275 € por 2 recargas, maldita sea, son tanques grandes ^^
Solo estaba bromeando, porque los autos franceses, ya sabes, apenas son normales.
Tengo que admitir que debería haber dicho “invertir tanto TIEMPO y dinero en peugeot no vale la pena” 😉JohnU dice:
Peugeot ha producido algunos autos absolutamente increíbles que sospecho que nunca llegaron a los EE. UU.: El 205GTi fue uno de los mejores cuchillos calientes. En los últimos años (2000) resultaron ser una mierda triste, pero en los 80 y principios de los 90 hicieron un trabajo brillante.
Echa un vistazo a algunos de sus coches de rally / dakar de la época, busca "Climb Dance" en youtube y siéntate.
Al igual que Citroen TBH, también se han perdido un poco, pero al menos Citroen ahora está un poco más lento de una manera elegante y gaélica.
CRi dice:
Además DIEZ AÑO 207 nunca se venderá por 5000 € ...
3000 € máximo aquí en Bélgica.Borkie dice:
acabo de comprar uno en abril 🙂
Si es GLP y con 90000 km, aquí en Italia sí, se puede vender por 5000 €,
Bigote dice:
Usar productos de Apple de alguna manera arruina esto para mí, pero sigue siendo muy impresionante.
Shannon dice:
¿Por qué utilizar una plataforma informática barata que admita un entorno de desarrollo que él ya sabía que lo destruye? Admito que no es así como haría con este proyecto, pero no he jugado con iOS durante algunos años y, como mencionó en el resumen, obtiene todos los beneficios de tener un teléfono en el automóvil.
Martín dice:
¿Dónde ves una plataforma informática barata? Usó cosas de APPLE. Apple es lo opuesto a "barato", para mí Apple es sinónimo de equipo ridículamente caro para los "creyentes religiosos" que necesitan sacrificar su dinero a sus dioses para lograr su epifanía.
Pero, por supuesto, usar una plataforma que ya conoce, incluso una cara, puede valer la pena si ahorra algo de tiempo.Bigote dice:
No creo que valga la pena utilizar un sistema no libre en su propio proyecto. Por eso le escribí antes esas ruinas.
Ren dice:
Teniendo en cuenta que mi esposa está en su tercer iPad (el primero no tenía el teléfono incorporado, el segundo tiene la pantalla rota y no quería poner $ 180 para arreglar uno que ya era perenne ...
Anool Mahidharia dice:
Robó viejos dispositivos de Apple, los cuales rompieron pantallas que eran perfectamente adecuadas para su uso. Entonces, tal vez ahorró algunos euros allí.
Alexandre Blin (@alexandreblin) dice:
Estoy de acuerdo en que no es ideal para todos los proyectos. Pero compré el iPhone de un amigo por ~ € 80. Tiene una función de WiFi / Bluetooth / GPS y una batería. No era mucho más caro que Pi con los dongles adecuados (cuando empecé, el Pi 3 aún no había sido lanzado). Teniendo en cuenta que ya conocía bien la plataforma, era una elección obvia para mí.
TÉCNICA DEL MOTOR dice:
Estoy tratando de hacerlo con pi3, funciona bien, pero quiero hacerlo como un sistema multimedia totalmente manejable. Por eso quiero copiar un cambiador de cd, pero no tengo un cambiador de cd, por lo que no puedo encontrar mensajes canbus de un cambiador de cd. ¿Tienes un cambiador de cd? ¿O puedes ayudarme con eso? Por cierto, gracias por todo lo que compartiste. U inspiró a mucha gente. Si tienes tiempo y quieres que te ayude, puedes contactarme en webs[email protected], estaría muy feliz si pudiéramos hacer esto.
db dice:
La manzana usada obsoleta es una plataforma barata. Una manzana nueva no es barata.
Alphatek dice:
¡Compañía! Supongo que el coche de alquiler que descartó de la interfaz era un grupo VW 🙂
trandi dice:
¡Gran trabajo!
Sé lo frustrante que puede ser la ingeniería inversa del protocolo de bus CAN, así como para un tablero VW / Skoda / VDO, e incluso con mucha información disponible en línea, todavía no he podido ejecutar todo:
https://trandi.wordpress.com/2016/11/30/automotive-can-bus-hacking/Dan
man-x86 dice:
¡Gran proyecto!
He notado en algunos artículos que leer los comentarios termina siendo tan interesante como leer el artículo.Todavía estoy tratando de aplicar ingeniería inversa al bus I2C (sí, realmente es un bus I2C que viaja con uno o dos metros de cables) que conecta la radio a su unidad principal y al tablero. No ser capaz de operar un rango dentro del automóvil no ayuda.
Una vez que esto funcione, estoy pensando en colocar una pantalla (he estado considerando pantallas de tinta electrónica) y probablemente terminaré invirtiendo el bus KWP (el auto no es tan nuevo).Mate dice:
¿Pensaste que no podrías ver la pantalla de Eink por la noche?
man-x86 dice:
Me he dado cuenta de que la mayoría de los navegadores "retroiluminados" utilizan LED de borde, por lo que puedo obtener una tableta o copie su proyecto, como se muestra en esta página: http://e-ink-reader.ru/e-ink_backlight_en.php
He visto varios dispositivos de navegación para parapente y navegación basados en tabletas de tinta electrónica, y es mucho mejor que cualquier pantalla LCD u OLED en un entorno solar.JohnU dice:
¿Quieres decir que no puedes ver los medidores normales de un coche por la noche? ¡OH, ESPERE SÍ PUEDE POR LUZ!
De hecho, creo que la tinta electrónica es una gran idea para un panel / medidor porque no parpadea ni es brillante y puede iluminarse con luz ambiental. No me gustan los LCD / TFT OLED en los automóviles, y la iluminación tenue ajustable es una característica que se pasa por alto.
Martín dice:
¿Cuál es el problema con el rango de funcionamiento dentro del automóvil? Hay convertidores de tensión que producen una tensión de red de 12V. Hay telescopios que funcionan con baterías como el QDSO y extensiones.
Para su tarea, recomendaría uno de estos diminutos analizadores lógicos de 24 MHz y 8 bits conectados al puerto USB (clon SALEA), puede usarlo en su computadora portátil (si tiene uno o puede pedirlo prestado para estas pruebas).
E-Ink es muy lento y solo ciertos tipos están preiluminados (como en Amazon Paperwhite). ¿Realmente necesitas / quieres esto para la radio?man-x86 dice:
Solía separar cosas y depurarlas usando el alcance de la compañía (que es bastante cómodo con decodificadores de bus, activadores de palabras y muchas muestras de memoria), pero obviamente, no puedo separar toda la parte delantera del automóvil mientras estoy estacionado. en la calle ni quitarle el alcance a la empresa.
La mayoría de las veces utilicé un analizador lógico aleatorio con un chip de ciprés (probablemente también un clon SALEA). Puede leer el bus, pero no veo un problema analógico (bordes lentos, retiros débiles o captura de ruido). Pero ya es un buen comienzo.
De hecho, estaba empezando a pensar en poner una pantalla, pero primero necesito la ingeniería inversa de un bus I2C antes de continuar. De todos modos, sigo considerando que sus comentarios sobre retink son lentos y no tan legibles en la oscuridad.
Garbz dice:
¿Por qué no puedes alimentar a tu objetivo dentro de tu coche? No tuve ningún problema en cuidar el mío con un inversor barato. No intente sincronizar en una red de 50 Hz. Al osciloscopio no le gusta hacer eso desde el inversor.
Andy Dodd dice:
Una cosa que sugeriría para otros que sigan esta ruta:
Al realizar la recopilación y el procesamiento de datos iniciales, no utilice Arduino + Bluetooth para el teléfono móvil (iOS o Android)
Pasará mucho tiempo simplemente haciendo que el código funcione contra la recopilación y el análisis de una gran cantidad de datos: para el rastreo y el análisis iniciales, una computadora portátil con Wireshark, Linux y Canable (canable.io) o un adaptador USB a CAN económico similar es mucho más fácil.
Tenga en cuenta que si está creando un prototipo con una computadora portátil y Canable, la migración a Pi 3 + PiCAN2 no es difícil, ya que las interfaces de programación son idénticas. Sin embargo, el PiCAN2 con un regulador incorporado apenas puede mantener Pi3 en funcionamiento, y ciertamente no puede mantener Pi3 con un monitor en funcionamiento.
armario de monos dice:
Al menos un buen truco en la-tecnologia ... se ve mejor que los sistemas multimedia provistos en muchos autos.
me recuerda este truco: https://la-tecnologia.com/2009/07/15/integrated-steering-wheel-radio-controls/
Por cierto, el 207 es un gran auto, especialmente el 1.6 THP turbo ... Me pregunto si esta electrónica funcionará con 206+
Viva,
Lobo dice:
Solo por curiosidad, no utilizo Raspberry Pi ...
Me gustaría operar un tablero digital en mi camión y pensé en usar una Raspberry Pi para manejar la pantalla.
El tablero digital se basaría en HTML5 y Java Script, que se ejecutaría en un navegador Chrome.
Y todos los datos mostrados serían de paquetes CAN.Asumiría que Raspberry Pi 3 tendría suficiente potencia de procesamiento para diseñar los medidores y demás. Pero no estoy seguro de cómo obtendría los datos del paquete CAN en el navegador para descifrarlos con Java Script ...
¿Parece factible?
Dan Ellis (@danellis) dice:
> El tablero digital estaría basado en HTML5 y Java Script y se ejecutaría en un navegador Chrome.
¿Por qué? ¿Por qué, por qué, por qué? ¿Cuál es esta obsesión por usar Chrome para todo? Hay muchas mejores soluciones que usar un * navegador web * para la visualización en un * sistema integrado *.
Arran corto dice:
¿Cómo qué?
Andy Dodd dice:
SDL? Kivy?
Básicamente, TODO excepto el servidor web y el navegador web funcionan en la misma máquina.
Lobo dice:
Bueno ... una buena razón ...
Hace unos años, hice una demostración de un concepto de tablero digital en una tableta Android:[youtubehttps://wwwyoutubecom/watch?v=GozhThMXfPU&w=560&h=315%5D[youtubehttps://wwwyoutubecom/watch?v=GozhThMXfPU&w=560&h=315%5D[youtubehttps://wwwyoutubecom/watch?v=GozhThMXfPU&w=560&h=315%5D[youtubehttps://wwwyoutubecom/watch?v=GozhThMXfPU&w=560&h=315%5D
Y me preguntaba si podría reutilizar todo ese código ...
La Raspberry Pi 3 debería ser más rápida que mi vieja tableta Think Pad, así que creo que debería poder hacer bien el tablero digital.Supongo que mi pregunta principal era cómo insertar paquetes CAN en el navegador con Raspberry Pi 3. 😉
Lobo dice:
Y sí, sé que falta el "5" en el indicador de RPM. 😉
foo dice:
si pero este sube a 11: D
Galane dice:
Debe omitir el 3.;) Https://youtu.be/xOrgLj9lOwk?t=85
J. Taverne dice:
Chrome debería poder acceder a un puerto serie al igual que el sintonizador de limpieza.
anfitrión local dice:
Todo comenzó cuando alguien decidió llamarlo "Google Chrombie ™ y Fitch". Luego ganó más popularidad que M $ Internet Explosive, se convirtió en un sistema operativo para computadoras portátiles ARM * de baja calidad * y comenzó a incluir software espía de Google y admitir cosas desagradables de DRM (te miro Netflix).
> Pero no estoy seguro de cómo obtendría los datos del paquete CAN en el navegador para descifrarlos con Java Script ...
No es Javascript (especialmente no es "Java Script"), se llama ECMAScript. ¿Y este tipo sabe qué es AJAX?
Arran corto dice:
Mi objetivo es hacer algo similar en mi e83 x3. Probé con pi y MCP2515 usando nodos para la interfaz con socketcan. Desde aquí, puede usar sitios web o ajax para actualizar las métricas.
Andy Dodd dice:
Probablemente sea mejor que use algo como Kivy para diseñar su interfaz de usuario.
No sé si hay alguna forma pirateable de hacer la interfaz SocketCAN de JS, especialmente desde un navegador. Sin embargo, Python 3 tiene soporte completo integrado para SocketCAN.
Brandon Bakker dice:
En su situación, usaría python-can para crear un sistema básico para reenviar los datos a través de sitios web al navegador. En lugar de solo el navegador Chrome, preferiría ponerlo en Electron, sin mucho esfuerzo adicional, pero actuará más como un software.
Galane dice:
Solo quiero tener un emulador de cambiador de CD para un Ford Taurus 1997 que reproduzca archivos MP3 de seis carpetas en una tarjeta SD, con hasta 99 archivos por carpeta. Es necesario tener una salida analógica estéreo, pretender ser un cambiador de CD y aceptar comandos de disco y pista desde la unidad principal.
Esto funcionaría en millones de alrededor de 1995 para vehículos estadounidenses Ford, Mercury y Lincoln de principios de la década de 2000.
hasit05 dice:
¿Cómo resuelvo ImportError: ningún módulo llamado _curses para Windows?
Jonathan Wilson dice:
Tal vez pueda aplicar ingeniería inversa al sistema eléctrico y encontrar una manera de que no sea una mierda (creo que los Peugeot de este año son famosos por sus problemas eléctricos).
Alain dice:
Alexander, ¿podrías contactarme por favor?