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)
I'm pretty sure I sent you a cluster from a 2003 NB before, but mine is a 2000. There *might* be one in the junkyard from a 2001, if that would help you, assuming it follows the whole Immo2 to 3 switch from 2001 to 2002 like with the Jetta and Golf. I need to raid that one (also a TDI) for various parts for my beetle).
Yes, you did. Thanks again! That allowed me to add support for Immo3 NB clusters. Now that I have an Immo2 and Imoo3 NB cluster, I don't need any more. I was referring to @Melkel_21, who asked about a TT cluster.
 

pkhoury

That guy with the goats
Joined
Nov 30, 2010
Location
Medina, TX
TDI
2013 JSW, 2 x 2002 Golf, 1995 F450 7.3L
An 00 Beetle will have a 1J0 CCM, but it's still supported, just different bits to change. 01.5 was the changeover to 1C0 CCMs
Interesting.

I'll see if I can't do a dump come this weekend when it's warmer. Tonight is when the winter storm rolls in, and I'm hoping to tackle my timing belt job on Sunday when it's at least 55 during the day.
 

T.Hollister

Member
Joined
Feb 7, 2022
Location
Texas
TDI
2002 Beetle GLS ALH, 2003 Jetta GLS ALH
trying this out with my 2002 NB tdi and getting errors, with baud at the 10400 it dont work, with it at 9600 i get this error. I wasnt able to find a solution

Version 0.71-beta (https://github.com/gmenounos/kw1281test/releases)
Args: COM3 9600 17 DumpEeprom 204 6
OSVersion: Microsoft Windows NT 10.0.22543.0
.NET Version: 6.0.0
Culture: en-US
Opening serial port COM3
Sending wakeup message
Reading sync byte
Keyword Lsb $01
Keyword Msb $8A
Protocol is KW 1281 (8N1)
ECU: 1C0920921A KOMBI+WEGFAHRS. M73 V08
Software Coding 03232, Workshop Code: 00000
Sending ReadIdent block
Sending Custom "Read Software Version" blocks
Sending Custom "Unlock Additional Commands" block
Sending Custom "Unlock partial EEPROM read" block
Caught: System.Collections.Generic.KeyNotFoundException The given key '0' was not present in the dictionary.
Unhandled exception: System.Collections.Generic.KeyNotFoundException: The given key '0' was not present in the dictionary.
at System.Collections.Generic.Dictionary`2.get_Item(TKey )
at BitFab.KW1281Test.Cluster.VdoCluster.Unlock() in C:\Users\gmeno\src\kw1281test\Cluster\VdoCluster.cs:line 170
at BitFab.KW1281Test.Program.UnlockControllerForEepromReadWrite(IKW1281Dialog kwp1281) in C:\Users\gmeno\src\kw1281test\Program.cs:line 1016
at BitFab.KW1281Test.Program.DumpClusterEeprom(IKW1281Dialog kwp1281, UInt16 startAddress, UInt16 length) in C:\Users\gmeno\src\kw1281test\Program.cs:line 1100
at BitFab.KW1281Test.Program.DumpEeprom(IKW1281Dialog kwp1281, UInt32 address, UInt32 length) in C:\Users\gmeno\src\kw1281test\Program.cs:line 688
at BitFab.KW1281Test.Program.Run(String[] args) in C:\Users\gmeno\src\kw1281test\Program.cs:line 278
at BitFab.KW1281Test.Program.Main(String[] args) in C:\Users\gmeno\src\kw1281test\Program.cs:line 30
 

gmenounos

Vendor
Joined
Jun 26, 2003
Location
Watertown, MA, USA
TDI
'99.5 Golf GLS, '01 Jetta GLX Wagon (TDI conversion)
"DumpEeprom 204 6" would only be for a VDO Golf/Jetta/Passat cluster. NB cluster would be either:

For Immo3 (probably your 2002)
.\kw1281Test.exe COM3 9600 17 DumpMarelliMem 14336 2048

For Immo2 (try if the above doesn't work)
.\kw1281Test.exe COM3 9600 17 DumpMarelliMem 3072 1024

That will create a .bin file that will contain the SKC.
 

T.Hollister

Member
Joined
Feb 7, 2022
Location
Texas
TDI
2002 Beetle GLS ALH, 2003 Jetta GLS ALH
"DumpEeprom 204 6" would only be for a VDO Golf/Jetta/Passat cluster. NB cluster would be either:

For Immo3 (probably your 2002)
.\kw1281Test.exe COM3 9600 17 DumpMarelliMem 14336 2048

For Immo2 (try if the above doesn't work)
.\kw1281Test.exe COM3 9600 17 DumpMarelliMem 3072 1024

That will create a .bin file that will contain the SKC.
Awesome, will give that a try
 

T.Hollister

Member
Joined
Feb 7, 2022
Location
Texas
TDI
2002 Beetle GLS ALH, 2003 Jetta GLS ALH
did the dump, seemed successful, what data am i looking for? i see only a few numbers i recognize, the rest is random looking characters or FF

V08921A once at beginning
VWZ5Z0B0307323 repeated 3 times further down
3VWCP21C32M443740 repeated 3 times (my vin number)
 

gmenounos

Vendor
Joined
Jun 26, 2003
Location
Watertown, MA, USA
TDI
'99.5 Golf GLS, '01 Jetta GLX Wagon (TDI conversion)
The 2 bytes immediately before VWZ5Z are the SKC, most-significant-byte first. So, if the bytes are 0A C3, enter 0AC3 into a hex calculator, convert to decimal and the SKC would be 02755.
 

T.Hollister

Member
Joined
Feb 7, 2022
Location
Texas
TDI
2002 Beetle GLS ALH, 2003 Jetta GLS ALH
The 2 bytes immediately before VWZ5Z are the SKC, most-significant-byte first. So, if the bytes are 0A C3, enter 0AC3 into a hex calculator, convert to decimal and the SKC would be 02755.
ok great, i got 01 6F so it would be 00367
 

caffeine

Veteran Member
Joined
Jan 4, 2021
Location
B.C., Canada
TDI
03 Allroad w/04 BHW/02X conversion, 00 ALH Jetta
New unlock code for you:
ECU: 3B0920827C KOMBI+WEGFAHRSP VDO V06
Unlock code for software version VWK501MH 00.92 is 39 34 34 40
 

ChrstphrR

Member
Joined
Jun 18, 2006
Location
Onterrible, Canada
TDI
Sedans: 2000 Jetta TDI, 2002 Jetta TDI. Wagons: 2003 Jetta TDI, 2005 Jetta TDI, 2006 Jetta TDI
Code:
./kw1281test /dev/ttyUSB0 10400 17 ReadSoftwareVersion
It immediately throws an error trying to access the com port as it doesn't recognize 10400 as a valid baud rate.

Long story sort I got frustrated and just hooked the cable to my Win 10 laptop and now my windows go up and down with the fob. But if anyone wants to take up my linux struggle, feel free lol!
Taking up the mantle, although Greg did show how he has kw1281test working on raspi, and a proof of concept for android in between.

Late to the game here -- I only found out about this program a few months ago. And because I had to hunt through my collection of OBDII cables and buy one last one, to find one that had the FTDI chip instead of one of the anonymous others that would not work.



That aside, time to step up and contribute a little.

Many months ago, many pages ago (3...), Dhawk12 was trying to struggle with getting kw1281test to work on linux.

I noticed when Greg showcased using the program on a raspberry pi, presumably on either raspian or ubuntu for ARM, and showed it working well.
But the missing piece shown, but not shown how to get it: you use the serial number of the FTDI cable instead of a COM port number, or the intuitive linux equivalent -- a /dev/ttyS0 or similar device path.

So, instead of

Code:
/dev/ttyS0
you use your cable's serial number

Code:
ACDCBLAH
(My example is a similar length, but not an actual FTDI serial number ;) )

How do you find out what your serial number is on linux?

Here's how I found that out:
I used the console / command line, because... that's the universal method for linux. We're using a command line diagnostic tool, so why not more console based commands, anyway?

First I grabbed the drivers from FTDI, the D2xx drivers that Greg notes are needed for the program to communicate with VW instrument clusters.

Thankfully, FTDI made a great tutorial video showing how to install the drivers on linux (it's similar to their MacOS procedure)

Youtube: FTDI -- Linux d2xx Driver Installation Guide

If you didn't catch them displaying the serial number in installation and testing of the install to ensure the cable works:

The video linked up shows that part in around the 3-minute mark.

Code:
> cd /path/to/libftd2xx-x86_64-1.4.24/release/examples/
> make
(let make build the examples, and wait for the prompt to return)
> cd /path/to/libftd2xx-x86_64-1.4.24/release/examples/EEPROM/read/
> sudo ./read
Library version = 0x10424
Opening port 0
FT_Open succeeded.  Handle is 0x5607e5ecdc40
FT_GetDeviceInfo succeeded.  Device is type 5.
FT_EE_Read succeeded.

Signature1 = 0
Signature2 = -1
Version = 2
VendorId = 0x0403
ProductId = 0x6001
Manufacturer = FTDI
ManufacturerId = AB
Description = FT232R USB UART
SerialNumber = ACDCBLAH
MaxPower = 90
PnP = 1
SelfPowered = 0
RemoteWakeup = 1
232R:
-----
Here it is, in the output of the read example, in my case "ACDCBLAH"

To run kw1281test, I just moved to the directory where I pulled down the source from Github, and ran:

Code:
> dotnet run ACDCACDC 10400 17 ReadSoftwareVersion
And now, you have access to Yesterday's Diagnostics... Today!



Finally:
Thank you to Greg for making an excellent piece of software, for free, no less.
Thank you to Mozambiquer for tipping me off about kw1281test, and this thread in the first place, a few months back in a Facecrack group discussion.
 
Last edited:

gmenounos

Vendor
Joined
Jun 26, 2003
Location
Watertown, MA, USA
TDI
'99.5 Golf GLS, '01 Jetta GLX Wagon (TDI conversion)
Glad you got it working and thanks for writing it up! Sorry for the extreme lack of documentation - I'm pretty lazy about that. I'll try to write some docs in the coming months.

Meanwhile, I did start documenting what I've learned about how the MKIV VDO clusters work internally:
It's not much so far and probably not of interest for most folks, but I couldn't find it elsewhere so might as well publish it. I do plan to add a page with interesting EEPROM locations.
 

pkhoury

That guy with the goats
Joined
Nov 30, 2010
Location
Medina, TX
TDI
2013 JSW, 2 x 2002 Golf, 1995 F450 7.3L
Glad you got it working and thanks for writing it up! Sorry for the extreme lack of documentation - I'm pretty lazy about that. I'll try to write some docs in the coming months.
I don't know if it'd even help, but maybe if I get around to it myself, I could try doing a video on how to use your software for say dumping the EEPROM, getting the SKC or etc and post it to youtube.
 

gmenounos

Vendor
Joined
Jun 26, 2003
Location
Watertown, MA, USA
TDI
'99.5 Golf GLS, '01 Jetta GLX Wagon (TDI conversion)
I don't know if it'd even help, but maybe if I get around to it myself, I could try doing a video on how to use your software for say dumping the EEPROM, getting the SKC or etc and post it to youtube.
That would be great. It'll help cut down on the number of people asking the same questions. Most of the answers are buried in this thread, but nobody new wants to read through almost 900 posts to find them.
 

pkhoury

That guy with the goats
Joined
Nov 30, 2010
Location
Medina, TX
TDI
2013 JSW, 2 x 2002 Golf, 1995 F450 7.3L
That would be great. It'll help cut down on the number of people asking the same questions. Most of the answers are buried in this thread, but nobody new wants to read through almost 900 posts to find them.
You can't really blame them. And searching through a thread only goes so far. I remember when the dieselgate threads were out - thousands of posts to sift through!
 

ChrstphrR

Member
Joined
Jun 18, 2006
Location
Onterrible, Canada
TDI
Sedans: 2000 Jetta TDI, 2002 Jetta TDI. Wagons: 2003 Jetta TDI, 2005 Jetta TDI, 2006 Jetta TDI
That would be great. It'll help cut down on the number of people asking the same questions. Most of the answers are buried in this thread, but nobody new wants to read through almost 900 posts to find them.
I'm an odd sort that ground through the 30 pages of posts so I could try to help myself bootstrap. And I've worked on open projects, contributing fixes, or improving documentations, before.

Are you wanting to organize the help as a set of markdown files included in the Github source tree, or would you want to enable the Wiki for this project, and document commands and other helpfile/FAQ materials there?

Greg, set the direction, and I'll be another set of hands to help with the grunt work.

My idea of good documentation is the old Borland or MS compiler helpfiles that documented syntax, and had copious examples per each.
 

pkhoury

That guy with the goats
Joined
Nov 30, 2010
Location
Medina, TX
TDI
2013 JSW, 2 x 2002 Golf, 1995 F450 7.3L
Are you wanting to organize the help as a set of markdown files included in the Github source tree, or would you want to enable the Wiki for this project, and document commands and other helpfile/FAQ materials there?


My idea of good documentation is the old Borland or MS compiler helpfiles that documented syntax, and had copious examples per each.
Obviously it's up to Greg, but I think a wiki would be fantastic. And I remember the help files with the QuickBasic compiler were pretty fantastic in regards to documentation. I think a lot of documentation back in the DOS days was fantastic. Now, online help seems to be sparse, or online only.
 

Nuje

Top Post Dawg
Joined
Feb 11, 2005
Location
Island near Vancouver
TDI
2002 Golf 6MT; 2015 Sportwagen 6MT; 2016 A3 e-tron 6DSG
I know nothing about Github, but I just created an account there and tried to add an "introduction"
kw1281test is a command-line utility created by user @gmenunous @gmenounos at the TDIclub.com message board. Versions are available for Windows, Mac, and Linux.

With this tool and a generic OBD2 scan tool (KKL), users can read and make modifications to various electronic control systems on numerous vehicles from VWAG (roughly translated as "Volkswagen Auto Group") for vehicles manufactured from approximately 1998 to 2010, depending on market and models.
I hit the SAVE button and got a "Your account has been flagged" and then a 404 page. ☹
 
Last edited:

gmenounos

Vendor
Joined
Jun 26, 2003
Location
Watertown, MA, USA
TDI
'99.5 Golf GLS, '01 Jetta GLX Wagon (TDI conversion)
I think it didn't like that you spelled my name wrong. :)

I don't know why that happened. Maybe it thought it was suspicious that a brand-new account immediately tried to edit a Wiki page. You may have to send an email to get your account unflagged: https://webapps.stackexchange.com/q...denly-flagged-and-hidden-from-public-view-how

In the meantime, I've updated the Wiki to include your attempted edit. Thanks for starting the documentation!
 

ChrstphrR

Member
Joined
Jun 18, 2006
Location
Onterrible, Canada
TDI
Sedans: 2000 Jetta TDI, 2002 Jetta TDI. Wagons: 2003 Jetta TDI, 2005 Jetta TDI, 2006 Jetta TDI
I just did enough reading about C# to sort out how to publish linux binaries instead of me only running "dotnet run" in the source directory up until now.

So... now I have the basis to dig into the proper build file in the project, and test running linux binaries in addition to the existing ones (windows, macOS, linux on ARM) and maybe toss a pull request up once I've tested it sufficiently.

---

@gmenounos thank you for speedily setting up the wiki -- the wiki as a part of github is a bit new to me too. And I'm glad that others already jumped in. I'm sure before long the basics will be fleshed out, and we'll have useful guides.

---

I will start documenting some things helpful for linux use first, documenting:

- how to locate the cable serial number for their FTDI device (based on my post) (Done later this day)
- publish / build instructions for binaries on linux
- how to run kw1281test from sources using dotnet
- make sure to cover syntax variations depending on the use of Windows console, Powershell, or a unix shell/console

Next on my priorities: enumerate the different commands/keywords kw1281test uses, so, instead of hiding away commands, they'll be documented, and users can read and (easily?) figure out if the command applies to them.

Off those building blocks, we can start to build more involved guides linked up on the wiki - like:

- @pkhoury 's IMMO3 cluster on an IMMO2 car that was linked up, or other frequently asked about tasks.
- I just scoured the forum yesterday to get all the commands/syntax/offsets to dump "everything" off a Canadian market W8 Passat Cluster I have.
- Backed up EEPROM
- Dumped the 5 hardware ROM areas
- Dumped the NEC rom off the FIS display daughterboard that needs to be explained, instead of hidden from view, so users know why a command is used, and if it's suitable for them.

---

Finally, that raises a question about the hidden but still there DumpClusterNecRom command I have:

I know it's meant for the full FIS daughterboard ROM that the W8 Passat cluster has, but, is this command suitable for the Half-FIS clusters that also have daughterboards? If that's not known, I've 2 or 3 clusters are out of their housings, if there's chips to be identified, to say yea or nay.
 
Last edited:

cowboy_

Member
Joined
Feb 22, 2022
Location
Sarasota FL
TDI
Phaeton, sorry
Guys I'm sorry for being an outsider but will this tool work for any other cluster for the VW family? I have a VW Phaeton and I need to swap a cluster because it stopped working and I need the SKC from the cluster, any ideas?
 

gmenounos

Vendor
Joined
Jun 26, 2003
Location
Watertown, MA, USA
TDI
'99.5 Golf GLS, '01 Jetta GLX Wagon (TDI conversion)
Guys I'm sorry for being an outsider but will this tool work for any other cluster for the VW family? I have a VW Phaeton and I need to swap a cluster because it stopped working and I need the SKC from the cluster, any ideas?
No idea if it works with the Phaeton. I don't own any Phaeton clusters to test it with.
 

cowboy_

Member
Joined
Feb 22, 2022
Location
Sarasota FL
TDI
Phaeton, sorry
Makes sense, I'll try to connect and see what happens :) our clusters are Bosch not VDO so it might not work but who knows. I'll post results back if succesful.
 

ChrstphrR

Member
Joined
Jun 18, 2006
Location
Onterrible, Canada
TDI
Sedans: 2000 Jetta TDI, 2002 Jetta TDI. Wagons: 2003 Jetta TDI, 2005 Jetta TDI, 2006 Jetta TDI
Guys I'm sorry for being an outsider but will this tool work for any other cluster for the VW family? I have a VW Phaeton and I need to swap a cluster because it stopped working and I need the SKC from the cluster, any ideas?
Can't guarantee it will, but try -- your barrier to entry is a FTDI chipped cable, the software's free to use.

Edit: gmenounos corrected me in post #899, below : FTDI is a must for linux and mac, but FTDI and CH340 chipsets work on windows.

I remember that Santos from Ross-tech detailed the changes to let a 3D (Phaeton) platform work on VCDS-lite, which works with rando 3rd party cables. I know firsthand that VCDS-lite does -not- play nice with the 1K platform (Mk5 Golf/Jetta) because the protocol the modules use had changed. So, that leads me to think there's hope that the Phaeton may at least partially communicate on the K-line.

Here's that thread for reference: https://www.vwvortex.com/threads/vcds-lite-does-not-show-phaeton.5697865/

Code:
3D,VW Phaeton D1,01,02,03,05,06,07,08,09,11,13,15,16,17,18,19,23,27,28,29,2E,34,36,37,38,39,46,47,55,56,57,65,66,68,69,71,75,76,77
Note in the modification line Santos mentioned, it lists the controller ID numbers VCDSlite can scan on - 17 (Instrument cluster) is on the list.

It comes down to you trying to find out, and letting us know. Like most of us, I don't have a Phaeton around to test with to say, it'll be you letting us know if it can or can't. Now I really wish I'd grabbed the cluster in the only parts Phaeton I encountered years ago.
 
Last edited:

cowboy_

Member
Joined
Feb 22, 2022
Location
Sarasota FL
TDI
Phaeton, sorry
Just connected to the car with a cable that I normally use with VCDS and when I ran the command line utility I got the following back:
this is after the reading sync byte.

Unexpected sin byte: Expected $55, Actual $A5

Error at KwpCommon.cs line 71

If you want you can try with mine, I know that it is not ideal but whatever you want to try I can pass the information back and forth. I'm also a software engineer so I can even help with the programming as well.

The fact that it was waiting for something and got something else back is kind of promising, it didn't time out or any super weird behavior, it just received a different value.

My instrument cluster, from VCDS, is listed as KOMBIINSTRUMENT RB80521 and I can't read anymore because it cuts off there.
VAG number 3D0 920 982 C

Thanks for any kind of help!


[\QUOTE="ChrstphrR, post: 5714851, member: 45954"]
Can't guarantee it will, but try -- your barrier to entry is a FTDI chipped cable, the software's free to use.

I remember that Santos from Ross-tech detailed the changes to let a 3D (Phaeton) platform work on VCDS-lite, which works with rando 3rd party cables. I know firsthand that VCDS-lite does -not- play nice with the 1K platform (Mk5 Golf/Jetta) because the protocol the modules use had changed. So, that leads me to think there's hope that the Phaeton may at least partially communicate on the K-line.

Here's that thread for reference: https://www.vwvortex.com/threads/vcds-lite-does-not-show-phaeton.5697865/

Code:
3D,VW Phaeton D1,01,02,03,05,06,07,08,09,11,13,15,16,17,18,19,23,27,28,29,2E,34,36,37,38,39,46,47,55,56,57,65,66,68,69,71,75,76,77
Note in the modification line Santos mentioned, it lists the controller ID numbers VCDSlite can scan on - 17 (Instrument cluster) is on the list.

It comes down to you trying to find out, and letting us know. Like most of us, I don't have a Phaeton around to test with to say, it'll be you letting us know if it can or can't. Now I really wish I'd grabbed the cluster in the only parts Phaeton I encountered years ago.
[/QUOTE]
 
Top