Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Vehicle Security and Car Hacking
  3. Python-OBD

Python-OBD

GPL-2.0Pythonv0.7.3

A Python module for reading real-time sensor data from OBD-II vehicle ports using ELM327 adapters.

GitHubGitHub
1.3k stars421 forks0 contributors

What is Python-OBD?

python-OBD is a Python module for interfacing with OBD-II vehicle diagnostic ports to read real-time engine and sensor data. It connects to ELM327-based adapters and provides a simple API for querying parameters like speed, RPM, temperature, and fuel levels. The library handles unit conversions and protocol differences, making it accessible for automotive telematics and monitoring applications.

Target Audience

Developers, hobbyists, and researchers working on automotive telematics, vehicle monitoring systems, or Raspberry Pi-based projects that require access to real-time vehicle data.

Value Proposition

It offers a pure-Python, well-documented solution with extensive OBD command support and unit-aware measurements, eliminating the need to deal with low-level serial protocols. Its compatibility with affordable ELM327 adapters and Raspberry Pi makes it a cost-effective choice for DIY and professional applications.

Overview

OBD-II serial module for reading engine data

Use Cases

Best For

  • Building custom vehicle telematics and monitoring dashboards
  • Raspberry Pi projects that log or display real-time car data
  • DIY automotive diagnostics tools for enthusiasts and mechanics
  • Research and data collection on vehicle performance and emissions
  • Educational projects teaching OBD-II protocols and Python serial communication
  • Integrating vehicle sensor data into IoT or home automation systems

Not Ideal For

  • Real-time safety-critical control systems requiring low-latency and deterministic responses
  • Commercial fleets needing turnkey, vendor-supported telematics platforms with guaranteed uptime
  • Projects targeting vehicles with proprietary OBD implementations or non-standard CAN bus protocols

Pros & Cons

Pros

ELM327 Compatibility

Works with widely available USB, Bluetooth, or RF adapters, making it cost-effective and accessible for hobbyists and professionals alike.

Unit Conversion with Pint

Returns sensor values with proper units using the Pint library, allowing easy conversions like mph to kph directly in code.

Extensive Command Support

Supports dozens of standardized OBD commands for engine parameters, fuel levels, VIN, and more, as documented in the command tables.

Raspberry Pi Optimized

Tailored for embedded platforms like Raspberry Pi, ideal for portable or fixed installations in DIY automotive projects.

Cons

Bluetooth Connectivity Problems

README admits issues with Bluetooth adapters, especially on Raspberry Pi, requiring manual tweaks like setting fast=False and timeout=30 for stability.

Vehicle-Specific Sensor Availability

Support for OBD commands varies by vehicle, meaning not all listed sensors may be accessible on every car, limiting predictability.

Read-Only Functionality

Primarily designed for reading data; lacks built-in features for writing to the ECU or controlling vehicle systems beyond diagnostics.

Frequently Asked Questions

Quick Stats

Stars1,279
Forks421
Contributors0
Open Issues86
Last commit1 year ago
CreatedSince 2014

Tags

#elm327#obd-ii#python-library#automotive#serial-communication#sensor-data#vehicle-diagnostics#raspberry-pi

Built With

P
Python

Included in

Vehicle Security and Car Hacking4.2k
Auto-fetched 1 hour ago

Related Projects

ScapyScapy

Scapy: the Python-based interactive packet manipulation program & library.

Stars12,261
Forks2,210
Last commit21 hours ago
canmatrixcanmatrix

Converting Can (Controller Area Network) Database Formats .arxml .dbc .dbf .kcd ...

Stars1,075
Forks435
Last commit1 month ago
Caring CaribouCaring Caribou

A friendly car security exploration tool for the CAN bus

Stars903
Forks222
Last commit1 year ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub