Alfa 166 Ripristino Funzioni Clima e Consumi Senza ICS (Car PC)

Eric51238

Nuovo Alfista
5 Maggio 2023
20
0
2
Regione
Emilia-Romagna
Alfa
Brera
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
 

Allegati

Ultima modifica:
Ecco una brevissima prova (qui ancora usavo Arduino per leggere il BUS, poi sono passato all'adattatore KKL che rileva meno artefatti e interferenze)
 
Informazione Pubblicitaria - Continua la Lettura Sotto
Logica da aggiungere al programma per simulare l'interfaccia ICS: ECON e FULL non possono essere attivi tutti e due nello stesso momento (logica XOR)
 
Ecco la versione ancora incompleta della nuova interfaccia ICS, fatta interamente in Python, testata su windows ma dovrebbe andare anche su linux senza troppi cambiamenti, per il controllo volume bisogna scaricare nircmd.exe e metterlo nella stessa cartella del programma ICS, funziona tutto tranne la sezione consumi (ancora interamente da programmare)
 

Allegati

  • ICSREBUILD1.webp
    ICSREBUILD1.webp
    45.6 KB · Visualizzazioni: 4
  • ICSREBUILD2.webp
    ICSREBUILD2.webp
    354 KB · Visualizzazioni: 3
  • ics_dashboard_fixed_23_.zip
    ics_dashboard_fixed_23_.zip
    36 KB · Visualizzazioni: 2