gmenounos / kw1281test

VW KW1281 Protocol Test Tool
MIT License
111 stars 14 forks source link

KW1281Test - New Beetle 2001 SKC code #69

Closed CH341A closed 2 months ago

CH341A commented 3 months ago

I tried to get the SKC of a Magenti Marelli cluster of a VW New Beetle of 2001. All attempts with kw1281test stuck...

First attempt with 9600 baud: Version 0.97.0-beta (https://github.com/gmenounos/kw1281test/releases) Args: com1 9600 17 GetSKC OSVersion: Microsoft Windows NT 10.0.19045.0 .NET Version: 8.0.0 Culture: de-DE Opening serial port com1 Sending wakeup message Reading sync byte The operation has timed out. Retrying wakeup message... Reading sync byte The operation has timed out. Retrying wakeup message... Reading sync byte The operation has timed out. Caught: System.InvalidOperationException Controller did not wake up. Unhandled exception: System.InvalidOperationException: Controller did not wake up. at BitFab.KW1281Test.KwpCommon.WakeUp(Byte, Boolean) in /Users/gmenounos/src/kw1281test/KwpCommon.cs:line 62 at BitFab.KW1281Test.Tester.Kwp1281Wakeup(Boolean ) in /Users/gmenounos/src/kw1281test/Tester.cs:line 33 at BitFab.KW1281Test.Tester.GetSkc() in /Users/gmenounos/src/kw1281test/Tester.cs:line 509 at BitFab.KW1281Test.Program.Run(String[]) in /Users/gmenounos/src/kw1281test/Program.cs:line 275 at BitFab.KW1281Test.Program.Main(String[]) in /Users/gmenounos/src/kw1281test/Program.cs:line 31 Version 0.97.0-beta (https://github.com/gmenounos/kw1281test/releases)

Second attempt with 10400 baud: Version 0.97.0-beta (https://github.com/gmenounos/kw1281test/releases) Args: com1 10400 17 GetSKC OSVersion: Microsoft Windows NT 10.0.19045.0 .NET Version: 8.0.0 Culture: de-DE Opening serial port com1 Sending wakeup message Reading sync byte Unexpected sync byte: Expected $55, Actual $B5 Retrying wakeup message... Reading sync byte Unexpected sync byte: Expected $55, Actual $95 Retrying wakeup message... Reading sync byte Unexpected sync byte: Expected $55, Actual $B5 Caught: System.InvalidOperationException Controller did not wake up. Unhandled exception: System.InvalidOperationException: Controller did not wake up. at BitFab.KW1281Test.KwpCommon.WakeUp(Byte, Boolean) in /Users/gmenounos/src/kw1281test/KwpCommon.cs:line 62 at BitFab.KW1281Test.Tester.Kwp1281Wakeup(Boolean ) in /Users/gmenounos/src/kw1281test/Tester.cs:line 33 at BitFab.KW1281Test.Tester.GetSkc() in /Users/gmenounos/src/kw1281test/Tester.cs:line 509 at BitFab.KW1281Test.Program.Run(String[]) in /Users/gmenounos/src/kw1281test/Program.cs:line 275 at BitFab.KW1281Test.Program.Main(String[]) in /Users/gmenounos/src/kw1281test/Program.cs:line 31

Here apparently a connect was established but failed by a comparison of certain bytes.

Any help appreciated.

gmenounos commented 3 months ago

I'd recommend trying 9600 baud a few more times. Beetle Marelli clusters always use 9600. The fact that 10400 is returning unexpected sync bytes means that the baud rate is not correct.

CH341A commented 3 months ago

Hi Greg, hence this cluster need hammering force to wake up? That fits into the frst scenario. I'll give it a try, once the car is available again. Thanks

arathburgos05 commented 2 months ago

I have same issue with Passat 2016 TSI. I'm using this one https://www.ross-tech.com/vcds/hex-v2.php HEX-V2 and using the Ross-Tech Direct USB Interface with VCP drivers. I read something related to that interface wasn't incompatible. Do you know if this could be an interface problem?

I'm using 9600 as baudrate. In windows I cannot set 10400: image Do you know why?

Regards.

gmenounos commented 2 months ago

@arathburgos05 Please do not piggyback on unrelated issues. Start a new issue

CH341A commented 2 months ago

I think my Beetle is much too old to make use of CAN to get the SKC? Hence I need to continue with K-Line and cannot use the Rosstech HEX-V2, which I have already.

CH341A commented 2 months ago

Hi Greg,

today I had access again to the Beetle with the MM cluster onbaord. I tried various commands, such as GetSKC, DumpMarelliMem and ReadEeprom. First of all 9600 Baud as aconnection speed seems to be ok. But reading on 17 with GetSKC I get just ECU: 1C0920800C KOMBI+WEGFAHRS. M73 V07 Software Coding 01142, Workshop Code: 00000 and the message: Unsupported Cluster version.

Once making a dump of the EEprom following infos are given:

_Version 0.97.0-beta (https://github.com/gmenounos/kw1281test/releases) Args: com1 9600 17 DumpEeprom 0 2048 dump_eeprom.txt OSVersion: Microsoft Windows NT 10.0.19045.0 .NET Version: 8.0.0 Culture: de-DE Opening serial port com1 Sending wakeup message Reading sync byte Keyword Lsb $01 Keyword Msb $8A Protocol is KW 1281 (8N1) ECU: 1C0920800C KOMBI+WEGFAHRS. M73 V07 Software Coding 01142, Workshop Code: 00000 Sending ReadIdent block Sending Custom "Read Software Version" blocks Sending Custom "Unlock Additional Commands" block Cluster did not return software version. Unknown cluster software version. EEPROM access will likely fail. Sending Custom "Get Access Level" block Access level is unknown. Sending Custom "Seed request" block Sending Custom "Get Access Level" block Access level is unknown. Failed to unlock cluster. Saving EEPROM dump to dump_eeprom.txt Sending ReadEeprom block (Address: $0000, Count: $10) Sending ReadEeprom block (Address: $0010, Count: $10) Sending ReadEeprom block (Address: $0020, Count: $10) Sending ReadEeprom block (Address: $0030, Count: $10) Sending ReadEeprom block (Address: $0040, Count: $10) and many more line reading hex addresses. The result is just a lot FF as hex values.

The command DumMarelliMem with various starting porint and various length to be read just give rubbish as data.

Args: com1 9600 17 DumpMarelliMem 3072 1024 dump.txt OSVersion: Microsoft Windows NT 10.0.19045.0 .NET Version: 8.0.0 Culture: de-DE Opening serial port com1 Sending wakeup message Reading sync byte Keyword Lsb $01 Keyword Msb $8A Protocol is KW 1281 (8N1) ECU: 1C0920800C KOMBI+WEGFAHRS. M73 V07 Software Coding 01142, Workshop Code: 00000 Untested cluster version! You may need to disconnect your battery if this fails. entryH: 0x02, regBlockH: 0x08, count: 0x0400 Sending block 0x6C Writing data to cluster microcontroller Receiving ACK Writing memory dump program to cluster microcontroller (Entry: $0200, RegBlock: $0800, Start: $0C00, Count: $0400) Receiving ACK Receiving memory dump Saved memory dump to dump.txt Done

Hopefully you get some useful information. What I'm thinking about is the notice of "Unsupported Cluster" as it is obviously a M73 V7, maybe a unknown version with special tricks....

Thanks.

gmenounos commented 2 months ago

Looks like you got an EEPROM dump:

Receiving memory dump
Saved memory dump to dump.txt

Can you please attach it so I can take a look?

CH341A commented 2 months ago

dump.txt

CH341A commented 2 months ago

Btw: I have another MM Claster of a Beetle here as spare part. I'm just waiting for the ordered connector in blue and green with some cabling, then I'll create a harness and can check whatever is requested. I don't know which version it is until I have it connected.

gmenounos commented 2 months ago

Based on the dump, I think your SKC is 02442. Can you give it a try?

CH341A commented 2 months ago

Hi Greg, yes, I'll try it. But not today, maybe tomorrow.

Cheers

CH341A commented 2 months ago

Hi Greg, I got a chance on test it this evening. It works! Many thanks.

But where is it coded within the dump? As far as I know the code is coded in HEX (LSB) three time as a recurring value in the least bytes. But here it looks completely different...

Cheers

gmenounos commented 2 months ago

See here for details on how to find the SKC in that dump: https://github.com/gmenounos/kw1281test/issues/50#issuecomment-1770255129

gmenounos commented 2 months ago

I'll add support for your cluster in the next release.

CH341A commented 2 months ago

Hi Greg,

thank's for the hint to other issues. I did reading them some days ago myself and found two feasable byte adresses: 0x202/0x203 and 0x313/0x314 are possible places to achieve the SKC. As I told you I have another cluster here of a Beetle (it's V7 software) and I could easily dump the mem from 3072 onwards with your software version 0.97. Since a cluster won't stop working once you used a wrong code, two choices are worth tying it.

Cheers