Category Archives: Car diagnostics

Alexander’s car diagnostic software (OBD KW1281)

-Arduino Version-

Update 2015:   I developed an Arduino OBD reader for the older OBD KW1281 protocol:

  1. An OBD USB adapter (USB KKL adapter  ‘AutoDia K409 Profi USB‘) was hacked, so I could connect the car OBD to the Arduino (TX/RX via software serial).
  2. An Arduino LCD display (‘YwRobot LCMI602 IIC V1’) was attached to the Arduino.
  3. Arduino code was written for the KW1281 protocol to read car sensor data (RPM, oil/coolant temperature, throttle, air, etc.) and show them on the display.

obd_adapter_arduinoobd_kw1281_arduinoobd_arduino_car obd_arduino_display1 obd_arduino_display2

Download Arduino Code for the KW1281 OBD protocol: arduino_kw1281


-PC Version-

My Audi A4/B5 (1997) and many other old cars use the older OBD KW 1281 protocol – I tried to find any suitable OBD software for my car to speak to my motor and dashboard control units (ECU), however:

  • wbh-diag 0.89 : seem to work (unstable connection)
  • monoscan 2.30: seem to work, but does not have ‘set basic settings’ feature
  • VAG-COM 3.11/4.09: seem to work (you have to power off/on ignition while connecting as it sends some data before waking up and that confuses my engine ECU)
  • CarPort 1.3.2: seem to work (you have to power off/on ignition while connecting as it sends some data before waking up and that confuses my engine ECU)

So, using the KW1281 protocol, the correct initialization timing (baud 5) is critical, and some software does not wait before waking up the ECU. Finally, I decided to develop something on my own. Note: my software only supports the older KW1281 protocol!

Features of my KW1281 diagnostic software:

  • Read sensors (measurements)
  • Set basic settings – useful, if you want to start motor ECU throttle adaption
  • Read errors
  • Clear errors
  • Read ROM (does not work for all ECUs)
  • Showing sensor values in graph

What you need:

  • a PC runing Windows (XP/Vista/Win7)
  • an USB KKL adapter (it provides a virtual COM port, for example ‘AutoDia K409 Profi USB‘ – it uses the FTDI chipset to emulate a serial line)

Screenshot:
kw1281screenshot

Download:
obd_kw1281  (executable)
obd_kw1281  (freepascal_lazarus code)

Please send me your feedback! Thanks 🙂 If you send your feedback, please always send me the complete debug output.

My car’s OBD data:

- Audi A4 B5 1.8, 1997, ADR
- Engine ECU:
     Part Number : 8D0907558B      Component : 1,8L R4/5V  MOTR HS D02
- Dash board ECU
     Part Number : 8D0919860G      Component : B5-KOMBIINSTR.UN4   D01
     Descriptor 5 : IMMO-IDENTNR: AUZ8Z0V5170015