Download pyOBD source and Debian/Ubuntu package
Order ELM-USB, an universal multi-protocol OBD-2 ELM32x compatible USB interface


pyOBD (aka pyOBD-II or pyOBD2) is an OBD-II compliant car diagnostic tool. It is designed to interface with low-cost ELM 32x OBD-II diagnostic interfaces such as ELM-USB. It will basically allow you to talk to your car's ECU,... display fault codes, display measured values, read status tests, etc. All cars made since 1996 (in the US) or 2001 (in the EU) must be OBD-II compliant, i.e. they should work with pyOBD.

pyOBD is written entirely in Python and was originally written by Donour Sizemore, now maintained and improved by SECONS Ltd. and it is Free Software and is distributed under the terms of the GPL.

General OBD-II information

New to OBD-II and car diagnostics? Read more about both topics at OBD2 information page for hobby users.

What can I do with pyOBD

Connect to a vehicle Display tests status View live sensor data Read and clear fault codes

For Python developers, pyOBD provides a single module, obd_io, that allows high level control over sensor data and diagnostic trouble code management.

The entire package has been tested to work on Windows, Debian/Ubuntu Linux, Mac OSX 10.3 (panther). Generally speaking, any Posix-type system meeting the requirements below will be supported.


  1. An ELM 32x OBD-II interface such as ELM-USB
  2. Python 2.x or greater
  3. pySerial
  4. A car supporting OBD-II (lookup your car in our cars database)

Related Links Copyright (c) 2007-2023 SECONS s.r.o.. All rights reserved. [Legal info]