It Discussioni Auto Ford

Tutti i modelli => FOCUS II => Discussione aperta da: adamail il 03 Gennaio 2016, 20:28:20

Titolo: Monitorare le rigenarazioni del FAP con una scheda Arduino
Inserito da: adamail il 03 Gennaio 2016, 20:28:20
--- 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 (http://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 http://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 (http://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):
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.
Titolo: Re:Monitorare le rigenarazioni del FAP con una scheda Arduino
Inserito da: ernesto il 03 Gennaio 2016, 21:47:42
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?
Titolo: Re:Monitorare le rigenarazioni del FAP con una scheda Arduino
Inserito da: adamail il 03 Gennaio 2016, 22:01:48
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
Titolo: Re:Monitorare le rigenarazioni del FAP con una scheda Arduino
Inserito da: pech86 il 03 Gennaio 2016, 22:38:59
Ti faccio ancora i miei complimenti.. Quanto vorrei avere le tue conoscenze in questo campo!
Titolo: Re:Monitorare le rigenarazioni del FAP con una scheda Arduino
Inserito da: el peck il 03 Gennaio 2016, 22:51:15
complimenti anche da parte mia..ottimo...
Titolo: Re:Monitorare le rigenarazioni del FAP con una scheda Arduino
Inserito da: vincmass il 03 Gennaio 2016, 23:12:08
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
Titolo: Re:Monitorare le rigenarazioni del FAP con una scheda Arduino
Inserito da: adamail il 03 Gennaio 2016, 23:37:27
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
Titolo: Re:Monitorare le rigenarazioni del FAP con una scheda Arduino
Inserito da: vincmass il 03 Gennaio 2016, 23:47:42
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

Titolo: Re:Monitorare le rigenarazioni del FAP con una scheda Arduino
Inserito da: Bravo80 il 04 Gennaio 2016, 12:57:16
Bravissimo complimenti
Titolo: Re:Monitorare le rigenarazioni del FAP con una scheda Arduino
Inserito da: Pasquale S il 04 Gennaio 2016, 14:15:52
caspita che lavoretto
bravo davvero
Titolo: Re:Monitorare le rigenarazioni del FAP con una scheda Arduino
Inserito da: paolo74 il 04 Gennaio 2016, 15:39:25
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.....
Titolo: Re:Monitorare le rigenarazioni del FAP con una scheda Arduino
Inserito da: ICEMAN il 04 Gennaio 2016, 19:18:52
Rinnovo i miei migliori complimenti...

" Iceman "

Titolo: Re:Monitorare le rigenarazioni del FAP con una scheda Arduino
Inserito da: Bolo il 04 Gennaio 2016, 22:19:54
Una sola parola...bravissimo.
Titolo: Re:Monitorare le rigenarazioni del FAP con una scheda Arduino
Inserito da: FoFos il 05 Gennaio 2016, 08:48:22
Complimenti! Spero di riuscire ad ottenere il tuo stesso risultato, altrimenti per cause forza maggiore mi toccherà eliminare il dpf..
Titolo: Re:Monitorare le rigenarazioni del FAP con una scheda Arduino
Inserito da: adamail il 05 Gennaio 2016, 09:48:56
Questo ageggio non risolve i problemi del FAP/DPF, ti fa solo vedere quando rigenera
Titolo: Re:Monitorare le rigenarazioni del FAP con una scheda Arduino
Inserito da: FoFos il 05 Gennaio 2016, 18:48:55
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:
Titolo: Re:Monitorare le rigenarazioni del FAP con una scheda Arduino
Inserito da: adamail il 05 Gennaio 2016, 20:26:24
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.
Titolo: Re:Monitorare le rigenarazioni del FAP con una scheda Arduino
Inserito da: FoFos il 06 Gennaio 2016, 09:54:55
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..
Titolo: Re:Monitorare le rigenarazioni del FAP con una scheda Arduino
Inserito da: adamail il 06 Gennaio 2016, 10:04:10
La mia era solo un'ipotesi derivante dal fatto che la mia e la tua  centralina sono diverse. Non resta che fare la prova
Titolo: Re:Monitorare le rigenarazioni del FAP con una scheda Arduino
Inserito da: FoFos il 06 Gennaio 2016, 10:06:12
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..
Titolo: Re:Monitorare le rigenarazioni del FAP con una scheda Arduino
Inserito da: vincmass il 10 Gennaio 2016, 21:22:24
@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

Titolo: Re:Monitorare le rigenarazioni del FAP con una scheda Arduino
Inserito da: adamail il 10 Gennaio 2016, 22:05:29
Si, ma devi modificare il firmware
Titolo: Re:Monitorare le rigenarazioni del FAP con una scheda Arduino
Inserito da: vincmass il 10 Gennaio 2016, 23:13:56
Come?
In settimana voglio incominciare  a fare compere.

Inviato dal mio GT-N7100

Titolo: Re:Monitorare le rigenarazioni del FAP con una scheda Arduino
Inserito da: Maya il 11 Gennaio 2016, 16:23:41
@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
Titolo: Re:Monitorare le rigenarazioni del FAP con una scheda Arduino
Inserito da: vincmass il 11 Gennaio 2016, 16:35:06
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
Titolo: Re:Monitorare le rigenarazioni del FAP con una scheda Arduino
Inserito da: Maya il 11 Gennaio 2016, 18:09:43
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!
Titolo: Re:Monitorare le rigenarazioni del FAP con una scheda Arduino
Inserito da: vincmass il 11 Gennaio 2016, 18:15:55
Mi dai un esempio?

Inviato dal mio GT-N7100

Titolo: Re:Monitorare le rigenarazioni del FAP con una scheda Arduino
Inserito da: Maya il 11 Gennaio 2016, 19:27:38
@vincmass ti scrivo in PM così evitiamo di andare offtopic :)
Titolo: Re:Monitorare le rigenarazioni del FAP con una scheda Arduino
Inserito da: adamail il 11 Gennaio 2016, 21:15:58
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.
Titolo: Re:Monitorare le rigenarazioni del FAP con una scheda Arduino
Inserito da: ernesto il 13 Gennaio 2016, 13:04:45
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
Titolo: Re:Monitorare le rigenarazioni del FAP con una scheda Arduino
Inserito da: m.cristiano il 23 Gennaio 2016, 13:07:56
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 !!!
Titolo: Re:Monitorare le rigenarazioni del FAP con una scheda Arduino
Inserito da: adamail il 23 Gennaio 2016, 13:14:12
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
Titolo: Re:Monitorare le rigenarazioni del FAP con una scheda Arduino
Inserito da: m.cristiano il 23 Gennaio 2016, 15:18:12
Citazione di: adamail il 03 Gennaio 2016, 20:28:20
fap_monitor.zip
Eccolo, sotto le immagini me l'ero perso.
Grazie
Titolo: Re:Monitorare le rigenarazioni del FAP con una scheda Arduino
Inserito da: Vituzzo il 01 Luglio 2021, 13:11:16
Buongiorno a tutti. Qualcuno è riuscito a ricreare sto aggeggio?
Titolo: Re:Monitorare le rigenarazioni del FAP con una scheda Arduino
Inserito da: clemmy il 01 Luglio 2021, 14:15:23
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
Titolo: Re:Monitorare le rigenarazioni del FAP con una scheda Arduino
Inserito da: Vituzzo il 18 Luglio 2021, 16:04:48
Citazione di: clemmy il 01 Luglio 2021, 14:15:23
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
Complimenti! Una domanda- ma non sarebbe più facile avere una spia che segnala la rigenerazione in corso, ma che non è collegata agli specchietti o altro invece collegata a sto Arduino che ci fa solo capire che si sta eseguendo la rigenerazione. In modo tale che riusciamo portarla a termine.
P.S. Ho riletto il tuo post più attentamente - infatti scrivi per mettere un led. Allora aspetto le notizie)  In scala da 1 a 10 quanto sarà complicato a ripetere quello che hai fatto per uno che non sa niente di Arduino ecct.?
Titolo: Re:Monitorare le rigenarazioni del FAP con una scheda Arduino
Inserito da: Pietro 2008 il 19 Luglio 2021, 10:15:52
 ;) ;) ;)
Titolo: Re:Monitorare le rigenarazioni del FAP con una scheda Arduino
Inserito da: zeuss82 il 27 Luglio 2023, 08:24:21
Ho letto più volte la guida messa a disposizione e sto provando a costrutire il tutto, ma già compilando il codice con la relativa libreria mi presenta degli errori in arduino. qualcuno può aiutarmi?


Compilation error: cannot declare variable 'CAN' to be of abstract type 'MCP_CAN'

grazie