brendan-w/python-OBD

OBD-II serial module for reading engine data

Python

1,318

88 commits

updated Apr 7, 2025

See the code

README

python-OBD

A python module for handling realtime sensor data from OBD-II vehicle ports. Works with ELM327 OBD-II adapters, and is fit for the Raspberry Pi.

Installation

$ pip install obd

Basic Usage

import obd

connection = obd.OBD() # auto-connects to USB or RF port

cmd = obd.commands.SPEED # select an OBD command (sensor)

response = connection.query(cmd) # send the command, and parse the response

print(response.value) # returns unit-bearing values thanks to Pint
print(response.value.to("mph")) # user-friendly unit conversions

Documentation

Available at python-obd.readthedocs.org

Commands

Here are a handful of the supported commands (sensors). For a full list, see the docs

note: support for these commands will vary from car to car

  • Calculated Engine Load
  • Engine Coolant Temperature
  • Fuel Pressure
  • Intake Manifold Pressure
  • Engine RPM
  • Vehicle Speed
  • Timing Advance
  • Intake Air Temp
  • Air Flow Rate (MAF)
  • Throttle Position
  • Engine Run Time
  • Fuel Level Input
  • Number of warm-ups since codes cleared
  • Barometric Pressure
  • Ambient air temperature
  • Commanded throttle actuator
  • Time run with MIL on
  • Time since trouble codes cleared
  • Hybrid battery pack remaining life
  • Engine fuel rate
  • Vehicle Identification Number (VIN)

Common Issues

Bluetooth OBD-II Adapters

There are sometimes connection issues when using a Bluetooth OBD-II adapter with some devices (the Raspberry Pi is a common problem). This can be fixed by setting the following arguments when setting up the connection:

fast=False, timeout=30

License

GNU GPL v2

This library is forked from:

Enjoy and drive safe!

Project health

Overall

3.3/10

Maintained

0/10

Code review

5/10
OpenSSF Scorecard

PyPI

Latest release

0.7.3 · Apr 7, 2025

Releases this year

0

Significant stargazers

Janus Troelsen

189 followers · starred Oct 2015

Kevin

29 followers · starred Feb 2019

Miwa

156 followers · starred Sep 2021

Gabe

91 followers · starred Oct 2025

brendan-w/python-OBD

OBD-II serial module for reading engine data

Python

1,318

88 commits

updated Apr 7, 2025

See the code

README

python-OBD

A python module for handling realtime sensor data from OBD-II vehicle ports. Works with ELM327 OBD-II adapters, and is fit for the Raspberry Pi.

Installation

$ pip install obd

Basic Usage

import obd

connection = obd.OBD() # auto-connects to USB or RF port

cmd = obd.commands.SPEED # select an OBD command (sensor)

response = connection.query(cmd) # send the command, and parse the response

print(response.value) # returns unit-bearing values thanks to Pint
print(response.value.to("mph")) # user-friendly unit conversions

Documentation

Available at python-obd.readthedocs.org

Commands

Here are a handful of the supported commands (sensors). For a full list, see the docs

note: support for these commands will vary from car to car

  • Calculated Engine Load
  • Engine Coolant Temperature
  • Fuel Pressure
  • Intake Manifold Pressure
  • Engine RPM
  • Vehicle Speed
  • Timing Advance
  • Intake Air Temp
  • Air Flow Rate (MAF)
  • Throttle Position
  • Engine Run Time
  • Fuel Level Input
  • Number of warm-ups since codes cleared
  • Barometric Pressure
  • Ambient air temperature
  • Commanded throttle actuator
  • Time run with MIL on
  • Time since trouble codes cleared
  • Hybrid battery pack remaining life
  • Engine fuel rate
  • Vehicle Identification Number (VIN)

Common Issues

Bluetooth OBD-II Adapters

There are sometimes connection issues when using a Bluetooth OBD-II adapter with some devices (the Raspberry Pi is a common problem). This can be fixed by setting the following arguments when setting up the connection:

fast=False, timeout=30

License

GNU GPL v2

This library is forked from:

Enjoy and drive safe!

Project health

Overall

3.3/10

Maintained

0/10

Code review

5/10
OpenSSF Scorecard

PyPI

Latest release

0.7.3 · Apr 7, 2025

Releases this year

0

Significant stargazers

Janus Troelsen

189 followers · starred Oct 2015

Kevin

29 followers · starred Feb 2019

Miwa

156 followers · starred Sep 2021

Gabe

91 followers · starred Oct 2025