Ok, can you see if you can dump part of the ROM? That will hopefully help me figure out how to get the EEPROM read/write to work on your cluster.
The dump will take a number of minutes to run (about 16 times as long as it takes to dump the 2K EEPROM)
kw1281test.exe COM2 10400 17 DumpMem 0x28000 0x8000
At the end of the program execution, it presented "expected error": (I executed the command 3 times, and each time the reading stopped in a different block)
Version 0.98.0-beta (
https://github.com/gmenounos/kw1281test/releases)
Args: COM3 10400 17 DumpMem 0x28000 0x8000
OSVersion: Microsoft Windows NT 10.0.22621.0
.NET Version: 8.0.6
Culture: pt-BR
Opening serial port COM3
Sending wakeup message
Reading sync byte
Keyword Lsb $01
Keyword Msb $8A
Protocol is KW 1281 (8N1)
ECU: 6QE920827C KOMBIINSTRUMENT VDO V06
Software Coding 04541, Workshop Code: 00000
Sending Custom "Get Access Level" block
Sending Custom "Unlock Additional Commands" block
Access level is 7.
Cluster is unlocked for memory access. Skipping Seed/Key login.
Saving memory dump to cluster_mem_$028000.bin
Sending Custom "Read Memory" block (Address: $028000, Count: $0F)
Sending Custom "Read Memory" block (Address: $02800F, Count: $0F)
Sending Custom "Read Memory" block (Address: $02801E, Count: $0F)
Sending Custom "Read Memory" block (Address: $02802D, Count: $0F)
Sending Custom "Read Memory" block (Address: $02803C, Count: $0F)
Sending Custom "Read Memory" block (Address: $02804B, Count: $0F)
Sending Custom "Read Memory" block (Address: $02805A, Count: $0F)
Sending Custom "Read Memory" block (Address: $028069, Count: $0F)
Sending Custom "Read Memory" block (Address: $028078, Count: $0F)
Sending Custom "Read Memory" block (Address: $028087, Count: $0F)
Sending Custom "Read Memory" block (Address: $028096, Count: $0F)
Sending Custom "Read Memory" block (Address: $0280A5, Count: $0F)
Sending Custom "Read Memory" block (Address: $0280B4, Count: $0F)
Sending Custom "Read Memory" block (Address: $0280C3, Count: $0F)
Sending Custom "Read Memory" block (Address: $0280D2, Count: $0F)
Sending Custom "Read Memory" block (Address: $0280E1, Count: $0F)
Sending Custom "Read Memory" block (Address: $0280F0, Count: $0F)
Sending Custom "Read Memory" block (Address: $0280FF, Count: $0F)
Sending Custom "Read Memory" block (Address: $02810E, Count: $0F)
Sending Custom "Read Memory" block (Address: $02811D, Count: $0F)
Sending Custom "Read Memory" block (Address: $02812C, Count: $0F)
Sending Custom "Read Memory" block (Address: $02813B, Count: $0F)
Sending Custom "Read Memory" block (Address: $02814A, Count: $0F)
Sending Custom "Read Memory" block (Address: $028159, Count: $0F)
Sending Custom "Read Memory" block (Address: $028168, Count: $0F)
Sending Custom "Read Memory" block (Address: $028177, Count: $0F)
Sending Custom "Read Memory" block (Address: $028186, Count: $0F)
Sending Custom "Read Memory" block (Address: $028195, Count: $0F)
Sending Custom "Read Memory" block (Address: $0281A4, Count: $0F)
Sending Custom "Read Memory" block (Address: $0281B3, Count: $0F)
Sending Custom "Read Memory" block (Address: $0281C2, Count: $0F)
Sending Custom "Read Memory" block (Address: $0281D1, Count: $0F)
Sending Custom "Read Memory" block (Address: $0281E0, Count: $0F)
Sending Custom "Read Memory" block (Address: $0281EF, Count: $0F)
Sending Custom "Read Memory" block (Address: $0281FE, Count: $0F)
Sending Custom "Read Memory" block (Address: $02820D, Count: $0F)
Sending Custom "Read Memory" block (Address: $02821C, Count: $0F)
Sending Custom "Read Memory" block (Address: $02822B, Count: $0F)
Sending Custom "Read Memory" block (Address: $02823A, Count: $0F)
Sending Custom "Read Memory" block (Address: $028249, Count: $0F)
Sending Custom "Read Memory" block (Address: $028258, Count: $0F)
Sending Custom "Read Memory" block (Address: $028267, Count: $0F)
Sending Custom "Read Memory" block (Address: $028276, Count: $0F)
Sending Custom "Read Memory" block (Address: $028285, Count: $0F)
Sending Custom "Read Memory" block (Address: $028294, Count: $0F)
Sending Custom "Read Memory" block (Address: $0282A3, Count: $0F)
Sending Custom "Read Memory" block (Address: $0282B2, Count: $0F)
Sending Custom "Read Memory" block (Address: $0282C1, Count: $0F)
Sending Custom "Read Memory" block (Address: $0282D0, Count: $0F)
Sending Custom "Read Memory" block (Address: $0282DF, Count: $0F)
Sending Custom "Read Memory" block (Address: $0282EE, Count: $0F)
Sending Custom "Read Memory" block (Address: $0282FD, Count: $0F)
Sending Custom "Read Memory" block (Address: $02830C, Count: $0F)
Sending Custom "Read Memory" block (Address: $02831B, Count: $0F)
Sending Custom "Read Memory" block (Address: $02832A, Count: $0F)
Sending Custom "Read Memory" block (Address: $028339, Count: $0F)
Sending Custom "Read Memory" block (Address: $028348, Count: $0F)
Sending Custom "Read Memory" block (Address: $028357, Count: $0F)
Sending Custom "Read Memory" block (Address: $028366, Count: $0F)
Sending Custom "Read Memory" block (Address: $028375, Count: $0F)
Sending Custom "Read Memory" block (Address: $028384, Count: $0F)
Sending Custom "Read Memory" block (Address: $028393, Count: $0F)
Sending Custom "Read Memory" block (Address: $0283A2, Count: $0F)
Sending Custom "Read Memory" block (Address: $0283B1, Count: $0F)
Sending Custom "Read Memory" block (Address: $0283C0, Count: $0F)
Sending Custom "Read Memory" block (Address: $0283CF, Count: $0F)
Sending Custom "Read Memory" block (Address: $0283DE, Count: $0F)
Sending Custom "Read Memory" block (Address: $0283ED, Count: $0F)
Sending Custom "Read Memory" block (Address: $0283FC, Count: $0F)
Sending Custom "Read Memory" block (Address: $02840B, Count: $0F)
Sending Custom "Read Memory" block (Address: $02841A, Count: $0F)
Sending Custom "Read Memory" block (Address: $028429, Count: $0F)
Sending Custom "Read Memory" block (Address: $028438, Count: $0F)
Sending Custom "Read Memory" block (Address: $028447, Count: $0F)
Sending Custom "Read Memory" block (Address: $028456, Count: $0F)
Sending Custom "Read Memory" block (Address: $028465, Count: $0F)
Sending Custom "Read Memory" block (Address: $028474, Count: $0F)
Sending Custom "Read Memory" block (Address: $028483, Count: $0F)
Sending Custom "Read Memory" block (Address: $028492, Count: $0F)
Sending Custom "Read Memory" block (Address: $0284A1, Count: $0F)
Sending Custom "Read Memory" block (Address: $0284B0, Count: $0F)
Sending Custom "Read Memory" block (Address: $0284BF, Count: $0F)
Sending Custom "Read Memory" block (Address: $0284CE, Count: $0F)
Sending Custom "Read Memory" block (Address: $0284DD, Count: $0F)
Sending Custom "Read Memory" block (Address: $0284EC, Count: $0F)
Sending Custom "Read Memory" block (Address: $0284FB, Count: $0F)
Sending Custom "Read Memory" block (Address: $02850A, Count: $0F)
Sending Custom "Read Memory" block (Address: $028519, Count: $0F)
Sending Custom "Read Memory" block (Address: $028528, Count: $0F)
Sending Custom "Read Memory" block (Address: $028537, Count: $0F)
Sending Custom "Read Memory" block (Address: $028546, Count: $0F)
Sending Custom "Read Memory" block (Address: $028555, Count: $0F)
Sending Custom "Read Memory" block (Address: $028564, Count: $0F)
Sending Custom "Read Memory" block (Address: $028573, Count: $0F)
Sending Custom "Read Memory" block (Address: $028582, Count: $0F)
Sending Custom "Read Memory" block (Address: $028591, Count: $0F)
Sending Custom "Read Memory" block (Address: $0285A0, Count: $0F)
Sending Custom "Read Memory" block (Address: $0285AF, Count: $0F)
Sending Custom "Read Memory" block (Address: $0285BE, Count: $0F)
Sending Custom "Read Memory" block (Address: $0285CD, Count: $0F)
Sending Custom "Read Memory" block (Address: $0285DC, Count: $0F)
Sending Custom "Read Memory" block (Address: $0285EB, Count: $0F)
Sending Custom "Read Memory" block (Address: $0285FA, Count: $0F)
Sending Custom "Read Memory" block (Address: $028609, Count: $0F)
Sending Custom "Read Memory" block (Address: $028618, Count: $0F)
Sending Custom "Read Memory" block (Address: $028627, Count: $0F)
Sending Custom "Read Memory" block (Address: $028636, Count: $0F)
Sending Custom "Read Memory" block (Address: $028645, Count: $0F)
Sending Custom "Read Memory" block (Address: $028654, Count: $0F)
Sending Custom "Read Memory" block (Address: $028663, Count: $0F)
Sending Custom "Read Memory" block (Address: $028672, Count: $0F)
Sending Custom "Read Memory" block (Address: $028681, Count: $0F)
Sending Custom "Read Memory" block (Address: $028690, Count: $0F)
Sending Custom "Read Memory" block (Address: $02869F, Count: $0F)
Sending Custom "Read Memory" block (Address: $0286AE, Count: $0F)
Sending Custom "Read Memory" block (Address: $0286BD, Count: $0F)
Sending Custom "Read Memory" block (Address: $0286CC, Count: $0F)
Sending Custom "Read Memory" block (Address: $0286DB, Count: $0F)
Sending Custom "Read Memory" block (Address: $0286EA, Count: $0F)
Sending Custom "Read Memory" block (Address: $0286F9, Count: $0F)
Sending Custom "Read Memory" block (Address: $028708, Count: $0F)
Sending Custom "Read Memory" block (Address: $028717, Count: $0F)
Sending Custom "Read Memory" block (Address: $028726, Count: $0F)
Sending Custom "Read Memory" block (Address: $028735, Count: $0F)
Sending Custom "Read Memory" block (Address: $028744, Count: $0F)
Sending Custom "Read Memory" block (Address: $028753, Count: $0F)
Sending Custom "Read Memory" block (Address: $028762, Count: $0F)
Sending Custom "Read Memory" block (Address: $028771, Count: $0F)
Sending Custom "Read Memory" block (Address: $028780, Count: $0F)
Sending Custom "Read Memory" block (Address: $02878F, Count: $0F)
Sending Custom "Read Memory" block (Address: $02879E, Count: $0F)
Sending Custom "Read Memory" block (Address: $0287AD, Count: $0F)
Sending Custom "Read Memory" block (Address: $0287BC, Count: $0F)
Sending Custom "Read Memory" block (Address: $0287CB, Count: $0F)
Sending Custom "Read Memory" block (Address: $0287DA, Count: $0F)
Sending Custom "Read Memory" block (Address: $0287E9, Count: $0F)
Sending Custom "Read Memory" block (Address: $0287F8, Count: $0F)
Sending Custom "Read Memory" block (Address: $028807, Count: $0F)
Sending Custom "Read Memory" block (Address: $028816, Count: $0F)
Sending Custom "Read Memory" block (Address: $028825, Count: $0F)
Sending Custom "Read Memory" block (Address: $028834, Count: $0F)
Sending Custom "Read Memory" block (Address: $028843, Count: $0F)
Sending Custom "Read Memory" block (Address: $028852, Count: $0F)
Sending Custom "Read Memory" block (Address: $028861, Count: $0F)
Sending Custom "Read Memory" block (Address: $028870, Count: $0F)
Sending Custom "Read Memory" block (Address: $02887F, Count: $0F)
Sending Custom "Read Memory" block (Address: $02888E, Count: $0F)
Sending Custom "Read Memory" block (Address: $02889D, Count: $0F)
Sending Custom "Read Memory" block (Address: $0288AC, Count: $0F)
Sending Custom "Read Memory" block (Address: $0288BB, Count: $0F)
Error receiving block: Received block end $04 but expected $03. Block bytes: 03 67 09 04
Partial block: $03 $67 $09 $04
Error receiving blocks: Received block end $04 but expected $03. Block bytes: 03 67 09 04
Blocks received:
Block: $12 $65 $1B $8D $14 $0B $8D $2E $0B $AD $99 $02 $8D $15 $0B $8D $2F $0B $03
Caught: System.InvalidOperationException Received block end $04 but expected $03. Block bytes: 03 67 09 04
Unhandled exception: System.InvalidOperationException: Received block end $04 but expected $03. Block bytes: 03 67 09 04
at BitFab.KW1281Test.KW1281Dialog.ReceiveBlock() in /Users/gmenounos/src/kw1281test/KW1281Dialog.cs:line 411
at BitFab.KW1281Test.KW1281Dialog.ReceiveBlocks() in /Users/gmenounos/src/kw1281test/KW1281Dialog.cs:line 354
at BitFab.KW1281Test.Cluster.VdoCluster.CustomReadMemory(UInt32, Byte) in /Users/gmenounos/src/kw1281test/Cluster/VdoCluster.cs:line 94
at BitFab.KW1281Test.Cluster.VdoCluster.DumpMem(String, UInt32, UInt32) in /Users/gmenounos/src/kw1281test/Cluster/VdoCluster.cs:line 167
at BitFab.KW1281Test.Tester.DumpClusterMem(UInt32, UInt32, String) in /Users/gmenounos/src/kw1281test/Tester.cs:line 1082
at BitFab.KW1281Test.Tester.DumpMem(UInt32, UInt32, String) in /Users/gmenounos/src/kw1281test/Tester.cs:line 402
at BitFab.KW1281Test.Program.Run(String[]) in /Users/gmenounos/src/kw1281test/Program.cs:line 345
at BitFab.KW1281Test.Program.Main(String[]) in /Users/gmenounos/src/kw1281test/Program.cs:line 31
On the 4th attempt, the program ran until time out.
One detail: I managed to change the odometer with the ETSmart program calculator, directly on the encrypted file, without needing to decrypt it. Then, I wrote the EEPROM to the chip.
The only thing missing is changing the address 0x065 (SpeedSource) from $87 to $86 and 0x190 from 00 to $75, because the speedometer is not working and the fuel gauge is oscillating.
The requested dump is attached.
Also attached is the EEPROM currently written.
cluster_mem_$028000.bin (expected error)
cluster_mem_$028000.bin (time_out)
M93C86_CURRENT_KM_L7.bin