Positivo Sottochiave da CAN-BUS

Salve a tutti!
Ho una Lancia Ypsilon del 2005 ed ho deciso di cambiare l'autoradio di serie (solo CD) con una che ha Aux, BT, USB. Ho guardato gli schemi di connessione dei connettori ISO ed ho notato che oltre alle posizioni degli altoparlanti invertite (per fortuna non le polarità), nella mia auto manca il +12V sottochiave, ovvero la tensione che dà la macchina quando si gira la chiave e che le radio utilizzano per capire quando accendersi e quando spegnersi per non scaricare inutilmente la batteria.

Questa informazione però è trasmessa ahimè in modo più strutturato attraverso il protocollo seriale CAN, che ho studiato un pò, e prevede la trasmissione su due bus paralleli dei segnali HIGH e LOW. Ora, avendo già dimestichezza con arduino, ed avendo già avuto esperienze con trasmissioni RF e protocolli seriali, avendo in effetti già decifrato un protocollo seriale di un multimetro una volta, quindi avevo pensato di buttarmi nel reverse-engineering dei dati che passano su questi fili e nel costruire un semplice "sniffer" con arduino e con un relè a stato solido che prende in parallelo la +12V fissa e a comando di arduino, dopo aver ricevuto il segnale giusto dal bus CAN, commutare quella tensione in modo appropriato.

Ho già visto su Amazon uno shield per la comunicazione CAN (HALJIA MCP2515 Modulo CAN Bu).
Volevo chiedervi innanzitutto quanto è fattibile/complicato cimentarsi in questa avventura, considerando che devo ancora studiare bene il bus, se sono disponibili delle specifiche (anche se dubito le rendano pubbliche) per evitarmi il reverse engineering delle comunicazioni o del materiale per comprendere meglio l'argomento?
Qualcuno che ha già avuto esperienze di questo tipo e può darmi qualche suggerimento?

Grazie a tutti!

Buongiorno,
essendo il tuo primo post, nel rispetto del regolamento della sezione Italiana del forum (… punto 13, primo capoverso), ti chiedo cortesemente di presentarti IN QUESTO THREAD (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con molta attenzione tutto il su citato REGOLAMENTO ... Grazie. :slight_smile:

Guglielmo

P.S.: Ti ricordo che, purtroppo, fino a quando non sarà fatta la presentazione nell’apposito thread, nessuno ti potrà rispondere, quindi ti consiglio di farla al più presto. :wink:

Rimedio subito! Scusate :cold_sweat:

pablo-escobar:
Ho una Lancia Ypsilon del 2005 ..... nella mia auto manca il +12V sottochiave .....

Mi sembra impossibile ... da qualche parte un +12 presente solo a macchina accesa ci deve essere ... io, prima di imbattermi a mettere le mani sul CAN bus, chiederei a qualche elettrauto ::slight_smile:

Guglielmo

gpb01:
Mi sembra impossibile ... da qualche parte un +12 presente solo a macchina accesa ci deve essere ... io, prima di imbattermi a mettere le mani sul CAN bus, chiederei a qualche elettrauto ::slight_smile:

Guglielmo

Grazie della risposta. Purtroppo non conosco bene il cablaggio dell'auto anche se a quanto ho letto dovrebbe essere possibile usare la linea dell'accendisigari, però la soluzione con arduino era anche un bel modo di "arduinizzare" l'auto :smiley:

pablo-escobar:
.... però la soluzione con arduino era anche un bel modo di "arduinizzare" l'auto :smiley:

Hai ideai dei tanti problemi che comporta mettere Arduino in un'auto? Stabilizzazione dell'alimentazione (leggiti QUESTO bel thread), problemi di disturbi, ecc. ecc. ...
... se riesci in modo più semplice è molto meglio, dai retta ... :smiley:

Guglielmo

Allora credo che temporaneamente risolvo con un ponticello tra 12v fissi e sottochiave, poi più in là passo da un elettrauto a verificare altre soluzioni. anche se l'idea di poter gestire a mio piacimento lo stereo con arduino era molto allettante! ::slight_smile: magari registrando pure qualche dato di diagnostica per controllare l'auto (se ho capito bene sul CAN viaggiano anche i dati OBD)

magari più in là ci faccio un pensiero, perchè non mi va di mollare così :grinning:

pablo-escobar:
... magari registrando pure qualche dato di diagnostica per controllare l'auto (se ho capito bene sul CAN viaggiano anche i dati OBD)

Quello, con calma, studiando bene i collegamenti, lo puoi sempre fare :smiley:

Guglielmo

gpb01:
Quello, con calma, studiando bene i collegamenti, lo puoi sempre fare :smiley:

Guglielmo

Conoscendomi, è molto probabile che succederà :smiley:

Tanto ci sono tante applicazioni per Arduino e troverai sicuramente qualcosa che Ti interessa da costruire.
Ciao Uwe

Questo è sicuro, anzi nel frattempo magari faccio ulteriore pratica! Comunque informandomi di più ho visto che la maggior parte dei messaggi sul CAN sono di tipo OBD standard, ma possono variare da modello a modello di auto, cambiando gli identificatori i dati e il loro encoding. Se ho capito bene il tipo di messaggi che interessa questa applicazione sono i PID (parameter ID).
Qui c'è una pagina che ne fa un elenco di quelli standard:OBD-II PIDs - Wikipedia.
Molto probabilmente basta leggere tutti i messaggi PID inviati nel momento preciso in cui giro la chiave e cercare di capire quale di quelli è quello giusto.

Per quanto riguarda l'alimentazione, ho pensato che al posto di attaccarlo al 12V col relativo circuito di protezione e step down, potrei adattare uno di quei caricatori per cellulari per l'accendisigari ed alimentarlo stesso con l'usb, credo che abbiano tutte le protezioni già al loro interno essendo fatti per questo preciso scopo, e mi semplificherebbe tutta la parte di collegamento.

Mi rimarrebbe il dubbio finale sul consumo di batteria. Una volta messo a punto il circuito e fatti tutti i test userei un nano che dovrebbe consumare di meno, ho letto intorno ai 50 mA sulla 5V, ma considerando anche lo shield per il CAN non so a quanto arriverei e potrei trovarmi la batteria a terra se lascio la macchina ferma per troppo tempo. Su questo dovrei fare dei calcoli e cercare di ottimizzare al meglio tutto.

Come shield CAN ne conoscete di buoni? anche perchè c'è da considerare il potenziale rischio sulla sicurezza dell'auto in caso non sia di buona qualità... ::slight_smile: