kw1281test: A Free VDS-Pro / VagTacho Alternative

gmenounos

Vendor
Joined
Jun 26, 2003
Location
Watertown, MA, USA
TDI
'99.5 Golf GLS, '01 Jetta GLX Wagon (TDI conversion), Non-TDI: '23 Tesla Model 3 AWD
I sent my Passat's cluster to Cluster's by Litke to have him replace the MFA screen, when I got it back, the needles were backlit whenever the key was on (rest of the cluster backlighting remains off until you turn on the lights), the needles do a min to max sweep when you first key it on, and my cruise control light now only comes on when I engage cruise instead of just on when the main switch is set to "ON".

Well, that sent me down a rabbithole, poking around on the old Nefmoto website to find this handy reference: http://nefariousmotorsports.com/forum/index.php?topic=7964.msg74241#msg74241

This is *only* for VWK501 and 503 software clusters. Sorry Immo II owners, you're left out yet again.

After some further research to find how the needle sweep is performed, it turns out it only applies to MFA screen and full FIS screen-equipped clusters. I guess the lower end clusters don't support it. Graeme's webspace has the tutorial on how to do the needle sweep for those clusters. Again, have to differentiate if you have 501 or 503 software first, and then there's further differentiation on each of those pages depending on a more specific variation of the chip/software the cluster has--he walks you through each.
Someone in Argentina has created needle sweep (and LED sweep) patches for a few other clusters including VWK501LL "Low Line" (non FIS/MFA):
https://blog.feche.ar/

Independently I've created a needle sweep patch for VWK501MH 00.88 ROMs but I haven't published it anywhere yet.

I've collected various bits of MK4 cluster info here: https://github.com/gmenounos/vwcluster (mostly useful for people reverse engineering these clusters rather than modding them)
 

vampirelo

Member
Joined
Mar 18, 2014
Location
Russia
TDI
Golf 4
Someone in Argentina has created needle sweep (and LED sweep) patches for a few other clusters including VWK501LL "Low Line" (non FIS/MFA):
https://blog.feche.ar/

Independently I've created a needle sweep patch for VWK501MH 00.88 ROMs but I haven't published it anywhere yet.

I've collected various bits of MK4 cluster info here: https://github.com/gmenounos/vwcluster (mostly useful for people reverse engineering these clusters rather than modding them)
Federico (from Argentina) has made these cool needles sweep patches)

Do you need info How to calculate checksum for various 919 vw clusters immo 1 and immo 2?
For immo 2 I have published the universal calc (due to two formulas can be applied), for immo 1 - Not published anywhere)
Maybe you can add this checksum info to https://github.com/gmenounos/vwcluster/blob/main/Checksums.md

Looks like that vw fans are around of the World)))
 

Matt-98AHU

Loose Nut Behind the Wheel Vendor
Joined
Apr 23, 2006
Location
Gresham, OR
TDI
2001 Golf TDI, 2005 Passat wagon, 2004 Touareg V10.
Someone in Argentina has created needle sweep (and LED sweep) patches for a few other clusters including VWK501LL "Low Line" (non FIS/MFA):
https://blog.feche.ar/

Independently I've created a needle sweep patch for VWK501MH 00.88 ROMs but I haven't published it anywhere yet.

I've collected various bits of MK4 cluster info here: https://github.com/gmenounos/vwcluster (mostly useful for people reverse engineering these clusters rather than modding them)
Awesome! Will have to see if I can spot a 00.A7 patch
 

pkhoury

That guy with the goats
Joined
Nov 30, 2010
Location
Mountain Home, TX
TDI
2013 JSW, 2 x 2002 Golf, 1995 F450 7.3L
Also, don't forget about DashDumpEdit, which knows how to do a ton of cluster mods (including needle sweep on VWK501LL 00A7):
https://www.drive2.ru/l/471768829593126099/
That's what I've used. Certainly a lot more useful if you need quick and dirty mods, rather than modifying individual bytes, though the latter is sometimes more useful. I've found dashdumpedit isn't that great about always writing the right bits when trying to calibrate the speedometer.
 

gmenounos

Vendor
Joined
Jun 26, 2003
Location
Watertown, MA, USA
TDI
'99.5 Golf GLS, '01 Jetta GLX Wagon (TDI conversion), Non-TDI: '23 Tesla Model 3 AWD

Matt-98AHU

Loose Nut Behind the Wheel Vendor
Joined
Apr 23, 2006
Location
Gresham, OR
TDI
2001 Golf TDI, 2005 Passat wagon, 2004 Touareg V10.
Someone in Argentina has created needle sweep (and LED sweep) patches for a few other clusters including VWK501LL "Low Line" (non FIS/MFA):
https://blog.feche.ar/

Independently I've created a needle sweep patch for VWK501MH 00.88 ROMs but I haven't published it anywhere yet.

I've collected various bits of MK4 cluster info here: https://github.com/gmenounos/vwcluster (mostly useful for people reverse engineering these clusters rather than modding them)
501LL V1.0 has 00 A7 in Feche's code at the correct addresses, so that's what I decided to run with. Copied and pasted, so far it hasn't responded--but her wagon did the same thing with the needle lighting and cruise light mods. It's like it's taking it longer to go fully to sleep than it should.

With those first two mods, it didn't take until after I let it sit overnight. I locked, armed the alarm, removed the OBD cable and let it sit for a few minutes and it still didn't reset to load the new eeprom settings, but then I noticed the next day that the changes *did* finally work.

So, fingers crossed that's the case for the needle sweep using Feche's V1.0 patch.
 

Matt-98AHU

Loose Nut Behind the Wheel Vendor
Joined
Apr 23, 2006
Location
Gresham, OR
TDI
2001 Golf TDI, 2005 Passat wagon, 2004 Touareg V10.
Doesn't seem like it works for me, unfortunately. Cluster is functioning as normal with my other hacks, but no needle sweep after the patch for it. Ah well.
 

Fabio Lobas

New member
Joined
Apr 24, 2025
Location
Brasil
TDI
Bora
Boa noite, amigos. Alguém aqui conseguiu fazer os espelhos retrovisores dobráveis funcionarem pelo controle remoto do Bora 1C0 959 755 C? Se alguém já fez isso, pode me ajudar com o código correto? Muito obrigado.
 

P2B

Top Post Dawg
Joined
Jan 11, 2006
Location
Toronto & Muskoka, Canada
TDI
2002 Jetta, 2003 Jetta, 2003 Jetta Wagon
Boa noite, amigos. Alguém aqui conseguiu fazer os espelhos retrovisores dobráveis funcionarem pelo controle remoto do Bora 1C0 959 755 C? Se alguém já fez isso, pode me ajudar com o código correto? Muito obrigado.
Good evening, friends. Has anyone here managed to make the folding rearview mirrors work using the remote control of the Bora 1C0 959 755 C? If anyone has already done this, can you help me with the correct code? Thank you very much.
 

Nate_Grauvogel

Veteran Member
Joined
Feb 10, 2005
Location
Northern VA
TDI
'15 T-Reg Exec
Trying to figure out if the "new old" radio I have (1C0035196P from an 05 Beetle w/CD player w/SAT) is supported - doesn't appear so.

KWP1281Test talks to it using either command (ClarionVWPremium4SafeCode or DelcoVWPremium5SafeCode) and baud 10400, but neither returns the safe code. Am I out of luck?

Here are the logs just in case:
Code:
Version 0.98.0-beta (https://github.com/gmenounos/kw1281test/releases)
Args: com5 10400 56 delcovwpremium5safecode
OSVersion: Microsoft Windows NT 10.0.19045.0
.NET Version: 8.0.6
Culture: en-US
Opening serial port com5
Sending wakeup message
Reading sync byte
The operation has timed out.
Retrying wakeup message...
Reading sync byte
Keyword Lsb $01
Keyword Msb $8A
Protocol is KW 1281 (8N1)
ECU: 1C0035196P   RADIO DE2         0003
Software Coding 06031, Workshop Code: 00066
Only supported for radio manufacturing address 7C
Sending EndCommunication block

Version 0.98.0-beta (https://github.com/gmenounos/kw1281test/releases)
Args: com5 10400 56 clarionvwpremium4safecode
OSVersion: Microsoft Windows NT 10.0.19045.0
.NET Version: 8.0.6
Culture: en-US
Opening serial port com5
Sending wakeup message
Reading sync byte
The operation has timed out.
Retrying wakeup message...
Reading sync byte
Keyword Lsb $01
Keyword Msb $8A
Protocol is KW 1281 (8N1)
ECU: 1C0035196P   RADIO DE2         0003
Software Coding 06031, Workshop Code: 00066
No response received from radio.
Sending EndCommunication block
Thanks!!
 

gmenounos

Vendor
Joined
Jun 26, 2003
Location
Watertown, MA, USA
TDI
'99.5 Golf GLS, '01 Jetta GLX Wagon (TDI conversion), Non-TDI: '23 Tesla Model 3 AWD
Trying to figure out if the "new old" radio I have (1C0035196P from an 05 Beetle w/CD player w/SAT) is supported - doesn't appear so.

KWP1281Test talks to it using either command (ClarionVWPremium4SafeCode or DelcoVWPremium5SafeCode) and baud 10400, but neither returns the safe code. Am I out of luck?
Yes, you are out of luck because your radio is not a Delco Premium 5 nor a Clarion Premium 4. Your best bet is to search on eBay for "vw radio code" and you'll find several vendors who can get you your code for around $15.
 

gmenounos

Vendor
Joined
Jun 26, 2003
Location
Watertown, MA, USA
TDI
'99.5 Golf GLS, '01 Jetta GLX Wagon (TDI conversion), Non-TDI: '23 Tesla Model 3 AWD
Doesn't seem like it works for me, unfortunately. Cluster is functioning as normal with my other hacks, but no needle sweep after the patch for it. Ah well.
If you want to send me your EEPROM dump, I can take a look and double-check that the patch is in there at the correct location.

If the patch looks good and it still doesn't work, if you dump the ROM and send it to me, I can probably build a needle sweep patch when I have time.

Here's how to dump the ROM (it'll take many minutes so you'll need a fully charged battery and the ignition on the whole time, but you don't have to dump all 5 banks at once):

Code:
.\kw1281test.exe COM4 10400 17 DumpMem 0x02000 0x6000
.\kw1281test.exe COM4 10400 17 DumpMem 0x18000 0x8000
.\kw1281test.exe COM4 10400 17 DumpMem 0x28000 0x8000
.\kw1281test.exe COM4 10400 17 DumpMem 0x38000 0x8000
.\kw1281test.exe COM4 10400 17 DumpMem 0x48000 0x4000
Also, after applying a patch, you can use the kw1281test "reset" command to reboot the cluster and you should see the needle sweep right away:

.\kw1281test.exe COM4 10400 17 Reset
 

Stoikoki

New member
Joined
Apr 27, 2025
Location
Bulgaria
TDI
1.4tdi
Not sure. You'll have to try and let us know if it works.

Version 0.99.7-beta Chttps://github.com/gmenounos/kw1281test/rele


Command Line: kw1281test COM2 10400 :17 GetSKC OSVersion: Microsoft Windows NT. 10.0.26100.0


. NET Version: 9.0.2


• Culture: bg-BG


T Opening Generic serial port, COM2


Sending wakeup message


Reading sync byte


Keyword Lsb $01


Keyword Msb $8A


Protocol is KW 1281 (8N1)


ECU: 5J0920810C KOMBIINSTR.


V2823466


Software Coding 19104, Wörkshop Code: 13765 Unsupported cluster: 5J0920810C KOMBIINSTR.


V2823466


Software Coding 19104, Workshop Code: 13765


Sending EndCommunication block





C: \Users\LENOVO\Desktop\kw1281test>
 

jaqueti

New member
Joined
Mar 30, 2025
Location
Polen
TDI
MK4 1.9TDI 90PS
Hi, I’m using a blue KKL cable and can connect to the 1J5920826CX cluster without issues – I can read the PIN and EEPROM. But I’m having trouble connecting to the CCM 1C0959799B. For example, when I run:

kw1281test COM1 9600 46 ReadEeprom 04361

I always get the same error, regardless of the baud rate. Any ideas what might be wrong?

Version 0.99.7-beta (https://github.com/gmenounos/kw1281test/releases)
Command Line: kw1281test COM1 10400 46 ReadEeprom 04361
OSVersion: Microsoft Windows NT 6.1.7601 Service Pack 1
.NET Version: 9.0.2
Culture: pl-PL
Opening Generic 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.

Controller did not wake up.
- Are you using a supported cable?
- Is the cable plugged in and any necessary drivers installed?
- Is the ignition on?
- Is the controller address correct?
- Is the baud rate correct (unexpected sync byte errors)? Try 10400, 9600, 4
800.
You can try other software (e.g. VCDS-Lite) to verify that the cable/drivers/add
ress are ok.

C:\Users\Sylwia\Desktop\kw1281test>
Download VCDS-Lite and see if it can connect to your CCM. If it can't then kw1281test won't be able to either.
In VCDS-Lite I can connect to the CCM, but the connection drops and disconnects, so maybe it's the cable's fault? Although I can connect to the instrument cluster. Strange. Would such a cable be suitable? https://de.aliexpress.com I have Windows 10 or 7.
 

gmenounos

Vendor
Joined
Jun 26, 2003
Location
Watertown, MA, USA
TDI
'99.5 Golf GLS, '01 Jetta GLX Wagon (TDI conversion), Non-TDI: '23 Tesla Model 3 AWD
In VCDS-Lite I can connect to the CCM, but the connection drops and disconnects, so maybe it's the cable's fault? Although I can connect to the instrument cluster. Strange. Would such a cable be suitable? https://de.aliexpress.com I have Windows 10 or 7.
I would recommend trying Windows 10. kw1281test is written using .NET 9, which isn't supported on Windows 7.
 

gmenounos

Vendor
Joined
Jun 26, 2003
Location
Watertown, MA, USA
TDI
'99.5 Golf GLS, '01 Jetta GLX Wagon (TDI conversion), Non-TDI: '23 Tesla Model 3 AWD
Not supported for now. If I can find a cheap one on eBay, maybe I can add support...
@Stoikoki Well, good news, bad news. The good news is that I found a cheap one on eBay and it only took about a week to get here (from Luxembourg!) and I've released a new version that supports it. The bad news is that you can only access the EEPROM if the cluster has less than 100km on the odometer or if the odometer value is corrupt (display shows "Error"). If you have an EEPROM programmer (e.g. EZP2019), I can explain how to change a few values in the EEPROM that will allow kw1281test to access the EEPROM (so you only need to open up the cluster once).
 

peterpp_bg

New member
Joined
May 14, 2025
Location
United Kingdom
TDI
VW New Beetle 1.6 Petrol 2007
Hi everyone, I'm trying to get the SKC code on a New Beetle 1.6 Petrol 2007.
I got the dreaded "Unsupported Marelli cluster version." and then did the 2 suggested commands:
kw1281test COM4 9600 17 DumpMarelliMem 3072 1024
kw1281test COM4 9600 17 DumpMarelliMem 14336 2048
The second command returned timeout, but the first one had partial success. I saw the dashboard blink and it made a short sound.
Here is the log from the first command (the partial success):

Command Line: kw1281test COM4 9600 17 DumpMarelliMem 3072 1024
OSVersion: Microsoft Windows NT 10.0.19042.0
.NET Version: 9.0.4
Culture: en-GB
Opening Generic serial port COM4
Sending wakeup message
Reading sync byte
Keyword Lsb $01
Keyword Msb $8A
Protocol is KW 1281 (8N1)
ECU: 1C0920035 KOMBI+WEGFAHRS. M73 V04
Software Coding 01412, 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
Caught: System.TimeoutException The operation has timed out.
Unhandled exception: System.TimeoutException: The operation has timed out.
at System.IO.Ports.SerialPort.ReadByte()
at BitFab.KW1281Test.Interface.GenericInterface.ReadByte() in D:\src\kw1281test\Interface\GenericInterface.cs:line 34
at BitFab.KW1281Test.KwpCommon.ReadByte() in D:\src\kw1281test\KwpCommon.cs:line 148
at BitFab.KW1281Test.Cluster.MarelliCluster.WriteMarelliBlockAndReadAck(Byte[] data) in D:\src\kw1281test\Cluster\MarelliCluster.cs:line 225
at BitFab.KW1281Test.Cluster.MarelliCluster.DumpMem(String filename, UInt16 address, Nullable`1 count) in D:\src\kw1281test\Cluster\MarelliCluster.cs:line 114
at BitFab.KW1281Test.Cluster.MarelliCluster.DumpEeprom(Nullable`1 address, Nullable`1 length, String dumpFileName) in D:\src\kw1281test\Cluster\MarelliCluster.cs:line 21
at BitFab.KW1281Test.Tester.DumpMarelliMem(UInt32 address, UInt32 length, ControllerInfo ecuInfo, String filename) in D:\src\kw1281test\Tester.cs:line 386
at BitFab.KW1281Test.Program.Run(String[] args) in D:\src\kw1281test\Program.cs:line 360
at BitFab.KW1281Test.Program.Main(String[] args) in D:\src\kw1281test\Program.cs:line 40
Version 0.99.9-beta (https://github.com/gmenounos/kw1281test/releases)

Hope someone can help with advice.
I'm fine with technical stuff and willing to dig into the issue. If needed, I can take out the cluster, get to the board and do some soldering/desoldering and connecting to a programmer (if not too expensive to buy the programmer).
 

GoAzBox

Member
Joined
Jan 13, 2021
Location
NL
TDI
Passat B7 CAYC
Excellent work building this much needed tool. I'm going to try and build a GUI for it.
It's been a while, I'm sorry. But since programming is not particularly easy when having 0 knowledge or experience, the basis was not easy. I'm now getting somewhere/

I've now laid the foundation on a GUI. have some functionality working on a VDO immo 3 tacho. I have some ideas on how i want it to look and be used, but first have to get all existing functions stable.

Here's a first look
 

Limitedblack

Member
Joined
Dec 9, 2023
Location
London
TDI
90
I use kw1281 to read & write whole cluster dumps, and use vagcom to edit. When I’m adding things such as needle sweep I manually type each byte into vagcom. Is there any windows 10 software I can use to create a shorter bin file so I can just load patches instead ?
 

gmenounos

Vendor
Joined
Jun 26, 2003
Location
Watertown, MA, USA
TDI
'99.5 Golf GLS, '01 Jetta GLX Wagon (TDI conversion), Non-TDI: '23 Tesla Model 3 AWD
I use kw1281 to read & write whole cluster dumps, and use vagcom to edit. When I’m adding things such as needle sweep I manually type each byte into vagcom. Is there any windows 10 software I can use to create a shorter bin file so I can just load patches instead ?
You can use kw1281test to load a patch into the cluster. Let's say that your patch is contained in the file NeedleSweep_VWK501MH_00A4.bin and it should start at address 0x4F4, you'd load it into the cluster like this:

kw1281test COM1 10400 17 LoadEeprom 0x4F4 NeedleSweep_VWK501MH_00A4.bin

Don't forget to reset your cluster after:

kw1281test COM1 10400 17 Reset

If you're asking what to use to edit the patch data, I use Visual Studio on Windows (because that's what I use to develop kw1281test and it's got a built-in hex editor) or Hex Fiend on the Mac. Or you could use HexEd.it in your browser.
 

gmenounos

Vendor
Joined
Jun 26, 2003
Location
Watertown, MA, USA
TDI
'99.5 Golf GLS, '01 Jetta GLX Wagon (TDI conversion), Non-TDI: '23 Tesla Model 3 AWD
Hi everyone, I'm trying to get the SKC code on a New Beetle 1.6 Petrol 2007.
I got the dreaded "Unsupported Marelli cluster version." and then did the 2 suggested commands:
kw1281test COM4 9600 17 DumpMarelliMem 3072 1024
kw1281test COM4 9600 17 DumpMarelliMem 14336 2048
The second command returned timeout, but the first one had partial success. I saw the dashboard blink and it made a short sound.
Here is the log from the first command (the partial success):

Command Line: kw1281test COM4 9600 17 DumpMarelliMem 3072 1024
OSVersion: Microsoft Windows NT 10.0.19042.0
.NET Version: 9.0.4
Culture: en-GB
Opening Generic serial port COM4
Sending wakeup message
Reading sync byte
Keyword Lsb $01
Keyword Msb $8A
Protocol is KW 1281 (8N1)
ECU: 1C0920035 KOMBI+WEGFAHRS. M73 V04
Software Coding 01412, 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
Caught: System.TimeoutException The operation has timed out.
Unhandled exception: System.TimeoutException: The operation has timed out.
at System.IO.Ports.SerialPort.ReadByte()
at BitFab.KW1281Test.Interface.GenericInterface.ReadByte() in D:\src\kw1281test\Interface\GenericInterface.cs:line 34
at BitFab.KW1281Test.KwpCommon.ReadByte() in D:\src\kw1281test\KwpCommon.cs:line 148
at BitFab.KW1281Test.Cluster.MarelliCluster.WriteMarelliBlockAndReadAck(Byte[] data) in D:\src\kw1281test\Cluster\MarelliCluster.cs:line 225
at BitFab.KW1281Test.Cluster.MarelliCluster.DumpMem(String filename, UInt16 address, Nullable`1 count) in D:\src\kw1281test\Cluster\MarelliCluster.cs:line 114
at BitFab.KW1281Test.Cluster.MarelliCluster.DumpEeprom(Nullable`1 address, Nullable`1 length, String dumpFileName) in D:\src\kw1281test\Cluster\MarelliCluster.cs:line 21
at BitFab.KW1281Test.Tester.DumpMarelliMem(UInt32 address, UInt32 length, ControllerInfo ecuInfo, String filename) in D:\src\kw1281test\Tester.cs:line 386
at BitFab.KW1281Test.Program.Run(String[] args) in D:\src\kw1281test\Program.cs:line 360
at BitFab.KW1281Test.Program.Main(String[] args) in D:\src\kw1281test\Program.cs:line 40
Version 0.99.9-beta (https://github.com/gmenounos/kw1281test/releases)

Hope someone can help with advice.
I'm fine with technical stuff and willing to dig into the issue. If needed, I can take out the cluster, get to the board and do some soldering/desoldering and connecting to a programmer (if not too expensive to buy the programmer).
If you always get a timeout or error running both of those commands, it sounds like your cluster is not supported. Sorry.
 

Limitedblack

Member
Joined
Dec 9, 2023
Location
London
TDI
90
You can use kw1281test to load a patch into the cluster. Let's say that your patch is contained in the file NeedleSweep_VWK501MH_00A4.bin and it should start at address 0x4F4, you'd load it into the cluster like this:

kw1281test COM1 10400 17 LoadEeprom 0x4F4 NeedleSweep_VWK501MH_00A4.bin

Don't forget to reset your cluster after:

kw1281test COM1 10400 17 Reset

If you're asking what to use to edit the patch data, I use Visual Studio on Windows (because that's what I use to develop kw1281test and it's got a built-in hex editor) or Hex Fiend on the Mac. Or you could use HexEd.it in your browser.
Thanks, not really what I was asking, but I guess I can just pull the patch off a cluster I’ve written to, then use that smaller bin file to load later ?

I just won’t be able to see in the vagcom editor.
 

gmenounos

Vendor
Joined
Jun 26, 2003
Location
Watertown, MA, USA
TDI
'99.5 Golf GLS, '01 Jetta GLX Wagon (TDI conversion), Non-TDI: '23 Tesla Model 3 AWD
Thanks, not really what I was asking, but I guess I can just pull the patch off a cluster I’ve written to, then use that smaller bin file to load later ?

I just won’t be able to see in the vagcom editor.
Assuming you've got a needle sweep patch loaded into the cluster, you can dump out just the patch by specifying the start address, length, and filename:

kw1281test COM1 10400 17 DumpEeprom 0x4F4 0x1A0 NeedleSweep_VWK501MH_00A4.bin

I don't even know what the vagcom editor is, so maybe that's why I didn't quite understand what you were asking.
 
Top