Monitorare le rigenarazioni del FAP con una scheda Arduino

Aperto da adamail, 03 Gennaio 2016, 20:28:20

Discussione precedente - Discussione successiva

0 Utenti e 1 Visitatore stanno visualizzando questa discussione.

adamail

--- 29/07/2023 ---

ATTENZIONE!
Questo progetto è del 2016, sono passati molti anni e molte librerie di arduino sono state cambiate compreso lo shield CAN bus della seeedstudio, inoltre io non manutengo questo progetto e (perdonate la franchezza) non ho tempo di dare supporto a nessuno.
Lascio il post, il codice e la relativa documentazione come spunto e punto di partenza per chiunque voglia approfondire o ritenga possa essergli utile, ma ovviamente deve cavarsela da solo, quindi sconsiglio di avventurarsi nelle realizzazione chi non abbia sufficienti conoscenze tecniche per portarlo a compimento.

---------------------


Questo progetto nasce dell'esigenza di tenere sotto controllo le rigenerazioni del FAP della mia auto. In principio ho utilizzato torque inserendo dei PID specifici (https://www.idaf.it/index.php?topic=35908.msg555126#msg555126), però bisogna tenere sempre acceso il cellulare con l'inconveniente che la batteria si scarica sempre, così ho cominciato a pensare a qualcosa che potesse diventare parte integrante della strumentazione dell'auto e in questa discussione https://www.idaf.it/index.php?topic=31098.msg567262#msg567262 è nata l'idea di utilizzare direttamente i dati che viaggiano sul CAN BUS ed elaborarli con un micro-controllore.
Ho scelto di utilizzare una scheda arduino UNO perché su di essa si trovano moltissime informazioni e poi sono disponibili schede aggiuntive (shield) che si interfacciano con il CAN.
La prima versione (https://www.idaf.it/index.php?topic=31098.msg568574#msg568574), accendeva un led durante la rigenerazione, mentre questa nuova versione visualizza costantemente su un display LCD 16x2 la temperatura del FAP e la distanza percorsa dell'ultima rigenerazione. Quando inizia la rigenerazione emette un beep e fa lampeggiare il display. Quando finisce la rigenerazione emette un altro beep e il display smette di lampeggiare.

Prima di passare alla descrizione voglio precisare che il firmware allegato viene rilasciato con licenza GNU GPL v3 (http://www.gnu.org/licenses/gpl-3.0.en.html), ma cosa ancora più importante che quanto descritto in queste pagine è puramente ad uso indicativo. Il sottoscritto o il forum non si assume nessuna responsabilità in caso di danni al veicolo e/o alle apparecchiature utilizzate!

Su quali auto funziona:
Sicuramente su quelle con codice motore G8DB, sulle altre bisogna fare delle verifiche.
Si può eseguire il seguente test 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 stringa 62 09 92 XX XX (XX=qualsiasi numero) proseguire con il test, altrimenti non funziona
  • nel terminale putty scrivere 22C938 (è la richiesta per avere la distanza percorsa dall'ultima rigenerazione) e premere invio
  • se compare la stringa 62 C9 38 XX XX XX XX (XX=qualsiasi numero) funzionerà anche la visualizzazione della distanza percorsa dall'ultima rigenerazione, altrimenti questa informazione non sarà disponibile
Se tutte le verifiche descritte hanno avuto esito positivo, questo dispositivo funzionerà anche sulla vostra auto.

Cosa serve (hardware):

Cosa serve (software)

Con la stripboard bisogna costruire una specie di shield che andrà connesso sulle altre due schede (arduino UNO e CAN BUS shield). Bisogna saldare i pin header, il trimmer ed il buzzer seguendo la figura breadboard.png. Fate attenzione a interrompere le piste esattamente come riportato nella figura. Alla fine consiglio di ricontrollare accuratamente che i collegamenti siano corretti e che non ci siano corti tra le varie piste. Lo schema elettrico finale deve essere quello riportato nella figura schema.png. Questa è la parte più complicata perché richiede molta attenzione e molta pazienza, un collegamento fatto male potrebbe far bruciare la scheda arduino e/o il display.
ATTENZIONE! Sulla shield CAN BUS è presente una resistenza di terminazione che va eliminata tagliando con un taglierino una pista sulla scheda stessa come riportato nella sezione "How to remove the terminal resistor" della pagina https://wiki.seeedstudio.com/CAN-BUS_Shield
Ora sulla scheda arduino inserite lo shield CAN BUS e su questo inserite la stripboard appena costruita. Utilizzate il cavo IDE 40 pin per collegare il display alla stripboard.

N.B.: il display è retroilluminato tramite un led e di solito è già presente una resistenza in serie ad esso (verificabile con un multimetro seguendo le piste della scheda del display stesso), qualora questa non sia presente e necessario aggiungerne una esternamente, il cui valore dipende dalla tensione nominale del led e dalla sua corrente di funzionamento.

Una volta preparato l'hardware si procede a compilare e caricare il firmware tramite la IDE Arduino. Con la IDE Aduino aprite il file fap_monitor.ino. Collegate arduino al PC, impostate ad 1 la define _TEST_MODE compilate e caricate sulla scheda, se la parte hardware è stata fatta correttamente dovreste vedere sul display la simulazione di una rigenerazione. Questa è anche l'occasione per regolare il contrasto del display tramite il trimmer. Se tutto funziona correttamente impostate la define _TEST_MODE a 0, compilate di nuovo e caricate sulla scheda.
Ora è tutto pronto per fare un ulteriore test direttamente sull'auto senza  PC.

Sullo shield CAN bus c'è un piccolo switch che permette alla schede di essere alimentate tramite OBD, verificate che sia su OFF, quindi collegate il cavo OBD/DB9 alla shield e alla presa OBD dell'auto (mi raccomando NON collegate il PC alla scheda). Ora spostate lo switch su ON (la scheda e il display dovrebbero accendersi) e accendete il quadro. Se tutto è andato bene dovreste vedere sul display i valori letti direttamente dalla PCM.

A questo punto riportate lo switch su OFF e utilizzate il jack da 2.1 mm + il cavo due poli per collegare le schede ad una alimentazione sotto chiave. Io mi sono attaccato al fusibile 136 della GEM per avere i 12V sotto chiave, mentre la massa può non essere collegata in quanto viene già presa dal cavo OBD.

Veniamo infine al costo. Il costo è molto variabile, si va dagli 80 euro comprando tutto in Italia, ai 30 euro comprando su ebay direttamente dalla Cina le versioni clone delle varie schede.

di seguito alcuni link utili:
http://www.protostack.com/blog/2010/03/character-lcd-displays-part-1/
http://elm-chan.org/docs/lcd/hd44780_e.html

Un ultima cosa: sconsiglio vivamente la realizzazione di questo oggetto e chi non ha mai realizzato (anche solo per gioco) un circuito su una millefori.

Aggiornamento (marzo 2016):
pulizia del codice

Aggiornamento (gennaio 2016):
Aggiunte nuove figure per la realizzazione della scheda.
Modificato il firmware e alcuni passaggi del test di verifica.

ernesto

complimentoni per lo studio effettuato, pochi di noi riuscirebberoquindi, va scaricato il putty per farlo lavorare con elm prima di spender soldi per l'hardware  e vedere se la centralina della nostra auto risponde alle"domande" formulate tramite putty/elm, in caso positivo, procediamo, ma volevo chiederti, potremmo anche utilizzare questo software per ottenere altre notizie dalla pcm?
focus MK 2,5 tdci 2.0   136 CV
cruise control illuminato, svuota tasche illuminato, cassetto illuminato, bracciolo illuminato con spia, cofano illuminato, pozzetti ant e post illuminati, coral monza 165mm, specchietti esterni con led, clacson su piastrine argentate

adamail

Citazione di: ernesto il 03 Gennaio 2016, 21:47:42
potremmo anche utilizzare questo software per ottenere altre notizie dalla pcm?

L'hardware si il software no, va modificato per richidere i dati che ti interessano. Diciamo che con opportune modifiche puoi visualizzare tutto quello che si riesce a vedere con forscan

pech86

Ti faccio ancora i miei complimenti.. Quanto vorrei avere le tue conoscenze in questo campo!

el peck


vincmass

#5
Non ho capito l'alimentazione per la scheda dove l'hai presa.
Appena posso farò le prove con putty per vedere se la focus accetta i comandi.  Ho motore g8db. In caso positivo vedrò di procurarmi una scheda Arduino.
Puoi descrivere meglio i collegamenti fatti sulla scheda per collegare Arduino,  il buzzer e le altre cose?

Inviato dal mio GT-N7100
1)Focus 2,5-SW-Restyling 110 cv + pacchetto plus-Fap(2009)+ luci pozzetto anteriore; cruise control;led bracciolo;luce portaoggetti; plafo centrale; sensori parcheggio posteriori; led bagagliaio; Comandi vocali con bluetooth;pellicole oscuranti, sensore liquido lavavetri,...
2)Fiesta 1.4 tdci,
Il Mio Garage

adamail

#6
Grazie a tutti per i complimenti.

Citazione di: pech86 il 03 Gennaio 2016, 22:38:59
Quanto vorrei avere le tue conoscenze in questo campo!
Sicuramente avrai delle conoscenze che io non ho in altri campi.

@vincmass
per l'alimentazione ho utilizzato il jack da 2.1 mm connesso alla scheda arduino e tramite un cavetto ho preso i 12V (sotto chiave) da un fusibile della GEM. Non ho utilizzato i 12V della OBD perché questi sono sempre presenti, anche a motore spento.
per i collegamenti, pensavo che gli schemi fossero chiari. Vedrò di aggiungere un altro schema

vincmass

Indica anche il fusibile dove ti sei collegato sulla gem per i 12 volt. La massa dove l'hai presa?

Inviato dal mio GT-N7100

1)Focus 2,5-SW-Restyling 110 cv + pacchetto plus-Fap(2009)+ luci pozzetto anteriore; cruise control;led bracciolo;luce portaoggetti; plafo centrale; sensori parcheggio posteriori; led bagagliaio; Comandi vocali con bluetooth;pellicole oscuranti, sensore liquido lavavetri,...
2)Fiesta 1.4 tdci,
Il Mio Garage

Bravo80


Pasquale S

fofo sw 1.6 90 cv
After Market:vetri oscurati-fari lenticolari xenon con angel eye-luci pozzetto anteriori e posteriori illuminazione led-sensori parcheggio con display-led rossi su maniglie interne-chiave  a scatto-cruise control illuminato-luci alette parasole + 3° plafoniera-airbag pass. Off-Cdb a Colori-illuminazione ambiente rossa-sensore fluido lavavetri.

https://www.idaf.it/index.php?topic=30565

paolo74

non c'è niente da dire.... complimenti!!!!!ma purtroppo per molti di noi irrealizzabile, senza tutta questa elettronica non si può fare nulla????dalla centralina non si riesce a capire se quando rigenera manda un segnale da qualche parte, intercettarlo e.......scusate per la mia ignoranza ma l'elettronica rimane un mistero.....

ICEMAN

il secondo è il primo degli ultimi. E.F.

Bolo


FoFos

Complimenti! Spero di riuscire ad ottenere il tuo stesso risultato, altrimenti per cause forza maggiore mi toccherà eliminare il dpf..
WhiLa STyle - 1.6TDCi 110cv

adamail

Questo ageggio non risolve i problemi del FAP/DPF, ti fa solo vedere quando rigenera

FoFos

appunto!! vorrei monitorare la situazione non per risolvere i problemi, ma per capire in che condizioni si trova, visto che l'ho comprata usata la FoFo e non riesco mai a capire se e quando rigenera.. :icon_wink:
WhiLa STyle - 1.6TDCi 110cv

adamail

Se hai un ELM327 Bluetooth e un cellulare Android, nel frattempo puoi usare torque. Inoltre vedo che la tua auto è del 2010, quindi dovrebbe avere il DPF (senza cerina), se è così questa scheda, purtroppo, potrebbe non funzionare.

FoFos

Ok, perfetto.. ma rimane comunque la possibilità di fare i test precedentemente indicati per capire se funziona o non c'è alcuna speranza?
Eventualmente poi dovrò munirmi del necessario e vedere come si fa per guardare da Torque che in realtà non ho mai usato..
WhiLa STyle - 1.6TDCi 110cv

adamail

#18
La mia era solo un'ipotesi derivante dal fatto che la mia e la tua  centralina sono diverse. Non resta che fare la prova

FoFos

Ok, nel caso proverò anche con Torque a capire che sta combinando.. oramai è da due interi pieni che non mi sto più accorgendo se rigenera oppure no..
WhiLa STyle - 1.6TDCi 110cv

vincmass

@adamail
Ma posso metterci un lcd 16x4 senza modificare nient'altro sulla scheda vero?
Per controllare i 4 parametri del fap

Inviato dal mio GT-N7100

1)Focus 2,5-SW-Restyling 110 cv + pacchetto plus-Fap(2009)+ luci pozzetto anteriore; cruise control;led bracciolo;luce portaoggetti; plafo centrale; sensori parcheggio posteriori; led bagagliaio; Comandi vocali con bluetooth;pellicole oscuranti, sensore liquido lavavetri,...
2)Fiesta 1.4 tdci,
Il Mio Garage

adamail


vincmass

Come?
In settimana voglio incominciare  a fare compere.

Inviato dal mio GT-N7100

1)Focus 2,5-SW-Restyling 110 cv + pacchetto plus-Fap(2009)+ luci pozzetto anteriore; cruise control;led bracciolo;luce portaoggetti; plafo centrale; sensori parcheggio posteriori; led bagagliaio; Comandi vocali con bluetooth;pellicole oscuranti, sensore liquido lavavetri,...
2)Fiesta 1.4 tdci,
Il Mio Garage

Maya

@vincmass
dando un'occhiata al file "fap_monitor.ino", a mio avviso va cambiata questa riga:

// set up the LCD's number of columns and rows:
  lcd.begin(16, 2);

che diventa:

// set up the LCD's number of columns and rows:
  lcd.begin(16, 4);

in questo modo si configura la libreria per l'impiego di un display 16x4. Poi tutte le scritte dovrebbero rimanere come se stessi usando un 2x16, per cui due righe del dy rimarranno inutilizzate. Se si vuole modificare la posizione e/o i testi basta andare ad editare le righe che contengono "lcd.setCursor(....." e "lcd.print(....."

Questa cosa a me piacerebbe realizzarla impiegando un PIC anzichè una scheda Arduino. Di per se per uno che smanetta in linguaggio C penso sia una cretinata, ma io sono un tecnico hardware. Complimenti per il progetto, davvero interessante, anche perchè con questa base basta cambiare il PID per andare a monitorare anche altri parametri. Se poi uno fosse davvero figo potrebbe usare un display grafico posizionato nel cruscotto e crearsi una strumentazione alternativa...un po' come avere Torque sempre collegato senza lo sbattone di usare l'ELM327 e lo smartphone
Le mie Ford:
Focus Mk1.5 1.8 TDCi 115CV SW
Focus Mk2 1.6 TDCi 90CV SW
Focus Mk2 1.6 TDCi 90CV 5P
Fiesta Mk7.5 1.5 TDCi 75CV mod >> 95CV

vincmass

#24
Infatti perciò voglio usare un display 16x4, per monitorare tutti e 4 i parametri del fap e piazzare l' Lcd vicino al cruscotto.
Con il PIC come sarebbe?
Inviato dal mio GT-N7100
1)Focus 2,5-SW-Restyling 110 cv + pacchetto plus-Fap(2009)+ luci pozzetto anteriore; cruise control;led bracciolo;luce portaoggetti; plafo centrale; sensori parcheggio posteriori; led bagagliaio; Comandi vocali con bluetooth;pellicole oscuranti, sensore liquido lavavetri,...
2)Fiesta 1.4 tdci,
Il Mio Garage

Maya

Il PIC è il microprocessore che deve gestire le informazioni tra CANbus e display ed è il chip nudo e crudo. Per esempio il famoso ELM327 in realtà è un PIC (non ricordo la sigla esatta) programmato per quello scopo e rimarchiato per questioni commerciali.
Arduino,che usa un altro tipo di microprocessore (ATmega), ha il vantaggio di offrire la scheda già montata oltre al fatto che per trasferire il programma è sufficiente collegarlo alla presa usb del pc. Sicuramente è molto utile per creare prototipi!
Siccome per lavoro uso già i PIC mi eviterei il dover acquistare altro hardware...tutto qui!
Le mie Ford:
Focus Mk1.5 1.8 TDCi 115CV SW
Focus Mk2 1.6 TDCi 90CV SW
Focus Mk2 1.6 TDCi 90CV 5P
Fiesta Mk7.5 1.5 TDCi 75CV mod >> 95CV

vincmass

1)Focus 2,5-SW-Restyling 110 cv + pacchetto plus-Fap(2009)+ luci pozzetto anteriore; cruise control;led bracciolo;luce portaoggetti; plafo centrale; sensori parcheggio posteriori; led bagagliaio; Comandi vocali con bluetooth;pellicole oscuranti, sensore liquido lavavetri,...
2)Fiesta 1.4 tdci,
Il Mio Garage

Maya

Le mie Ford:
Focus Mk1.5 1.8 TDCi 115CV SW
Focus Mk2 1.6 TDCi 90CV SW
Focus Mk2 1.6 TDCi 90CV 5P
Fiesta Mk7.5 1.5 TDCi 75CV mod >> 95CV

adamail

#28
Citazione di: Maya il 11 Gennaio 2016, 16:23:41
Questa cosa a me piacerebbe realizzarla impiegando un PIC anzichè una scheda Arduino.

si può usare qualsiasi micro-controllore, ma serve comunque oltre a questo un controller di protocollo CAN (come ad esempio MCP2515 della microchip) e un transceiver del bus (come ad esempio MPC2551 sempre della microchip oppure TJA1050 della philips).
Ottimi anche i PIC, ma a casa con poco tempo e poca attrezzatura  per di più rudimentale, queste schedine ti danno un grande aiuto a raggiungere il risultato in poco tempo.
Poi un pic PIC18F2480 (quello usato nelle prime versioni del ELM327) un privato lo prende su ebay 3 euro, praticamente lo stesso prezzo al quale si trova un clone cinese di arduino mini che ha già il quarzo e il regolatore di tensione, senza considerare che per il PIC serve il programmatore.

ernesto

#29
Citazione di: Maya il 11 Gennaio 2016, 19:27:38
@vincmass ti scrivo in PM così evitiamo di andare offtopic :)
no perchè? se credi di andare off topic, apri un topic apposito, credi che non ci siano altri interessati? :icon_lol: ;) 
a me ad esempio interesserebbe programmarne uno per farmi un contatore di marce, per pilotare numeri e cifre sul display
focus MK 2,5 tdci 2.0   136 CV
cruise control illuminato, svuota tasche illuminato, cassetto illuminato, bracciolo illuminato con spia, cofano illuminato, pozzetti ant e post illuminati, coral monza 165mm, specchietti esterni con led, clacson su piastrine argentate

m.cristiano

Complimenti @adamail , io non ho il FAP ma sono affascinato da ciò che riuscite a fare e vi leggo con molto interesse; ora è il tuo turno ;)
Citazione di: adamail il 03 Gennaio 2016, 20:28:20
...
Cosa serve (software)

  • firmware (in allegato)
...
Non sono riuscito a capire dove sia il 'firmware allegato' per programmare arduino :(
Dato che, come ho detto, sono interessato a capire, vorrei sapere se il firmware è compilato perché in tal caso mi farebbe piacere leggere le righe di programmazione (se non chiedo troppo)?
Grazie.
Continuate così, siete forti !!!

adamail

Non è compilato, devi scaricare il file .zip
Come ho scritto sopra lo rilascio con licenza GNU GPL v3
http://www.gnu.org/licenses/gpl-3.0.en.html

m.cristiano


Vituzzo

Buongiorno a tutti. Qualcuno è riuscito a ricreare sto aggeggio?
Tourneo Custom 155cv L2H1 WF03XXTTG3ER03699

clemmy

Ciao, io sono riuscito a fare un prototipo funzionante alla 90%, ma per mancanza di tempo non l'ho completato. Se serve posso condividere il codice.

Ho un tourneo custom 2.0 del 2017 e ho dovuto modificare completamente il codice, perché la centralina risponde in modo diverso. Adesso ho messo un piccolo display dove viene visualizzato un codice. Se c'è una rigenerazione in corso, il codice dovrebbe essere diverso. L'idea è quella di metterlo in modo che mia moglie possa controllare il display e fare una foto quando ci sarà il codice diverso... A quel punto sarà facile modificare il codice e far accendere un led. Ma in realtà, per adesso l'ho solo testato stando fermo in garage, senza installarlo in nessun viaggio reale

🡱 🡳