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.
$ pip install obd
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
Available at python-obd.readthedocs.org
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)
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
GNU GPL v2
This library is forked from:
Enjoy and drive safe!