obd-diag

OBD-II diagnostics for Linux with ELM327-compatible adapters, as a command line tool and as a desktop application. obd-diag reads trouble codes and explains them in English or German, shows readiness, freeze frame, VIN and live data, and can record the entire communication with the adapter.

Important

Read-only, clearing locked. The only writing command is clearing the trouble codes (mode 04); it is switched off until it is explicitly enabled. Reading has so far been verified on one vehicle (Mercedes A 180 d, W177, see First test at the car). Without hardware, the response handling is verified against the ELM327 datasheet, real traces from other programs and python-OBD (Testing without a car).

What obd-diag can do

Function

OBD service

Page

Read trouble codes (stored, pending, permanent) with plain text

Mode 03, 07, 0A

Reading and clearing trouble codes

Explain codes without a catalog text online (optional, unverified)

–

Explaining trouble codes online

Readiness (monitors, check engine light)

Mode 01 PID 01

User interface

Readiness assistant: incomplete tests of this drive, which drive completes them

Mode 01 PID 01, 41

Readiness assistant

Used-car check: were the codes cleared recently?

Mode 01, 0A

Used-car check

Freeze frame for the triggering trouble code

Mode 02

OBD-II services

Read the VIN and decode it offline

Mode 09 PID 02

VIN decoding

Control units: name, calibration ID, CVN, monitoring counters

Mode 09

Control units and test results

Test results of the self-tests with limits

Mode 06

Control units and test results

Live data: 140 values from 87 PIDs, CSV recording

Mode 01

Live data

Save and compare sessions, PDF report, CSV

–

Sessions, report and trace

Clear trouble codes (locked)

Mode 04

Reading and clearing trouble codes

What obd-diag cannot do: control units outside the standardised emissions diagnostics (airbag, ABS, comfort), coding, flashing, service functions. This is a deliberate decision (ADR 0002: Read-only, with an allowlist in the driver).

Where to start

This documentation exists in English and German (link at the top of the sidebar). The program itself speaks both languages: Language.