May 19, 2001

There have been some interesting files uploaded to the "files" section at the Yahoo Groups mailing list page. Also, the VAG info page moved and the link has been fixed.

October 10, 2000

A new VAG info page with details on the VWAG protocol (VWs, Audis, SEATs and Skodas can use the ISO/OBDII formats, but you can access more than just basic engine data if you go for the proprietary protocol). Excellent stuff!

July 9, 2000

I got a list of data channels for the A4 1.8T engine's ECU. They appear to be basically the same as my Passat's non fly-by-wire 1.8T.

Schematic & PCB layout available

Jeff Noxon took the (really) rough schematic from this page, cleaned it up and designed a new PCB for it. You can find the whole shebang here.

Mailing List

I don't want to be innudated with questions and people need to start sharing information, so I've set up a mailing list at egroups. If you really want, you can email me directly at (this is not a mailto: on purpose), but I don't promise a prompt reply.


This started as a project to connect a Palm Pilot to a 1.8T equipped Passat to act as a turbo boost gauge. It was going to be a commercial project and I went as far as figuring out how to register a fictitious business name and source all the parts for the TTL-serial (not really RS-232) of the Palm to the 12V interface of the diagnostic port on the Passat.

I don't have time for this nonsense anymore and I realized the return would be pretty pitiful, though the risk wasn't too high-- the worst thing would be the minimum buy on the diag connectors.

I've decided to make the project open in the GNU/Linux sense. Anything I learn that isn't copyrighted (SAE and ISO are pretty strict, but I'll get to that) I'll pass on. I encourage people to send me what they find& I'll put it here.

Getting Started

I started with VWTool from CalComp. I disassembled the RS-232 (it uses a PC laptop) to 12V module, drew up a schematic & researched the parts (click for larger views):

I know this schematic is grody, but a student who was doing car diagnostic interfacing as a project got a circuit up & running using this info. I'm hoping he'll send me his cleaner schematic (finally getting this page together might be sufficient impetus).

Here are some comments I sent the student:

Um- in the picture of the level converting module, black is GND, red is +12V Batt, orange is L and brown is K.

I've been using a serial analysis tool that has it's own wacky format for saving traces (it has to be able to tell Tx from Rx so can't just save 'em raw).  It's called CommLite 32 & once I figure out the trace format, I'll send you some traces if you want.  For now, I've been capturing the screen & printing that.

It looks like while idling to keep the link up, the PC and ECU count, the PC doing evens & the ECU doing odds:

PC: 03 18 09 03

ECU: 03 19 09 03

PC does 1A, ECU does 1B, etc.

The turnarounds are kind of wierd.  It looks like they're done by sending an 03 & the other end sends 03 instead of the normal inversion- FC.  Hence, the exchange above really looks like:

PC     ECU
              03 ("go ahead"?)

and so on...

The regular data block inquiries look pretty similary & it's pretty easy to get lost in all of (what looks like) the keep-alive stuff trying to find the actual data inquiry & response.  I'm going to write a higher-level analyzer to weed out all the byte-inversion-checksum stuff & bus echo for PC transmitted bytes so I can see the message structure more clearly.

RTS is hooked up (thru a level converter) to the L line & "wakes up" the ECU @ 5 baud or something.

ISO 9141-2 also says you need to talk @ 5bps on the L line to start communication, but VWTool seems to use the VAG custom protocol, not ISO otherwise.  Confusing, but I'm just trying to emulate VWTool, not discover the wherefore.

Other comments

The author of VWTool passed away last year. Baum Tools always sold it (for a higher price than direct from CarComp) and they still do, though supposedly an improved version. For a time, they had an update on their website. It was fully functional, but you had to have the level converter, which as we see here, is actually not that tricky. There may be copies floating around. If someone in the San Francisco Bay Area wants to hack on this (and can seriously dedicate the time), I'll lend him or her my copy (legit.: I paid CarComp $400 for it, back when this was a money-making scheme).

I haven't mentioned the SAE and ISO specs yet. They actually aren't that useful if you want to snoop VWTool rather than try to communicate by implementing according to the spec (harder in my opinion, but less VW-centric). As I mentioned earlier, VWTool uses a custom protocol. VWs are also suppsed to talk ISO 9141-2. The VW protocol uses 9600 bps which is very nice. ISO uses 10.4 kbps and the other SAE (SAE publication HS-3000 incorporates J1962, J1978 and a bunch of others) protocols (they rolled the custom GM and Ford systems into the spec. Chrysler uses ISO which is the 3rd SAE option) use nasty Pulse Width Modulation schemes.

ANSI sells ISO specs by the way.

The labels that VWTool shows you on the screen are not in the data it gets from the car, but translated by an encrypted file (labels.csv if you have the program). This will be one of the harder things to deal with legally (unless VW will give us a list of keywords & their numbers).

That should do for now. Here are some links:

Baum Tools

ComLab32 & Comlite32 This is the serial analysis tool. It's a lot easier than building a "snoop" cable.

Pioneer Packard A division of Delphi Packard that makes the diagnostic connector. The connector part numbers are:

12110252 shell (1 needed)
12047581 pins (4 needed)
12110254 locking clip (1 needed)

Please be nice to PP: they aren't used to dealing with lots of sample requests or hackers.

I can't give the company that makes Palm connectors because I'm bound by the Hardware Developer's Contract, but you can't order from them until you sign a contract with 3Com (I guess Palm, Inc. now!) anyway. I will say that their terms are very fair & they accept small quantity orders.