OpenVehicleDiag - Cross platform Car/ECU diagnostics!

OpenVehicleDiag - Cross platform car diagnostics for all!


OpenVehicleDiag (OVD) is a cross platform, open source car diagnostics platform written in Rust.

Adapter API Support

  • SocketCAN (Linux only)
  • J2534 (Linux and OSX have to use Macchina-J2534)


  • CAN viewer
  • Automated ECU discovery using ISO-TP exploit
  • OBD-II, UDS and KWP2000 diagnostic support
  • Manual UDS/KWP2000 session for reverse engineering ECU payload responses
  • Advanced JSON Session to run more complex diagnostic routines on an ECU, just like OEM tools (See below)

The OVD JSON Format

The OVD JSON Format is the JSON specification which is used for advanced diagnostic sessions. The specification can be found here, however there is a decompiler which can convert OEM diagnostic files into the JSON.

Decompiler support

  • .CBF (Daimler)


Check the Github repository for details on building, installing and running OVD!

Demonstration videos

Check out my playlist!

Future plans

  • Add .PRG decompiling support for BMW INPA files
  • K-Line interface support (For older vehicles)
  • ECU Firmware dumping


Any major updated to OVD will be posted here

1 Like

Version 1.0.5!


A quick progress update!

Currently working on version 1.2.0. This should add support for BMW .PRG file conversion to the JSON format OVD uses!

You can track the progress of this with this github branch:

BMW file parsing is a totally different beast. The files are binary code which gets executed by a finite state machine, which produces the data structures I can then convert into OVD’s JSON.

1 Like