Arduino ELM327 Set di Comandi

Salve a tutti volevo chiedervi se qualcuno potrebbe darmi una mano per una difficoltà.

Vi illustro il mio progetto. Con una scheda arduino mega, un display, un modulo bluetooth e un lettore OBD2 bluethoot ho creato un computer di bordo per la mia auto. Il tutto funziona egregiamente mostrandomi tutti i dati che la mia auto supporta.

Poi mi è sorta la necessità di far si che il mio piccolo computerino possa leggere anche gli errori nella DTC della centralina. Cercando sulla rete ho trovato che il comando da inviare al lettore OBD è 03 ma il lettore mi risponde come se non ci fosse nessun errore sulla centralina. Lo stesso accade se provo ad utilizzare uno strumento di diagnostica opensource com ScanTool.

Ma se utilizzo un altro programma tipo Torque per i telefonini o ELMConfig mi risultano 3 errori sulla centralina.

Per cercare di capire cosa accade tra il programma Torque e il Lettore OBD ho modificato il mio lettore saldando dei fili direttamente sul TX e su RX del lettore così da "sniffare" la comunicazione dal telefonino al lettore OBD.

Quando ho inviato dal programma TOrque il comando di leggere la DTC il set di comandi inviati dal cellulare al lettore è stato il seguente:

ATZ
A}ïýþATE0
ATM0
ATL0
ATS0
AT@1
ATI
ATH0
ATAT1
ATSP6
0100
ATH1
ATDPN
0100
ATH0
0100
010D
010D
010D
010D
0105
010F
010B
0110
010C
010D
0104
010B
0110
010C
010D
0104
010B
0110
010C
010D
0104
010B
0110
010C
010D
0104
03
07
0100
ATI
ATAT0
03
ATAT1
07
0A
0100
07
13FF00
03
1800FF00
1802FF00
0100
ATSTA0
ATAT2
1900FF00
0101
03
1902FF00
07
0100
ATST66
ATSH 760
03
07
13FF00
1800FF00
1802FF00
1900FF00
1902FF00
19D2FF00
ATSH 7DF
0100
ATSH 737
03
07
13FF00
1800FF00
1802FF00
1900FF00
1902FF00
19D2FF00
ATSH 7DF
0100
ATSH 720
03
07
13FF00
1800FF00
1802FF00
1900FF00
1902FF00
19D2FF00
ATSH 7DF
0100
ATSH 7E1
03
07
13FF00
1800FF00
1802FF00
1900FF00
1902FF00
19D2FF00
ATSH 7DF
0100
ATSH 7DF
0100
ATSH 736
03
07
13FF00
1800FF00
1802FF00
1900FF00
1902FF00
19D2FF00
ATSH 7DF
0100
ATSH 7E0
03
07
13FF00
1800FF00
1802FF00
1900FF00
1902FF00
19D2FF00
ATSH 7DF
0100
ATSH 7E3
03
07
13FF00
1800FF00
1802FF00
1900FF00
1902FF00
19D2FF00
ATSH 7DF
0100
ATSH 7E4
1800FF00
03
07
13FF00
1800FF00
1802FF00
1900FF00
1902FF00
19D2FF00
ATSH 7DF
0100
ATSH 7E2
03
07
13FF00
1800FF00
1802FF00
1900FF00
1902FF00
19D2FF00
ATSH 7DF
ATAT2
ATST33
ATAT1
0902
0904
0100
0110
010D
0104
0110
010D
0104
0110
010D
0104
0110
010D
0104
0110
010D
0104
0110
010D
0104
0110
010D
0104
0110
010D
0104
0110
010D
0104
0110
010D
0104
0110
010C
010D
0104
0110
010C
010D
0104
0110
010C
010D
0104
0110
010C
010D
0104
0110
010C
010D
0104
0110
010C
010D
0104
0110

YWq_

Qualcuno di voi che magari ha già avuto a che fare con questi lettori potrebbe darmi una mano a capire qual è il comando inviato per avere l'elenco degli errori?

Vi ringrazio per la vostra disponibilità.

Cortesemente racchiudi tutta quella pappardella all'interno dei tag CODE ... migliorerà la leggibilità del tuo post.

Grazie,

Guglielmo

questo: A}ïýþATE0 mi sa di lettura errata....

Si lo penso anche io. Il punto è che quello che ho postato nel code è la serie di comandi che il programma invia all'obd e per il quale ottiene una risposta.

L'unica cosa che ho pensato di fare è creare uno sketch che invia quei comandi al modulo obd e che memorizza le risposte e poi mi studio il tutto... Penso sia l'unica soluzione a questo punto....

Avete qualche altro consiglio???

Vi ringrazio

Hai dato uno sguardo al datasheet?

Ci sono tutti i comandi AT.

https://www.elmelectronics.com/wp-content/uploads/2016/07/ELM327DS.pdf

Si anche il datasheet avevo visto.
Ora però cercando sul web ho capito che praticamente oltre ai codici standard per ottenere determinate informazioni dagli OBD è necessario avere i codici della casa madre.

Per esempio tra i vari PIDs di OBD non sono riportati il codice per ottenere i dati del obometro.
Scaricando il software FOrscan mi sono reso conto che anche questa informazione è reperibile tramite OBD ma ha un codice esadecimale tutto suo.

Ora ho creato uno sniffer sulla seriale in modo tale che mentre con il telefonino tramite Buethoot faccio comunicare i programma con il modulo OBD con il mio Arduino mostro sul monitor seriale il codice inviato dal software al modulo.

Ora faccio qualche test e poi vediamo cosa ne esce.

Grazie per i suggerimenti…
Se ne avete altri sarò ben lieto di accettarli.