Kombiinstrument - Anpassen des Kilometerstands

Aus T4Forums Doku
Zur Navigation springenZur Suche springen

Hinweis das modifizieren des Kilometerstandes zu betrügerischen Zwecken ist verboten. Die folgenden Informationen sollen dazu dienen, nach dem Tausch des KIs den zum Fahrzeug passenden Kilometerstand zu programmieren oder einfach nur aufzeigen, wie einfach der Kilometerstand verändert werden kann

grünes KI(1996 - 1998)

Der Kilometerstand ist in den Speicherstellen 0x00 - 0x1F abgelegt.

Er kann nach dem Ersetzen eines defekten Kombiinstruments in das neue Instrument übernommen werden, indem der komplette Bereich kopiert wird.

Alternativ kann er auch berechnet werden: Der Kilometerstand wird in Blöcken zu je 2 Byte im genannten Speicherbereich abgelegt

Bei einem Kilometerstand von 15 sind alle Blöcke auf 0x00 gesetzt. Dann wird pro gefahrenem Kilometer ein Block um eins hoch gezählt, bis alle 16 Blöcke den gleichen Wert aufweisen. Daraufhin wird wird wieder an Offset 0x00 begonnen, den ersten Block des Speicherbereichs um eins zu imkrementieren.

15 0000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
15 0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

16 0000: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
16 0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

17 0000: 01 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00
17 0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

...

31 0000: 01 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00
31 0010: 01 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00

32 0000: 02 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00
32 0010: 01 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00

33 0000: 02 00 02 00 01 00 01 00 01 00 01 00 01 00 01 00
33 0010: 01 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00


Der Kilometerstand kann mittels folgendem Python-Skript berechnet werden: (die ausgegebenen Werte müssen noch byteweise gedreht werden, bevor sie in den Speicher geschrieben werden)

import sys

print("Kilometerstand eingeben:")

Kilometerstand = int(input())

if (Kilometerstand <= 15):
    print("Kilometerstand muss mindestens 16 betragen")
    input()
    sys.exit()


Kilometerstand = Kilometerstand - 15

Basis = Kilometerstand // 16

Inkrement = Kilometerstand % 16

BasisHex = hex(Basis)

print("Wert der ersten " + str(Inkrement) + " Blöcke: " + str(hex(Basis+1)))
print("Wert der restlichen Blöcke: " + str(hex(Basis)))

input()