kw1281test: A Free VDS-Pro / VagTacho Alternative

punkassjim

Active member
Joined
Jul 16, 2003
An Immo3 cluster will work fine with an Immo2 ECU (but not the other way around).
Ok thanks, so if I do this, and in the future I need to swap my ECU (with another immo-2 ECU), will I still use the ECU swap procedure for immo-2? Or will something about the procedure change?

To get the door open indicator, you'll also need a 1C0 CCM and the 'comfort CAN' wiring to the cluster. Besides that, it should be more-or-less plug and play. I have an IMMO 3 FIS cluster in my '00 along with a 1C0 CCM, but stock IMMO2 ECU. B5.5 Passat clusters are also compatible if you flash them with a Mk4 cluster dump and swap the Mk4 lens/gauge faces over (they're a bit cheaper to source usually).
Ok, sounds reasonable. And yeah, I figured Passat GLX would be my best bet. What’s the best way to acquire a compatible mk4 cluster dump? Would it need to be from a certain part number range? I assume most B5.5 Passats with FIS will be running VWK503MH, no? Is that a good thing, or would finding one with VWK501MH software be better for any reason?

Oh, a few other things:
  • for the DSG swap, I’ll need to recode the cluster (0x065 changes from 80 to 81) to take vehicle speed signal from the ABS data on the CAN bus. Greg, I think I’ve seen that this can be done with kw1281test…am I remembering correctly?
  • My ECU and cluster each need a bit flipped to enable auto transmission, correct? Quote from someone who’s done it: “Address 1B6 orginal value in my clocks was 15. If you plan to do a AWD conversion then you need to change the 1 to a 9 to see the AWD module in the CAN Gateway. If not, leave 1 for FWD. To change from manual to DSG then change the 5 to a 7.”
Thanks y’all for even taking the time to read this. I know it’s a challenge.
 

caffeine

Well-known member
Joined
Jan 4, 2021
Location
B.C., Canada
TDI
00 ALH Jetta
Ok thanks, so if I do this, and in the future I need to swap my ECU (with another immo-2 ECU), will I still use the ECU swap procedure for immo-2? Or will something about the procedure change?


Ok, sounds reasonable. And yeah, I figured Passat GLX would be my best bet. What’s the best way to acquire a compatible mk4 cluster dump? Would it need to be from a certain part number range? I assume most B5.5 Passats with FIS will be running VWK503MH, no? Is that a good thing, or would finding one with VWK501MH software be better for any reason?

Oh, a few other things:
  • for the DSG swap, I’ll need to recode the cluster (0x065 changes from 80 to 81) to take vehicle speed signal from the ABS data on the CAN bus. Greg, I think I’ve seen that this can be done with kw1281test…am I remembering correctly?
  • My ECU and cluster each need a bit flipped to enable auto transmission, correct? Quote from someone who’s done it: “Address 1B6 orginal value in my clocks was 15. If you plan to do a AWD conversion then you need to change the 1 to a 9 to see the AWD module in the CAN Gateway. If not, leave 1 for FWD. To change from manual to DSG then change the 5 to a 7.”
Thanks y’all for even taking the time to read this. I know it’s a challenge.
VWK501MH FIS clusters are much more common than VWK503MH FIS clusters. There's LED sweep code out there that sweeps the warning lights with the needles on startup that's available for VWK503MH clusters only, but other than that, there's no real advantage IMO.

IIRC if you want cruise control to work, there's also a bit in the ECU that needs to be changed to get the vehicle speed from CAN (in addition to the cluster bit).

I think with an IMMO2 cluster and IMMO2 ECU, you can swap out the ECU for another one without any other changes, but I'm not sure if that's the same with an IMMO3 cluster. Either way it's not difficult; just enter the SKC and reprogram your keys.
 

HH65AM1

New member
Joined
Oct 25, 2022
Location
Manvel, TX
TDI
MK6 Golf Tdi
I've been trying to get my SKC from a 2008 EOS Lux. I don't seem to be getting any binary data. Am I missing a step?
Here is what I get:
Version 0.77-beta (https://github.com/gmenounos/kw1281test/releases)
Args: com7 9600 getskc
OSVersion: Microsoft Windows NT 6.1.7601 Service Pack 1
.NET Version: 6.0.8
Culture: en-US
Usage: KW1281Test PORT BAUD ADDRESS COMMAND [args]
PORT = COM1|COM2|etc.
BAUD = 10400|9600|etc.
ADDRESS = The controller address, e.g. 1 (ECU), 17 (cluster), 46 (CCM), 56 (radio)
COMMAND =
ActuatorTest
AdaptationRead CHANNEL [LOGIN]
CHANNEL = Channel number (0-99)
LOGIN = Optional login (0-65535)
AdaptationSave CHANNEL VALUE [LOGIN]
CHANNEL = Channel number (0-99)
VALUE = Channel value (0-65535)
LOGIN = Optional login (0-65535)
AdaptationTest CHANNEL VALUE [LOGIN]
CHANNEL = Channel number (0-99)
VALUE = Channel value (0-65535)
LOGIN = Optional login (0-65535)
BasicSetting GROUP
GROUP = Group number (0-255)
(Group 0: Raw controller data)
ClarionVWPremium4SafeCode
ClearFaultCodes
DelcoVWPremium5SafeCode
DumpEdc15Eeprom [FILENAME]
FILENAME = Optional filename
DumpEeprom START LENGTH [FILENAME]
START = Start address in decimal (e.g. 0) or hex (e.g. $0)
LENGTH = Number of bytes in decimal (e.g. 2048) or hex (e.g. $800)
FILENAME = Optional filename
DumpMarelliMem START LENGTH [FILENAME]
START = Start address in decimal (e.g. 3072) or hex (e.g. $C00)
LENGTH = Number of bytes in decimal (e.g. 1024) or hex (e.g. $400)
FILENAME = Optional filename
DumpMem START LENGTH [FILENAME]
START = Start address in decimal (e.g. 8192) or hex (e.g. $2000)
LENGTH = Number of bytes in decimal (e.g. 65536) or hex (e.g. $10000)
FILENAME = Optional filename
DumpRBxMem START LENGTH [FILENAME]
START = Start address in decimal (e.g. 66560) or hex (e.g. $10400)
LENGTH = Number of bytes in decimal (e.g. 1024) or hex (e.g. $400)
FILENAME = Optional filename
FindLogins LOGIN
LOGIN = Known good login (0-65535)
GetSKC
GroupRead GROUP
GROUP = Group number (0-255)
(Group 0: Raw controller data)
LoadEeprom START FILENAME
START = Start address in decimal (e.g. 0) or hex (e.g. $0)
FILENAME = Name of file containing binary data to load into EEPROM
MapEeprom
ReadFaultCodes
ReadIdent
ReadEeprom ADDRESS
ADDRESS = Address in decimal (e.g. 4361) or hex (e.g. $1109)
ReadRAM ADDRESS
ADDRESS = Address in decimal (e.g. 4361) or hex (e.g. $1109)
ReadROM ADDRESS
ADDRESS = Address in decimal (e.g. 4361) or hex (e.g. $1109)
ReadSoftwareVersion
Reset
SetSoftwareCoding CODING WORKSHOP
CODING = Software coding in decimal (e.g. 4361) or hex (e.g. $1109)
WORKSHOP = Workshop code in decimal (e.g. 4361) or hex (e.g. $1109)
ToogleRB4Mode
WriteEeprom ADDRESS VALUE
ADDRESS = Address in decimal (e.g. 4361) or hex (e.g. $1109)
VALUE = Value in decimal (e.g. 138) or hex (e.g. $8A)
 

gmenounos

Vendor
Joined
Jun 26, 2003
Location
Watertown, MA, USA
TDI
'99.5 Golf GLS, '01 Jetta GLX Wagon (TDI conversion)
I've been trying to get my SKC from a 2008 EOS Lux. I don't seem to be getting any binary data. Am I missing a step?
Here is what I get:
Version 0.77-beta (https://github.com/gmenounos/kw1281test/releases)
Args: com7 9600 getskc
You're missing the module address immediately after the baud rate, like this:

kw1281test com7 9600 1 getskc

But unfortunately, kw1281test isn't compatible with your EOS because the EOS uses the CAN Bus for diagnostics. kw1281test only supports K-Line diagnostics. Here's a list of many cars that use CAN Bus for diagnostics: https://www.ross-tech.com/vcds/canbus.php
 

WPhH

New member
Joined
Nov 24, 2022
Location
Portugal
TDI
2000 Passat B5 Variant 1.9 TDI
Hello everybody! I am new here. I have been trying to code the 'keyfob window operation' with
gmenounos's great software tool, but I am running into a problem.

This is about my 2000 year VW Passat B5 wagon. I have only front electric windows. My CCM is 1J0 959 799 S 03B. I am trying to code as follows:

04283 8 2
04289 8 2
08628 242 246
12724 250 254

I have no problem coding 04283 and 04289, but when writing to addresses 08628 and 12724 the action returns:

Passat\kw1281\kw1281test>kw1281test.exe com3 9600 46 WriteEeprom 08628 246
KW1281Test: Yesterday's diagnostics...Today.

Version 0.80-beta (https://github.com/gmenounos/kw1281test/releases)
Args: com3 9600 46 WriteEeprom 08628 246
OSVersion: Microsoft Windows NT 10.0.19042.0
.NET Version: 7.0.0
Culture: en-IE
Opening serial port com3
Sending wakeup message
Wakeup duration: 2 seconds
Reading sync byte
Keyword Lsb $01
Keyword Msb $8A
Protocol is KW 1281 (8N1)
ECU: 1J0959799S 3B Zentral-SG Komf. 0001
Software Coding 00257, Workshop Code: 11111
Sending Login block
Sending WriteEeprom block (Address: $21B4, Values: $F6
Received "Write EEPROM Response" block: 01 20 B4 F6
WriteEepromResponseBlock body does not match WriteEepromBlock
Sending EndCommunication block


The new value however is stored when afterwards doing ReadEeprom. I have no other error messages at all.

BUT: it does not work. What am I doing wrong?

Thanks in advance for your help!
 

HH65AM1

New member
Joined
Oct 25, 2022
Location
Manvel, TX
TDI
MK6 Golf Tdi
You're missing the module address immediately after the baud rate, like this:

kw1281test com7 9600 1 getskc

But unfortunately, kw1281test isn't compatible with your EOS because the EOS uses the CAN Bus for diagnostics. kw1281test only supports K-Line diagnostics. Here's a list of many cars that use CAN Bus for diagnostics: https://www.ross-tech.com/vcds/canbus.php
Thanks for the quick response and too bad this is not compatible. Great job on your program anyways!
 

punkassjim

Active member
Joined
Jul 16, 2003
Is there any additional info to be gleaned from this error message beyond "Could not connect?"
Code:
Version 0.80-beta (https://github.com/gmenounos/kw1281test/releases)
Args: AB5P37BA 10400 1 ReadFaultCodes
OSVersion: Unix 12.4.0
.NET Version: 7.0.0
Culture: en-US
Opening FTDI serial port AB5P37BA
Sending wakeup message
Wakeup duration: 2 seconds
Reading sync byte
Retrying wakeup message...
Wakeup duration: 2 seconds
Reading sync byte
Retrying wakeup message...
Wakeup duration: 2 seconds
Reading sync byte
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 C:\Users\gmeno\src\kw1281test\KwpCommon.cs:line 63
   at BitFab.KW1281Test.Tester.Kwp1281Wakeup(Boolean ) in C:\Users\gmeno\src\kw1281test\Tester.cs:line 32
   at BitFab.KW1281Test.Program.Run(String[]) in C:\Users\gmeno\src\kw1281test\Program.cs:line 256
   at BitFab.KW1281Test.Program.Main(String[]) in C:\Users\gmeno\src\kw1281test\Program.cs:line 26
I was working on some wiring repair under the hood this weekend, and using kw1281test for occasional checks of the DTCs. At one point, this error kept happening. Ignition was on. I tried turning the ignition off and on, tried unplugging and replugging…and eventually communication resumed, but it wasn't clear which thing helped.

I took my car to a CA smog station today for my test, and the guy couldn't get his machine to communicate with my OBD-!! port. I put a fresh fuse in the location for the DLC, but no dice. Guy said he was getting 12v at the port, but communication was just not happening. I brought the car home, scanned codes with kw1281test, and success.

But now I'm reminded that, a month or so ago, my copy of VCDS-Lite — which used to work with this same cable on my car — suddenly stopped working. I wasn't sure why, but urgency led me to just set it aside and work with kw1281test.

So, my questions: Does kw1281test only use the K line? Does it make sense that VCDS — along with the smog technician's equipment — cannot communicate with this cable, but kw1281 can?

And, bonus question: does this all point to an obvious culprit I'm not seeing? I'll of course inspect the plug itself, and its wiring, tomorrow.
 

gmenounos

Vendor
Joined
Jun 26, 2003
Location
Watertown, MA, USA
TDI
'99.5 Golf GLS, '01 Jetta GLX Wagon (TDI conversion)
Is there any additional info to be gleaned from this error message beyond "Could not connect?"
Code:
Version 0.80-beta (https://github.com/gmenounos/kw1281test/releases)
Args: AB5P37BA 10400 1 ReadFaultCodes
...
Caught: System.InvalidOperationException Controller did not wake up.
...
...
So, my questions: Does kw1281test only use the K line? Does it make sense that VCDS — along with the smog technician's equipment — cannot communicate with this cable, but kw1281 can?

And, bonus question: does this all point to an obvious culprit I'm not seeing? I'll of course inspect the plug itself, and its wiring, tomorrow.
Yes, kw1281test only uses the K line. When this happens, can kw1281test talk to any other modules in the car? If it can, then that would tend to implicate the ECU or the K line that connects to it. If it can't connect to any other modules, then that would make you suspect your OBD port or the wiring to it.

I can't think of anything that might leave your ECU in a state where it won't wake up for diagnostics. If you used kw1281test to retrieve the SKC from the ECU or dump the ECU's EEPROM, that can sometimes leave the ECU in a weird state that requires you to disconnect the battery to talk to it again. But when that happens, you wouldn't get the "Controller did not wake up" error, you'd get an error that says "Unexpected byte received" or something like that.
 

punkassjim

Active member
Joined
Jul 16, 2003
Oh! I realized my problem: when I replaced my ECU a couple months ago, I never re-coded it to match my vehicle’s VIN. Since it’s IMMO2, I didn’t think I’d need to. The smog station was likely unable to match VIN, hence the communication error. Figured this out because I took the car to AutoZone to see if they could successfully scan it, and they could…but the VIN that came up on their screen does not match the VIN of my engine donor vehicle.

Can kw1281test do the VIN reassignment on the swapped ECU? Or will I need a VAG-Com?
 
Last edited:

gmenounos

Vendor
Joined
Jun 26, 2003
Location
Watertown, MA, USA
TDI
'99.5 Golf GLS, '01 Jetta GLX Wagon (TDI conversion)
I corrected the VIN in my TDI-swapped 2001 Jetta wagon by:
  1. Dumping the cluster EEPROM to a file (with VAG Tacho at the time)
  2. Editing the file with a hex editor to correct the VIN
  3. Uploading the EEPROM file back to the cluster
  4. Re-pairing the ECU to the cluster so that the VIN gets copied from the cluster to the ECU. (At the time I used VCDS: http://wiki.ross-tech.com/wiki/index.php/Immobilizer_III_ECU_Swapping )
I think you should be able to do all this with kw1281test. You didn't share any info about what year your car is, but assuming it's Immo3 with a VDO cluster:

If the VIN in the cluster is correct and just the ECU VIN is wrong, skip all the crossed out steps. I had to do every step because both the cluster and ECU had the VIN from the donor car.

Dump the cluster EEPROM:
kw1281test AB5P37BA 10400 17 DumpEeprom 0 2048 oldvin.bin

Edit oldvin.bin
If you don't have a hex editor, you can do it in your browser: https://hexed.it/
Save it to a new file: newvin.bin

Load the EEPROM back into the cluster:
kw1281test AB5P37BA 10400 17 LoadEeprom 0 newvin.bin

Reset the cluster so that it reads the new EEPROM:
kw1281test AB5P37BA 10400 17 Reset


Get your SKC:
kw1281test AB5P37BA 10400 17 GetSKC

(For the next step, assume your SKC is 01234)

Re-pair the ECU to the cluster. (If this doesn't work right in kw1281test, then you may have to use VCDS)
kw1281test AB5P37BA 10400 1 AdaptationSave 50 01234 01234

Turn off ignition for 1 minute and then turn back on

Connect to the ECU and verify that it has the new VIN:
kw1281test AB5P37BA 10400 1 ReadIdent

Let me know if that works.
 

gmenounos

Vendor
Joined
Jun 26, 2003
Location
Watertown, MA, USA
TDI
'99.5 Golf GLS, '01 Jetta GLX Wagon (TDI conversion)
The previous post assumes that the cluster SKC and ECU SKC are the same. If you installed an Immobilizer-deleted ECU and never paired it with your cluster, then you'll have to also get the SKC from your ECU:

kw1281test AB5P37BA 10400 1 GetSKC

Then, assuming your cluster SKC is 01234 and your ECU SKC is 05678, you would do:

kw1281test AB5P37BA 10400 1 AdaptationSave 50 01234 05678

Assuming the above even works with an Immo-deleted ECU. If any of the above wrecks your car, not my fault, just trying to help. :)
 

punkassjim

Active member
Joined
Jul 16, 2003
Thank you! I’ll read this more in-depth after dinner, but to clarify: it’s a 2001 donor vehicle, immo2, and all immobilizer components have been matched and enabled all along. I matched the replacement ECU to the cluster, and re-paired the keys, with kw1281test a couple months ago. So the SKC in the ECU should match that of the cluster at this point, I believe.
 

punkassjim

Active member
Joined
Jul 16, 2003
I don't think Immo2 knows your VIN
I was surprised too, but somehow the scanner at AutoZone pulled an unfamiliar VIN from my car today. And if this 2001 “DL” ECU were somehow an immo3 device, it wouldn’t have swapped in so cleanly last month via the immo2 procedure.
 

gmenounos

Vendor
Joined
Jun 26, 2003
Location
Watertown, MA, USA
TDI
'99.5 Golf GLS, '01 Jetta GLX Wagon (TDI conversion)
Is your car a TDI or not? It it's a TDI, you can dump the ECU EEPROM to a file and verify that the VIN is in there:

kw1281test AB5P37BA 10400 1 DumpEdc15Eeprom ecu.bin

If it's not a TDI, I don't think there's anything kw1281test nor VCDS can do to change the VIN. (Actually kw1281test doesn't currently support writing to the ECU EEPROM, but I'm working on that, for TDIs only though).
 
Top