una interfaccia OBD2 per la diagnosi auto e moto tramite PC

Come fare diagnosi e reset del service su una moto BMW senza interfacce proprietarie

Presa di diagnosi sotto la sella di una moto BMW a gestione Bosch BMSKP

Da diverso tempo anche le moto, come le auto, sono dotate di centraline e sistemi di controllo elettronico del mezzo, che consentono di monitorare lo stato di salute della meccanica e delle parti elettroniche associate.

Questo consente alle officine di operare tutta una serie di operazioni di controllo e di manutenzione, e non ultimo l'aggiornamento in remoto del software di gestione motore da parte delle case madri.

BMW in particolar modo ha un sistema di centraline molto simile alle auto, che cominunica sulla dorsale dell'impianto elettrico tramite CAN-BUS.

Viene usato normalmente nelle officine in sede di tagliando, sia per fare le comuni operazioni di controllo e di test degli attuatori e sensori del motore, e per trovare e resettare eventuali errori (chiamati DTC).

Nelle ultime revisioni è indispensabile anche per cancellare l'alert del service che compare sul quadro strumenti, e che non può essere quindi azzerato da chi si fa i tagliandi in casa. 

Service

La scritta SERVICE che compare sul display al raggiungimento dei limiti di tempo o percorrenza.

Una delle cose che infastidisce chi non si reca in officina per le operazioni di tagliando (perchè le fa da se, o presso una officina non ufficiale) è l'impossibilità di cancellare la scritta "SERVICE" che compare su quadro degli strumenti. Può essere tolta solo tramite la presa di diagnosi con le apparecchiature professionali. 

In realtà non succede nulla di grave se non la si azzera, si perde solo l'utile promemoria automatico, per ricordarsi di effettuare le manutenzioni programmate.

La scritta si attiva in base al raggiungimento di un limite di km o di tempo.

Tipicamente è impostata su 10 mila km o 24 mesi.

Un po' di informazioni tecniche

Uno dei tanti cavi OBD2 che si possono trovare sul web a pochi soldi. Esistono versioni USB, seriali o anche blue-tooth per smartphone

In realtà esistono in commercio un po' di interfacce, che sono dedicate ad un pubblico più esigente, potendo fare funzioni di controllo simile ad apparecchi professionali.

Il loro costo varia intorno ai 3-400€, interessante per chi lavora nel settore, un po' meno per chi è solo interessato al service e poche altre funzioni di base.

In campo automobilistico è disponibile una grande varietà di interfacce OBD2 (il protocollo di diagnosi standardizzato) a costi ormai abbordabili, come quelle ti tipo KKL usate sulle auto del gruppo VAG o FIAT, o quelle basate su chip ELM327.

Queste si trovano per poche decine di euro e per le auto sono spesso disponibili software e applicazioni gratuite o quasi da usare con un notebook o lo smatphone.

Come funziona

La presa BMW usa lo stesso protocollo ISO 9141-2 dei cavi KKL OBD2

Esistono molti tipi di comunicazione delle interfacce OBD2 a 16pin.

Per semplificare le cose, i più usati sono il protocollo iso che usa le linee K e L, e quello più recente che usa le linee CAN.

sulle BMW fino al 2013 la si usa la linea K come sulle auto, su quelle più recenti hanno implementato il protocollo di comunicazione su linea CAN, come è avvenuto già da tempo su molte auto.

Nella immagine si vede una corrispondenza tra la presa rotonda usata da BMW (usare quella comune OBD2 gli doveva sembrare brutto...) e la standard 16 pin diffusa sulle auto (ma anche su alcune moto).

A questo punto bisogna capire se i vari programmi e apps freeware disponibili possono comunicare con la moto, e quindi decidere che interfaccia usare.

Le interfacce OBD2 verosimilmete compatibili sembrerebbero quelle generiche basate su chip ELM327, le KKL e le INPA (sostanaizlmante sono delle K+CAN dedicate alle auto BMW)

L'adattatore

Adattatore OBD2-BMW 10 pin fatto in casa.

Il primo passo per usare una iterfaccia con connettore OBD2 è procurarsi o costruirsi un adattatore da OBD2 a BMW-10pin. Io me lo sono autocostruito usando una femmina OBD2 e riciclando il connettore di un cablaggio bobine di una BMW E36 6 cilindri (capita spesso che alcuni cablaggi vengano usati con funzioni diverse su diversi mezzi della stessa casa).

Ho tagliato i fili e la parti che non mi servivano collegando solo il pinout come si vede bella immagine sopra e ho ottenuto un adattatore compatto e funzionale.

In realtà il problema dell'adattatore è molto più semplice da risolvere: ho scoperto successivamente che sono disponibili sul web adattatori per interfaccia ICOM e hanno tutti i collegamenti pin-to-pin che servono, compresi quelli per le linee CAN, che io non ho collegato sul mio (a me non servono, ma sono indispensabili sulle nuove BMW che usano quelle e non più la linea K)

Prime prove con ELM327

Una delle interfacce più compatibili è quella basata su chip elm327, che ha integrate una serie di funzioni e di codici di errori standard.

Questa cosa consente di fare diagnosi e reset DTC su molti modelli di auto...ma le moto?

mi sono procurato a pochi euro sul web una ELM 327 bloetooth, comodissimo.

Si può usare con alcune app per smartphone e fare una serie di rilevazioni in tempo reale.

Ho scaricato l'App Torque e ho fatto un po' di esperimenti.

Ho potuto visionare parametri di funzionamento del motore, carico, anticipi, iniezione...
è sicuramente utile a me anche nella revisione di una mappatura, e a chi ha un po' di competenza per capire come sta la meccanica e eletronica motore...
ma non ho riscontrato la possibilità di fare service (reset errori e spia tagliando)

Il comodo plug obd2 bluetooth e il suo collegamento alla moto.

Una serie di schermate della App Torque prese dal web. E' possibile monitorare moltissimi parametri attraverso la porta OBD2 e una interfaccia Elm327, sia sulle auto che sulle moto BMW

La soluzione

ecco il pc collegato alla moto durante la fase di riconoscimento dei dati.

Appurato che auto e moto BMW usano lo stesso protocollo, restava da provare i software dedicati alle auto BMW.

Un buco nell'acqua, il protocollo di comunicazione sarà lo stesso, ma di fatto ogni modello ha le sue chiavi specifiche, quindi vari software dedicati come INPA, EDIABAS ecc. non concludono nulla.

Ho però scoperto che un software di recente introduzione chiamato RHEINGOLD ha tra le sue chiavi anche la lista BMW MOTORRAD. gestisce anche le moto!

Può comunicare attraverso EDIABAS (il software di comunicazione tra il programma di diagnosi e l'interfaccia OBD2 collegata alla porta usb).

Si torva in rete su diversi forum attraverso torrent. Credo non sia propriamente gratuito, e le copie che si scaricano sono probabilmente cloni abusivi. Di fatto però funzionano, comunicano e riescono a gestire diagnosi e reset dei codici di errore e anche il reset del service.

Cosa serve:

1) cavo obd2 INPA (per le moto bmw fino al 2013, escluso K1600) o cavo K+DCAN (per tutte le bmw)

2) adattatore icom da obd2 16pin a bmw 10 pin

3) software rheingold (io ho usato la versione 3.41 e 3.47) con ediabas 7.30

4) ultima versione di dot net framework installata 

5) dovrebbe funzionare su tutti i SO e su tutti i PC di fatto a me funziona solo su win7 e su alcuni PC, mentre non comunica affatto con altri.

E' una questione di driver USB. Su un pc recalcitrante ho risolto il problema usando una scheda PCMCIA con chipset NEC per avere 2 porte USB aggiuntive, che a differenza delle altre comunicano e funzionano.

Come si procede:

- serve un PC possibilmente dedicato a questa cosa, con sistema operativo pulito o appena instalato (a me funziona solo con Win 7, ad altri funziona anche su Win XP)

- installare l'ultima versione di .Net Framework disponibile

- installare il cavo OBD e i suoi driver (dovrebbe essere una cosa automatica), quindi nel pannello di controllo cambiare la COMx virtuale corrispondente su COM1 e impostare la letanza a 1

- installare la suite "Standard Tools 2.12", di solito fornita insieme al software Rheingold, che imposterà Ediabas come server di comunicazione tra l'interfaccia OBD2 e il software di diagnosi. Quando richiesto spuntare "1" per la COM e "USB" come porta.

- installare Rheingold seguendo le indicazioni dell'archivio scaricato (possino variare da versione a versione). Quindi aviarlo e, nelle impostazioni (icona della chiave inglese) da Client Settings, impostare "BMW / Motorrad" nei brand supportati e in VCI Config mettere "Ediabas standard settings" come tipo di interfaccia

A questo punto il sistema è pronto per funzionare e si può tentare di connettersi con la moto e identificarla. Se non comunica nonostante abbiate seguito le impostazioni correttamente, vuol dire c'è un problema con l'usb e purtroppo non ne uscirete cambiando impostazioni. O provate con un altro Notebook o con una scheda PCMCIA-USB come ho fatto io.

Mi rendo conto che è un metodo grezzo di risolvere il problema, ma al momento è l'unico che abbia funzinato (ho fatto molte prove prima di scrivere questo articolo), quindi se aveste dei problemi di comunicazione:

- o cambiate PC (e/o sistema operativo) e sperate che funzioni

- o provate con una scheda pcmcia (la mia con chipset NEC funziona e l'ho trovata a pochi euro sul web).

 

 

 

Diagnosi e Service finalmente!

Vi mostro di seguito una serie di screen-shot delle operazioni che ho eseguito di recente sulla mia moto con questa interfaccia home-made.

Sostanzialmente ho individuato e cancellato un errore (fault code) e resettato la spia service dopo il tagliando fatto in casa, predisponendola per la prossima scadenza da me desiderata.

ACCESSO - Ecco la schermata iniziale che si ottiene dopo aver lanciato l'identificazione del veicolo (con quadro acceso). Vengono visualizzati tutti i dati caratteristici: numero di telaio, anno di produzione, modello ecc. Con il pulsante "Start vehicle test" si inizia la diagnosi per la ricerca di errori.

DIAGNOSI - La "dorsale" della mia ecu è semplice, solo 3 blocchi. Sulla DME (centralina motore) ho simulato un errore, per scopo illustrativo, scollegando un sensore. E' evidenziato il blocco su cui è presente il fault code.

DIAGNOSI - Cliccando sul blocco con errori si vede la loro identificazione come ho indicato in figura, e i km a cui si è presentato l'errore. Successivamente è possibile cancellare l'errore dopo averne eliminato la causa (nel mio caso ho ricollegato il sensore dell'aria secondaria). Il programma chiede conferma per azzerare gli errori fecendo spegnere e poi riaccendere il quadro in modo guidato, con degli avvisi ad ogni passaggio.

SERVICE - Si può quindi accedere alla sezione Service Function, per resettare il timer della manutenzione programmata.

SERVICE - Dopo aver letto i dati registrati nel sistema è possibile resettare sia la distanza utile prima dell'avviso di service, che la data limite di intervento.

SERVICE - Ci sono 3 possibilità per la durata chilometrica del service: i canonici 10mila km , un valore da impostare a piacere o la disabilitazione del service. Basta cliccare sul quadrato corrispondente.

SERVICE - Ho scelto la seconda possibilità, per impostare 6000 km invece di 10mila, dato che preferisco cambiare l'olio con una frequenza maggiore. La schermata fa inserire la distanza desiderata con un tastierino virtuale.

SERVICE - Si segue la stessa procedura per la data di avviso.E' presente la data di scadenza corrente e ne vengono proposte tre varianti: a un anno, a discrezione dell'utente, o senza limite (non service).

Ultime considerazioni

Come si può vedere nelle schermate sopra, molti passaggi sono intuitivi, e il programma chiede conferma delle azioni che si stanno compiendo, o dice quando spegnere e riaccendere il cruscotto per salvare le impostazioni modificate. Rheingold è un software completo e complesso, consente di ottenere molte informazioni sull'elettronica del mezzo. Ho illustrato per semplicità e brevità di trattazione solo le funzioni più comuni e interessanti per l'utente medio.

Ci sto ancora giocando adesso e se avete voglia potrete farlo anche voi.

Questo articolo vuole solo essere uno stimolo alla curiosità degli smanettoni, non ha la presunzione di essere una guida esaustiva a questo tipo di diagnosi, ne di risolvere gli eventuali problemi tecnici che potrebbero verificarsi durante le operazioni di installazione, comunicazione tra pc e motociclo e verifica delle funzionalità (non tutte funzionano!).

Come ho precedentemente illustrato, alcuni PC hanno hardware incompatibli o i driver usb non idonei a questo tipo di interfaccia OBD2 e non c'è un modo inquivocabile per capire quali siano validi e quali no.

Durante le mie prove ho usato con successo alcuni vecchi notebook, mentre su altri non ho avuto risultati.

La stessa cosa si è verificata tra amici che hanno seguito con me questi tentativi con le loro BMW. Probabilmente la soluzione migliore in caso di insuccesso è di provare a usare una scheda per aggiungere un hw USB aggiuntivo più compatibile (schede di espansione PCMCIA).

Non mi resta che augurare buon lavoro e buon divertimento a tutti coloro che vorranno cimentarsi nell'impresa.

Chi volesse partecipare con domande o consigli può farlo qui sotto Sorride

Aggiornamento: diagnosi facile senza impazzire

Interfaccia OBD-INPA-Ediabas su porta COM seriale

Tutti i problemi di cominucazione, in caso di mancato funzionamento e riconoscimento dell'interfaccia vengono dall'USB (e questo standard mefitico mi ha sempre fatto incazzare ogni volta che ci ho avuto a che fare).

Ho provato ad aggirare il problema escludendo l'uso delle porte USB, usando la porta COM seriale e la diagnosi FUNZIONA!

  • quindi procuratevi un cavo INPA-Ediabas che sia SERIALE (RS232) invece che USB come quella che si vede a lato
  • a questo punto ci vuole un PC con porta COM seriale (ho usato il mio vecchio Dell LATITUDE D520 che non ne voleva sapere in nessun modo di andare con le sue porte usb)
  • lasciate stare pure il vecchio sistema windows XP senza formattare ne reinstallare nulla
  • installate .Net 4.0 (l'ultimo disponibile per xp in questo caso)
  • installate ediabas 7.3.0 (contenuto negli standard tools 2.12)
  • installate rheingold 3.41 (o la versione che trovate)
  • impostate la porta COM corrispondente (dovrebbe essere la 1) e le impostanzioni di RHEINGOLD su "bmw motorrad" e interfaccia OBD "ediabas" nelle VCI config

RISOLTO! Funziona tutto a meraviglia senza tanti esperimenti estenuanti.
L'importante è fare "alla vecchia maniera", con la porta COM RS232 nativa e non simulata via USB.

Quando non funzionano le interfacce USB ...è colpa dei driver dei chipset, non dei chip FTDI, ma il risultato non cambia.
Con la porta COM seriale andate a colpo sicuro. Ho usato una interfaccia INPA solo per linea K, ma ho visto che si trovano anche le K+CAN per chi ha una moto più recente con la diagnosi CAN.
Buon divertimento e buon service reset a questo punto!

PS: se avete anche lontanamente pensato si comprare l'interfaccia seriale, e poi usarla su un pc senza porta seriale, con un adattatore usb-seriale da pochi euro, frustatevi 20 volte e poi lasciate perdere prima ancora di provare. Se l'USB non vi funziona... non funziona! e tantomeno funzioneranno gli adattatori cinesi con chipset cloni! 

PPS: ho voluto esagerare la seplicità della soluzione seriale dato che rispetto alle mille prove fatte con le USB è stata davvero una passeggiata, ma se per caso decidete di usare un pc con un sistema operativo appena installato e magari più recente non è una brutta idea !

Alla prossima avventura! Pazzo