Come sappiamo il sistema ICS col tempo è soggetto a diversi malfunzionamenti, inoltre in quanto a navigazione e infotainment è obsoleto, perciò è arrivato il momento di comprenderne il funzionamento, rimuoverlo e rivenderlo a 500euro su ebay ahahah.
Partiamo dalla base:
Tra l'ICS e i Comandi Clima cè un cavo che li collega (esattamente tra il Pin 15 del connettore verde dell'ICS e il pin 8 del connettore bianco dei Comandi Clima)
Facendo una serie di prove ho scoperto che:
I Comandi Clima Alimentano quel tratto di linea BUS a 12V
L'ICS trasmette un segnale continuo ai Comandi Clima (senza questo i Comandi Clima non iniziano la comunicazione)
La linea Bus è una KKL con baud a 9600
Il segnale che che viene trasmesso è composto da 15 caselle (byte) composte da 2 valori es: 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15
Il segnale che l'ICS manda in continuazione per attivare la comunicazione è: 04 01 00 00 05
i restanti 10 byte riguardano dati clima o serbatoio ecco l'elenco da 0 a 14:
byte 0: segnale ICS: 04
byte 1: segnale ICS 01
byte 2: segnale ICS 00
byte 3: segnale ICS 00
byte 4: segnale ICS 05
byte 5: sconosciuto
byte 6: sconosciuto
byte 7: selettore temperatura clima (low=0F, da 16 a 28 gradi = 10 11 12 13 14 15 16 17 18 19 1A 1B 1C, high=1D)
byte 8: temperatura esterna (registrati da 4 a 21 gradi = 2C 2D 2E 2F 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D)
byte 9: prima cifra velocità ventola da 2 a E, seconda cifra flaps
(PARABREZZA = 2, PARABREZZA + PIEDI = 3, PIEDI = 4, PIEDI + FACCIA = 5, FACCIA = 6)
byte 10: funzioni clima (FULL+AUTO = 03 o 0B, AUTO = 01 o 02, MANUAL = 08)
byte 11: prima cifra (logica a somma: DEFROST POST = 1, DEFROST ANT = 4, RICIRCOLO = 2) (ES: DEFROST ANT+POST = 5, DEFROST POST + RICIRCOLO = 3), seconda cifra ECON = 8
byte 12: livello carburante serbatoio (non ancora decifrato)
byte 13: sconosciuto
byte 14: sconosciuto
OFF: byte 9 prima cifra 0, byte 10 prima cifra 1, byte 11 prima cifra A o B (DA VERIFICARE MEGLIO)
Per ricevere e trasmettere è sufficente un adattatore OBD KKL (quello per diagnosticare proprio l'Alfa 166 )
Come collegare l'adattatore OBD KKL: pin 7 al cavo BUS (tra ICS e Comandi Clima), pin 4 e 5 a Massa, pin 16 a 12V (i pin sono numerati in base alla presa sull'auto, quindi sul nostro adattatore saranno specchiati)
Per quanto riguarda il consumo carburante (da non confondere con il livello carburante serbatoio) e il segnale velocita vettura arrivano precisamente al pin 23 e 24 del connettore nero dell'ICS, per ora li sto leggendo con Arduino Nano (ma penso di passare a ESP32), sto ottenendo valori discreti ma cè ancora da lavorare
A quanto pare è l'ICS che di norma fa il calcolo dell'autonomia e dei consumi tramite il cavo consumi, il cavo velocità e il byte serbatoio, perciò dovrà essere il nostro programma a rifare il calcolo più preciso possibile riutilizzando gli stessi dati
Ci tengo a precisare che non sono un programmatore e quindi sto usando delle IA per programmare quindi se qualcuno ne capisce di piu è il benvenuto.
Allego i 2 programmi per leggere i byte tra ICS e Comandi Clima (uno funziona con ICS collegato = riceve e basta, l'altro funziona senza ICS = trasmette il segnale 0401000005),
NON UTILIZZARE IL PROGRAMMA CHE TRASMETTE CON ICS COLLEGATO,
(per eseguire i codici dovete avere installato Python)
Infine allego il codice arduino per leggere consumi e velocita (pin arduino D2 - diodo FR107 - cavo consumi pin 23 ICS) (pin arduino D3 - diodo FR107 - cavo velocita pin 24 ICS) (resistenza 10kohm tra D2 e 5V arduino) (resistenza 10kohm tra D3 e 5V arduino)
Più avanti caricherò immagini con illustrazioni piu chiare
Partiamo dalla base:
Tra l'ICS e i Comandi Clima cè un cavo che li collega (esattamente tra il Pin 15 del connettore verde dell'ICS e il pin 8 del connettore bianco dei Comandi Clima)
Facendo una serie di prove ho scoperto che:
I Comandi Clima Alimentano quel tratto di linea BUS a 12V
L'ICS trasmette un segnale continuo ai Comandi Clima (senza questo i Comandi Clima non iniziano la comunicazione)
La linea Bus è una KKL con baud a 9600
Il segnale che che viene trasmesso è composto da 15 caselle (byte) composte da 2 valori es: 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15
Il segnale che l'ICS manda in continuazione per attivare la comunicazione è: 04 01 00 00 05
i restanti 10 byte riguardano dati clima o serbatoio ecco l'elenco da 0 a 14:
byte 0: segnale ICS: 04
byte 1: segnale ICS 01
byte 2: segnale ICS 00
byte 3: segnale ICS 00
byte 4: segnale ICS 05
byte 5: sconosciuto
byte 6: sconosciuto
byte 7: selettore temperatura clima (low=0F, da 16 a 28 gradi = 10 11 12 13 14 15 16 17 18 19 1A 1B 1C, high=1D)
byte 8: temperatura esterna (registrati da 4 a 21 gradi = 2C 2D 2E 2F 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D)
byte 9: prima cifra velocità ventola da 2 a E, seconda cifra flaps
(PARABREZZA = 2, PARABREZZA + PIEDI = 3, PIEDI = 4, PIEDI + FACCIA = 5, FACCIA = 6)
byte 10: funzioni clima (FULL+AUTO = 03 o 0B, AUTO = 01 o 02, MANUAL = 08)
byte 11: prima cifra (logica a somma: DEFROST POST = 1, DEFROST ANT = 4, RICIRCOLO = 2) (ES: DEFROST ANT+POST = 5, DEFROST POST + RICIRCOLO = 3), seconda cifra ECON = 8
byte 12: livello carburante serbatoio (non ancora decifrato)
byte 13: sconosciuto
byte 14: sconosciuto
OFF: byte 9 prima cifra 0, byte 10 prima cifra 1, byte 11 prima cifra A o B (DA VERIFICARE MEGLIO)
Per ricevere e trasmettere è sufficente un adattatore OBD KKL (quello per diagnosticare proprio l'Alfa 166 )
Come collegare l'adattatore OBD KKL: pin 7 al cavo BUS (tra ICS e Comandi Clima), pin 4 e 5 a Massa, pin 16 a 12V (i pin sono numerati in base alla presa sull'auto, quindi sul nostro adattatore saranno specchiati)
Per quanto riguarda il consumo carburante (da non confondere con il livello carburante serbatoio) e il segnale velocita vettura arrivano precisamente al pin 23 e 24 del connettore nero dell'ICS, per ora li sto leggendo con Arduino Nano (ma penso di passare a ESP32), sto ottenendo valori discreti ma cè ancora da lavorare
A quanto pare è l'ICS che di norma fa il calcolo dell'autonomia e dei consumi tramite il cavo consumi, il cavo velocità e il byte serbatoio, perciò dovrà essere il nostro programma a rifare il calcolo più preciso possibile riutilizzando gli stessi dati
Ci tengo a precisare che non sono un programmatore e quindi sto usando delle IA per programmare quindi se qualcuno ne capisce di piu è il benvenuto.
Allego i 2 programmi per leggere i byte tra ICS e Comandi Clima (uno funziona con ICS collegato = riceve e basta, l'altro funziona senza ICS = trasmette il segnale 0401000005),
NON UTILIZZARE IL PROGRAMMA CHE TRASMETTE CON ICS COLLEGATO,
(per eseguire i codici dovete avere installato Python)
Infine allego il codice arduino per leggere consumi e velocita (pin arduino D2 - diodo FR107 - cavo consumi pin 23 ICS) (pin arduino D3 - diodo FR107 - cavo velocita pin 24 ICS) (resistenza 10kohm tra D2 e 5V arduino) (resistenza 10kohm tra D3 e 5V arduino)
Più avanti caricherò immagini con illustrazioni piu chiare
Allegati
Ultima modifica: