Skip to content

Repository files navigation

OBDisplay-Uno

CI/CD RAM: Flash: MCU: ATmega328P RAM (debug): Flash (debug):

KWP-1281 K-Line trip computer for Arduino Uno with SH1107 OLED display (64×128 portrait).

Reads live sensor data and fault codes from VAG vehicles (Audi, Golf Mk4, Bora, Jetta, ~1998–2006) that use the K-Line OBD interface and the KWP-1281 protocol.

Showcase

OBDisplay-Uno Showcase

Installation

Pre-built firmware is available on the Releases page. See Getting Started for flashing instructions and how to build from source.

Features

  • Full KWP-1281 implementation: 5-baud GPIO init, block send/receive, ACK, keepalive, exit
  • Supported baud rates: 1200, 2400, 4800, 9600, 10400
  • Supported ECU addresses: 0x01 Engine, 0x03 ABS Brakes, 0x08 Auto HVAC, 0x17 Instruments, 0x19 CAN Gateway, 0x46 Central Convenience (cockpit display with big font for 0x01/0x17; others show raw group values)
  • Three KWP modes: ACK (keepalive only), group read, full sensor read
  • 56-case sensor decode table (full VW/Audi KWP-1281 measurement type table)
  • Read and clear DTC fault codes
  • SH1107 64×128 OLED display (GME64128-02), portrait orientation — pixel-doubled cockpit font, text-only rendering with batch I2C transfers

Hardware

Needed are (estimated total cost: 10€-15€ depending on deals from chinese sellers)

See Hardware Setup for the full pinout, OLED wiring, button configuration, and K-Line cable modification steps.

Guidance pictures of my specific K-Line cable modifications in case you are unsure about where to cut and how the RX and TX lines traverse the AutoDia409 OBD adapter:

Operation

See Operation for a quick reference, or Screen Reference for per-screen layouts and button actions.

ECU addresses and measurement groups

See KWP-1281 Protocol for ECU addresses, measurement group mappings, and protocol details.

ECU emulator

If you don't have a car available, OBDisplay-Emu turns an Arduino Mega into a KWP-1281 ECU for bench testing.

Caution

Use at your own risk. Wrong wiring can damage the ECU or create a fire hazard. This software only reads measurement groups and sends keepalive blocks — it does not write to or reprogram any ECU. The OBD port was designed for diagnostics only; increased workload on the ECU during driving is possible.

Do not use address 0x15 (airbag) to clear DTCs — on some affected ECUs this can deploy the airbag if an electrical fault is present in the airbag circuit.

Turn ignition ON (engine does not need to be running) before connecting.

Development

See Development for project structure, build environments, build macros, binary debug logging, display rendering details, and CI/CD.

Credits

About

Display information of your KW1281 K-Line VAG vehicle on a display controlled by an Arduino Uno (Or similar).

Topics

Resources

Stars

43 stars

Watchers

8 watching

Forks

Releases

Contributors

Languages