NOTA: Scopo di questo post è illustrare come ripristinare a corretto funzionamento una moto.
100.000km, anzi 99.999km !
Sono un felice possessore di un CBR 929 del 2000. E recentemente (estate 2022) ho traguardato i 100.000km... o meglio mi sono fermato a 99.999 km...
Infatti, con mio sgomento, ho scoperto che il conta-km (o più propriamente odometro) su questo modello (ma mi risulta anche il CBR 954) dopo i 99.999 km si blocca !!!
All'inizio non ci credevo, ma cercando su google numerosi utenti si sono trovati con questo problema; e sembra che l'unica soluzione della Honda sia sostituire tutta la dashboard.
Dopo l'iniziale sgomento e la successiva (isterica) ilarità, mi sono messo a cercare una soluzione.
Su internet qualcuno ha mostrato come riprogrammare l'eeprom che contiene i km percorsi [1][2].
Accesso alla eeprom
Innanzitutto bisogna smontare la plancia, e questo lo si fa svitando il bullone in cima
Poi bisogna sfilare la plancia e staccare il cavo posto dietro. Prestare attenzione che il connettore si sfila agevolmente SOLO DOPO aver premuto la clip di ritenuta; NON FORZARE tirando.
Dopo aver girato la plancia è possibile svitare le viti poste dietro.
Infine rimuovere il coperchio posteriore ed individuare la EEPROM incriminata.
A questo punto bisogna leggere e scrivere sulla EEPROM; il modello è una 93c56 (5V).
Io ho usato il sistema UPA USB, leggendo in modalità 16bit. E' possibile NON dissaldare la memoria usando una pinza. Io ho approcciato in entrambi i modi: ho sia dissaldato (in realtà è stato un mio collega :-) ) che programmato con un clip .
Immagine della EEPROM
Sopra il contenuto dell'eeprom. Ho evidenziato dove è memorizzata l'informazione dei KM percorsi. Si tratta di 6 parole a 16 bit. Ho provato a ricostruire l'algoritmo che lega i km al dato memorizzato nella eeprom:
Indirizzo Valore
0x68 = 0xb73d - h / 8
0x6a = 0x6e7b - h / 4
0x6c = 0xdcf6 - h / 2
0x6e = 0xb9ed + 8 - h
0x72 = 0x6e79 + 2 - h / 4
0x74 = 0xdcf2 + 4 - h / 2
Dove
h = km / (53.7 / 8)
Difatti considerando l'indirizzo 0x6e, dove c'è il valore 0x7e25 (memorizzato come low/hi) si ottiene
km = (0xb9ed + 8 - 0x7e25) * (53.7 / 8) = 102590
Che è appunto il km corrispondente al dump della memoria. Questo risultato dimostra che mentre la dashboard continua a mostrare 99.999, in realtà l'eeprom viene aggiornata.
In giro esistono software che calcolano le immagini, ed usano un algoritmo leggermente diverso:
Indirizzo Valore
0x68 = 0xb73d - h / 8
0x6a = 0x6e7b - h / 4
0x6c = 0xdcf6 - h / 2
0x6e = 0xb9ed - h
0x72 = 0x6e79 - h / 4
0x74 = 0xdcf2 - h / 2
Dove
h = km / (53.7 / 8)
La discrepanza è minima, e forse è legata al fatto che nella realtà è possibile che le celle non vengano aggiornate tutte quante e ci possono essere dei disallineamenti.
Con le formule di cui sopra è possibile ricostruire l'immagine con il km voluto e memorizzarlo nella eeprom.
[1] https://www.youtube.com/watch?v=PJEsjzbrh1U
[2] https://www.digital-kaos.co.uk/forums/forumdisplay.php/174-DashBoard