Buonasera a tutti!
è da molto che seguo il forum ma purtroppo la mancanza di tempo mi ha impedito di partecipare attivamente ...
Sono un felice possessore di una Astra H TwinTop che purtroppo ha un BID con autoradio CD30 Mp3 per cui, ispirato dai tanti progetti reperibili online, qualche settimana fa ho deciso di intraprendere l'arduo progetto di sostituzione del BID con un tablet android 7".
Naturalmente montando il tablet non vorrei perdere le informazioni mostrate attualmente dal BID per questo motivo ho iniziato una prima fase di analisi della linea canbus dedicata ottenendo, per ora, le informazioni visibili nello screenshot seguente:
[I links sono riservati agli utenti registrati. Registrati!Ti aspettiamo!]
- Data e ora provenienti dall'auto (l'orario è mostrato in alto sinistra nel BID)
- Temperatura esterna (mostrata in alto a destra nel BID)
- Autonomia residua (una delle informazioni mostrate nell'ultima riga del BID proveniente dal CDB)
- Velocità veicolo e Giri motore
- Posizione della chiave e luminosità del quadro strumenti
- Informazioni Autoradio (Si tratta della riga centrale mostrata dal BID - oltre al nome della stazione radio noterete molti caratteri "strani" perché sto ancora analizzando questa informazione)
- Bottoni "PRECEDENTE" e "SUCCESSIVA" (riproducono sul canbus l'effetto dei tasti freccia Giù/Su sul volante permettendo di cambiare traccia/stazione radio)
- Autoradio HEX in questa sezione vengono visualizzate le informazioni RAW inviate dall'autoradio sul canbus le ho lasciate perché questa informazione è ancora in fase di analisi dato che non ho ancora decodificato le informazioni aggiuntive mostrate dal BID come le spie MP3, RDS, TP, CD, etc ...
Attualmente ho collegato l'informazione della luminosità del quadro strumenti alla luminosità del display del tablet quindi quando si varia la luminosità del quadro strumenti tramite l'apposito selettore viene variata anche l'illuminazione del tablet.
Mi mancano però delle informazioni relative al computer di bordo come il consumo istantaneo, qualcuno ha esperienza in merito e/o ha idea di come vengono veicolate le informazioni del CDB?
Domani spero di riuscire a produrre e caricare un video dimostrativo del funzionamento dell'app che sto sviluppando, naturalmente l'idea è quella di creare un widget con le informazioni del veicolo da aggiungere alla home del dispositivo con una grafica totalmente diversa dallo screenshot mostrato.
Giusto per completezza il collegamento del tablet alla vettura avviene tramite un device usb molto economico (circa 5/7 euro) per il quale ho sviluppato un banalissimo firmware per la ricezione/invio dei frame sul canbus.
Sto provvedendo a redarre una guida passo passo per la realizzazione di quanto ho sviluppato cercando di spiegare anche come è stata effettuata la decodifica di tutte le informazioni recuperate fino ad ora che naturalmente posterò appena possibile in modo che chiunque possa contribuire al progetto.
Grazie a tutti i partecipanti al forum ... siete stati fonte di ispirazione per questa ed altre idee ...
Cercherò di aggiornarvi il prima possibile con i nuovi sviluppi!
UPDATE:
Video youtube:
[I links sono riservati agli utenti registrati. Registrati!Ti aspettiamo!]
INTERFACCIA
di seguito vi posto le foto dell'interfaccia che ho utilizzato per leggere i dati dalla mia vettura. Come anticipato in una risposta a questo post l'interfaccia è basata su arduino e nello specifico si basa sulla scrittura su seriale dei frame can in un determinato formato di testo (che poi vengono elaborati ed utilizzati dall'app android).
Per arduino troverete diverse interfacce canbus (come le shield Sparkfun) e se siete già in possesso di una qualsiasi shield non acquistate altro perché sicuramente può essere utilizzata con l'app.
Dato che da un po sto lavorando ad un altro progetto che utilizza anche un bus di tipo CAN in un ambito differente (domotica) ho acquistato qualche interfaccia CANBUS molto economica su un noto sito di acquisti cinese (il prezzo unitario per interfaccia, spedizioni incluse, si aggira intorno ai 0,97€)
[I links sono riservati agli utenti registrati. Registrati!Ti aspettiamo!]
Le nostre vetture utilizzano le seguenti 3 linee canbus per gestire l'elettronica di bordo:
- SWCAN: linea basata su un singolo filo a bassa velocità (33.3 Kbps): su questa linea transitano i frame relativi a comando come luci, alzacristalli, etc.
- MSCAN: linea basata su due fili a media velocità (95Kbps): questa linea è utilizzata per veicolare i dati relativi al sistema Entertainment/info
- HSCAN: linea basata su due fili ad alta velocità (500Kpbs): questa linea veicola le informazioni sul motore (per interderci è la linea che viene interrogata anche dalle app tipo torque)
al seguente indirizzo potete trovare un documento che parla delle linee canbus presenti nelle nostre vetture:
[I links sono riservati agli utenti registrati. Registrati!Ti aspettiamo!]
Lo schema di collegamento dell'interfaccia sulla presa OBD (nel caso delle astra twintop è situata sotto il freno a mano) è il seguente:
[I links sono riservati agli utenti registrati. Registrati!Ti aspettiamo!]
purtroppo l'interfaccia mostrata in figura presenta un oscillatore da 8MHz e non sono riuscito (nemmeno con qualche tool trovato in rete) a calcolare la configurazione giusta per farlo funzionare sulla linea 95Kbps quindi ho sostituito l'oscillatore da 8MHz con uno da 16MHz (operazione abbastanza semplice e veloce)
per quanto riguarda la board arduino per ora ho testato le seguenti (ma una qualsiasi board Arduino o clone dovrebbe andar bene):
[I links sono riservati agli utenti registrati. Registrati!Ti aspettiamo!]
[I links sono riservati agli utenti registrati. Registrati!Ti aspettiamo!]
anche se ieri mi sono state consegnate delle schede basate su esp8266 (Wemos D1 mini) e nei prossimi giorni farò qualche test di compatibilità così da risparmiare spazio e soprattutto avere la possibilità di connettere il dispositivo anche in WiFi
[I links sono riservati agli utenti registrati. Registrati!Ti aspettiamo!]
In definitiva l'interfaccia completa mi è costata circa 5 euro spedizioni incluse (0,97€ di modulo canbus, 2,90€ clone di arduino uno, 0,30€ oscillatori da 16MHz, 0,50€ di cavetteria) acquistando il tutto dalla cina ma ogni elemento è reperibile anche da venditori italiani (prezzi diversi).
La connessione dell'interfaccia al tablet avviene, per ora, solo tramite USB sfruttando la funzionalità OTG HOST (per cui si deve disporre di un adattatore per connetterlo).
In serata o al massimo nei prossimi giorni cercherò di caricare lo sketch da caricare sulla board e la libreria utilizzata per l'interfaccia oltre allo schema di connessione in questo modo dovreste avere tutto il necessario!
Naturalmente l'utilizzo di un micro ci consente di inserire altre funzionalità, ad esempio pensavo di sfruttare l'ingresso analogico per determinare se c'è un flusso audio in uscita dal tablet in modo da attivare l'ingresso phone dell'autoradio ... ma intanto cerchiamo di recuperare le altre informazioni del CdB
Mi scuso per l'update frettoloso ma purtroppo sono in ufficio
in ogni caso credo di aver aggiunto tutto per ora ... per eventuali chiarimenti o se avete difficoltà non esitate a contattarmi (anche in privato)!
Vi auguro una buona giornata!