OBD ELM327 V1.5
Questo piccolo spinotto OBD vi permette di eseguire una diagnosi completa della vostra auto mediante applicazione android apposita sfruttando la comunicazione bluetooth. Le dimensioni dello spinotto sono molto contenute, e' possibile acquistarlo per 5 euro in Cina e una 20ina di euro in Italia. Quindi in poche parole abbiamo uno spinotto contenente un microcontrollore che legge i dati dalla centralina motore e mediante il chip bluetooth li spedisce su uno smartphone, i dati per essere visualizzati hanno bisogno di un applicazione dedicata, tutto questo hardware e' replicabile tranquillamente con Arduino. Ecco la lista dei protocolli OBD supportati:
- ISO9141 - 2 (5 Baud init, 10.4 KBaud)
- ISO14230 - 4 KWP (5 Baud init, 10.4 KBaud)
- ISO14230 - 4 KWP (Fast init, 10.4 KBaud)
- ISO15765 - 4 can (11bit ID, 500 KBaud)
- ISO15765 - 4 can (29bit ID, 500 KBaud)
- ISO15765 - 4 can (11bit ID, 250 KBaud)
- ISO15765 - 4 can (29bit ID, 250 KBaud)
Il funzionamento si basa sul chip ELM327, un microcontrollore programmabile prodotto dalla ELM Electronics che funziona da interpreter (una specie di traduttore) tra OBD e Computer. Il chip originale ELM327 si basa sul microcontrollore PIC18F2480 prodotto dalla Microchip.
Quasi tutte le interfacce OBD che trovate in commercio sono cloni dell'ELM327 originale e provengono dalla Cina. Le riproduzioni di alta qualita' utilizzano il microcontrollore PIC18F25K80, sempre prodotto dalla Microchip e la versione software e' la 1.5. Nelle riproduzioni di bassa qualita' troviamo il "black blob", cioe' un chip COB (Chip on Board) senza riferimenti oppure altri chip come STM32F042, BK3231Q, 25K80 oppure QBD327 e la versione software e' superiore alla 1.5 (ad esempio 2.1). Non tutte le riproduzioni funzionano a dovere, alcune potrebbero non funzionare per niente oppure avere problemi di compatibilita' con determinate centraline; per questo e' importante comprare uno spinotto di buona qualita'. In tutti i casi, il chip interno e' comunque un microcontrollore che ospita il firmware (modificato e adattato) dell'ELM327 originale e lo chassis e' sempre lo stesso (salvo piccole variazioni), quindi l'unico modo per valutare la qualita' e' aprirlo. Per controllare la versione software e' possibile scaricare l'applicazione "ELM327 Identifier" e far partire la scansione dei protocolli, a fine scansione verranno visualizzati quelli compatibili e quelli incompatibili, tuttavia non e' una procedura molto affidabile in quanto e' possibile falsificare sia la versione software che il supporto dei svariati protocolli. Qui a sinistra potete osservare l'applicazione a scansione terminata (effettuata con l'interfaccia fake). Volendo, se avete cambiato lo stereo della macchina con uno aftermarket Cinese con sistema operativo Android, potete utilizzarlo con l'interfaccia OBD e l'applicazione Torque, basta collegarli tramite bluetooth/WiFi (in base alla versione dell'interfaccia che avete) e far partire Torque. Se non riuscite a collegarvi con lo stereo tramite bluetooth (a me e' successo), impostate il pin di default (sullo stereo) a "1234". Questo probabilmente accade perche' le riproduzioni economiche sono sprovviste della memoria I2C per la configurazione del bluetooth, quindi accettano solo connessioni con determinate impostazioni. |
ELM327 Real
Vediamo cosa c'e' all'interno di una riproduzione di buona qualita'. Per aprirlo e' bastato far leva con le mani sui bordi della spina interna (il coperchio posteriore e' tenuto con il resto dello spinotto ad incastro). All'interno c'e' poco da vedere dato che il tutto e' concentrato su una minuscola PCB. Spicca tra i componenti il quarzo da 4MHz e il relativo microcontrollore (PIC18F25K80) della Microchip. Da una parte abbiamo la sezione bluetooth con l'integrato che gestisce il tutto (YC1021), su alcune varianti di queste prese di diagnostica viene utilizzato addirittura l'HC05 (il famoso modulo bluetooth per Arduino). Vicino all'integrato di gestione del bluetooth troviamo un'altro quarzo da 24MHz (per far oscillare l'IC del BT). Sempre nella sezione bluetooth troviamo una memoria I2C ad 8pin in formato SOIC8 (24C32A) che sicuramente contiene le impostazioni di configurazione del Bluetooth (Nome, Password, BaudRate di trasferimento, ecc.). E' possibile notare l'antenna BT integrata nella PCB sotto al quarzo da 24MHz. Vicino al microcontrollore c'e' uno stabilizzatore di tensione, il famoso 7805 per stabilizzare la tensione da 12V a 5V. Sopra lo stabilizzatore di tensione c'e' un chip chiamato NV7342 che risulta essere un transceiver per il protocollo CAN. Tra lo stabilizzatore di tensione e il microcontrollore ci sono i 3 LED di stato.
ELM327 Fake
Il metodo di apertura della riproduzione fake e' il medesimo (come precedentemente accennato, lo chassis e' sempre quello). Sulla PCB si notano subito le differenze, infatti la versione fake e' piu' "povera" a livello di componentistica, e' pieno di footprint e predisposizioni inutilizzate. Il chip che gestisce la comunicazione bluetooth e' lo stesso: l'YC1021 (anche se leggermente diverso e privo di marca... clone?). Il microcontrollore (il cuore dell'interfaccia) e' un chip COB generico senza marcature (molto economico). In parole povere, sulla PCB c'e' solo lo stretto indispensabile per far funzionare l'interfaccia. Al posto dell'NV7342 (transceiver CAN) questa volta troviamo il VC1040 (che sarebbe un clone del TJA1040), il pinout e' lo stesso per entrambi. Nonostante l'interfaccia sia di bassa qualita', funziona in modo egregio (almeno con il mio veicolo) e non ho avuto grandi problemi.
Velocita' di Connessione
Non c'e' molta differenza tra le versioni bluetooth e quelle WiFi in termini di velocita' di risposta, e' solo una questione di preferenze. Se la velocita' di risposta dell'interfaccia non vi soddisfa, potete seguire alcuni accorgimenti per migliorarne le prestazioni:
Se con questi accorgimenti la velocita' non migliora, allora il problema non e' l'interfaccia ma la centralina stessa che non supporta un traffico dati elevato, in questo caso non potete fare altro.
- Se state utilizzando la versione bluetooth con lo stereo, vi sarete accorti che e' possibile collegare contemporaneamente allo stereo sia l'interfaccia che il telefono, se aprite Torque (o qualsiasi altra app per l'OBD2) sullo stereo, mentre avete in riproduzione la musica da smartphone, il bus dati del bluetooth sara' "intasato" e la velocita' di risposta calera' in modo drastico.
- Piu' dati richiederete, e piu' lenta sara' la risposta. Su Torque e' possibile personalizzare la dashboard con svariati indicatori, piu' ne aggiungete e piu' parametri andrete a richiedere contemporaneamente, quindi la risposta sara' piu' lenta.
- Sulle impostazioni di Torque, abilitate la voce "Faster communication" e "Don't calculate MPG/Fuel".
Se con questi accorgimenti la velocita' non migliora, allora il problema non e' l'interfaccia ma la centralina stessa che non supporta un traffico dati elevato, in questo caso non potete fare altro.