niccofi
RCI Junior Member
- Registrato
- 28 Novembre 2017
- Messaggi
- 11
- Punteggio reazioni
- 2
- Auto
- renault scenic
Il sito da dove ho trovato la guida è questo:
http://www.idaf.it/index.php?PHPSESSID=len8l246meohsg0kca2fjfsi54&topic=44976.msg614613#msg614613
e questa è la guida:
Ho messo in pratica l'idea che avevo illustrato qualche post prima, ossia utilizzare le informazioni che viaggiano sul CAN bus per pilotare l'accensione di un led durante la rigenerazione del FAP/DPF.
Per chi non lo sapesse il CAN bus è una linea di comunicazione digitale utilizzata per far comunicare le varie centraline dell'automobile; in pratica è realizzata mediante due soli fili elettrici e quindi permette di semplificare moltissimo l'interconnessione tra le varie centraline. Le informazioni su questa linea viaggiano sotto forma di messaggi broadcast, ossia ogni modulo (centralina) scrive sulla linea un messaggio e tutti i moduli interessati a quel messaggio sono in grado di leggerlo. E' un po' come una bacheca per gli annunci, chiunque può lasciare un biglietto e chi è interessato lo legge. Ad esempio la centralina motore pubblica periodicamente uno o più messaggi contenenti i giri motore, la velocità, la temperatura del liquido refrigerante, la massa aria aspirata, la temperatura dell'aria, ecc.; il quadro strumenti è interessato alla velocità, ai giri motore e alla temperatura, allora legge le informazioni sul bus e muove le lancette di conseguenza. Perdonatemi se ho semplificato molto la cosa ma non volevo scendere in dettagli tecnici sul CAN bus in questa sede.
Veniamo alla realizzazione, il materiale che ho utilizzato è il seguente:
- una scheda Arduino UNO R3
- uno shield CAN bus della seeedstudio
- un led
- una resistenza da 220 ohm
- un connettore DB9 femmina
- un connettore OBD2 maschio
- un cavetto con 4 fili
Arduino è una scheda dotata di microcontrollore programmabile in modo molto semplice e rappresenta il "cervello" di questo piccolo sistema.
Lo shield CAN bus è una scheda di espansione per Arduino che gli permette di interfacciarsi in modo molto semplice al CAN bus (leggere e scrivere messaggi sul bus).
Il connettore DB9 serve sia per portare l'alimentazione alle due schede sia per l'interfacciamento fisico al bus (CAN H, CAN L).
Il connettore OBD2 lo sto utilizzando per comodità in questa fase prototipale, in quanto mi consente di collegare e scollegare le schede alla macchina in modo molto rapido. A regime non servirà più perché prenderò l'alimentazione da qualcosa che sta sotto chiave, mentre i due fili del bus li prenderò direttamente dietro la presa di diagnosi.
Per far funzionare il tutto ho scritto un programma (meglio dire firmware) che va caricato sulla scheda Arduino e che fa le seguenti cose:
- ogni tre secondi invia una richiesta sul bus per conoscere la temperatura del FAP
- quando arriva la risposta la legge e la decodifica
- se la temperatura ricevuta è maggiore della soglia che indica l'inizio della rigenerazione (350 gradi) accende il led
- se la temperatura ricevuta è minore della soglia che indica la fine della rigenerazione (340 gradi) spegne il led
Quando non è in atto la rigenerazione il led emette un breve flash ogni volta che riceve il dato relativo alla temperatura del FAP (mi serve come feedback per capire se sta ricevendo).
Per compilare e caricare il firmware serve:
- Arduino IDE 1.0.6 (http://arduino.cc/en/Main/Software)
- libreria CAN bus della seeedstudio (https://github.com/Seeed-Studio/CAN_BUS_Shield)
- firmware (in allegato)
Ovviamente non posso garantire che funzioni su tutte le auto, sicuramente funziona sulle Focus II con FAP. Dovrebbe funzionare anche sulle Focus II con DPF perché mi pare che qualcuno che ha quest'auto (forse luckya) con torque vedeva la temperatura del DPF. Quindi per essere sicuri che funzioni o si prova prima con torque, oppure si fa la seguente prova utilizzando un ELM327 e putty (http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html):
- connettere ELM327 al pc e alla macchina
- vedere quale porta COM è stata assegnata al dispositivo
- aprire putty e nella sezione "Connection Type" scegliere Serial
- in "Serial line" inserire il nome della porta (es. COM3)
- in "Speed" inserire 38400
- selezionare la voce "Terminal" sull'albero a sinistra, poi mettere il check su "Implicit LF in every CR"
- premere il bottone open
- sulla schermata che si apre dare invio; dovrebbe apparire qualcosa tipo
?
>
- ora scrivere atz e premere invio; dovrebbe apparire qualcosa del tipo
ELM327 v1.5
- accendere il quadro strumenti dell'auto
- nel terminale putty scrivere 220992 (è la richiesta per avere la temperatura del FAP) e premere invio
se compare la seguente stringa, allora funzionerà anche arduino
62 09 92 00 8C
Nota: se la macchina non è fredda le ultime 4 cifre (00 8C) potrebbero essere diverse.
(00 8C è la temperatura del FAP in esadecimale con un offset di -40 gradi C, chi vuole può verificare usando la calcolatrice di windows: 8C = 140, togliendo l'offset fa 100 gradi C).
Per concludere allego un po' di foto e il sorgente del firmware.
C'è qualcuno del gruppo che sa "crearlo"?
http://www.idaf.it/index.php?PHPSESSID=len8l246meohsg0kca2fjfsi54&topic=44976.msg614613#msg614613
e questa è la guida:
Ho messo in pratica l'idea che avevo illustrato qualche post prima, ossia utilizzare le informazioni che viaggiano sul CAN bus per pilotare l'accensione di un led durante la rigenerazione del FAP/DPF.
Per chi non lo sapesse il CAN bus è una linea di comunicazione digitale utilizzata per far comunicare le varie centraline dell'automobile; in pratica è realizzata mediante due soli fili elettrici e quindi permette di semplificare moltissimo l'interconnessione tra le varie centraline. Le informazioni su questa linea viaggiano sotto forma di messaggi broadcast, ossia ogni modulo (centralina) scrive sulla linea un messaggio e tutti i moduli interessati a quel messaggio sono in grado di leggerlo. E' un po' come una bacheca per gli annunci, chiunque può lasciare un biglietto e chi è interessato lo legge. Ad esempio la centralina motore pubblica periodicamente uno o più messaggi contenenti i giri motore, la velocità, la temperatura del liquido refrigerante, la massa aria aspirata, la temperatura dell'aria, ecc.; il quadro strumenti è interessato alla velocità, ai giri motore e alla temperatura, allora legge le informazioni sul bus e muove le lancette di conseguenza. Perdonatemi se ho semplificato molto la cosa ma non volevo scendere in dettagli tecnici sul CAN bus in questa sede.
Veniamo alla realizzazione, il materiale che ho utilizzato è il seguente:
- una scheda Arduino UNO R3
- uno shield CAN bus della seeedstudio
- un led
- una resistenza da 220 ohm
- un connettore DB9 femmina
- un connettore OBD2 maschio
- un cavetto con 4 fili
Arduino è una scheda dotata di microcontrollore programmabile in modo molto semplice e rappresenta il "cervello" di questo piccolo sistema.
Lo shield CAN bus è una scheda di espansione per Arduino che gli permette di interfacciarsi in modo molto semplice al CAN bus (leggere e scrivere messaggi sul bus).
Il connettore DB9 serve sia per portare l'alimentazione alle due schede sia per l'interfacciamento fisico al bus (CAN H, CAN L).
Il connettore OBD2 lo sto utilizzando per comodità in questa fase prototipale, in quanto mi consente di collegare e scollegare le schede alla macchina in modo molto rapido. A regime non servirà più perché prenderò l'alimentazione da qualcosa che sta sotto chiave, mentre i due fili del bus li prenderò direttamente dietro la presa di diagnosi.
Per far funzionare il tutto ho scritto un programma (meglio dire firmware) che va caricato sulla scheda Arduino e che fa le seguenti cose:
- ogni tre secondi invia una richiesta sul bus per conoscere la temperatura del FAP
- quando arriva la risposta la legge e la decodifica
- se la temperatura ricevuta è maggiore della soglia che indica l'inizio della rigenerazione (350 gradi) accende il led
- se la temperatura ricevuta è minore della soglia che indica la fine della rigenerazione (340 gradi) spegne il led
Quando non è in atto la rigenerazione il led emette un breve flash ogni volta che riceve il dato relativo alla temperatura del FAP (mi serve come feedback per capire se sta ricevendo).
Per compilare e caricare il firmware serve:
- Arduino IDE 1.0.6 (http://arduino.cc/en/Main/Software)
- libreria CAN bus della seeedstudio (https://github.com/Seeed-Studio/CAN_BUS_Shield)
- firmware (in allegato)
Ovviamente non posso garantire che funzioni su tutte le auto, sicuramente funziona sulle Focus II con FAP. Dovrebbe funzionare anche sulle Focus II con DPF perché mi pare che qualcuno che ha quest'auto (forse luckya) con torque vedeva la temperatura del DPF. Quindi per essere sicuri che funzioni o si prova prima con torque, oppure si fa la seguente prova utilizzando un ELM327 e putty (http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html):
- connettere ELM327 al pc e alla macchina
- vedere quale porta COM è stata assegnata al dispositivo
- aprire putty e nella sezione "Connection Type" scegliere Serial
- in "Serial line" inserire il nome della porta (es. COM3)
- in "Speed" inserire 38400
- selezionare la voce "Terminal" sull'albero a sinistra, poi mettere il check su "Implicit LF in every CR"
- premere il bottone open
- sulla schermata che si apre dare invio; dovrebbe apparire qualcosa tipo
?
>
- ora scrivere atz e premere invio; dovrebbe apparire qualcosa del tipo
ELM327 v1.5
- accendere il quadro strumenti dell'auto
- nel terminale putty scrivere 220992 (è la richiesta per avere la temperatura del FAP) e premere invio
se compare la seguente stringa, allora funzionerà anche arduino
62 09 92 00 8C
Nota: se la macchina non è fredda le ultime 4 cifre (00 8C) potrebbero essere diverse.
(00 8C è la temperatura del FAP in esadecimale con un offset di -40 gradi C, chi vuole può verificare usando la calcolatrice di windows: 8C = 140, togliendo l'offset fa 100 gradi C).
Per concludere allego un po' di foto e il sorgente del firmware.
C'è qualcuno del gruppo che sa "crearlo"?