A modern, open-source OBD-II diagnostic tool and dashboard built with Python. Designed to work with ELM327 USB adapters, this tool allows you to monitor vehicle sensors in real-time, read/clear check engine lights, and log data for analysis.
- Live Dashboard: Real-time visualization of RPM, Speed, Coolant Temp, Voltage, and more with analog gauges.
- Performance Mode:
- Virtual Dyno: Estimate Horsepower and Torque curves based on vehicle physics.
- Drag Strip: Automatic 0-100 km/h (0-60 mph) performance timer.
- PyCAN Hacker: A separate, dedicated tool included for reverse engineering CAN bus traffic and finding new PIDs.
- Live Graphing: Distinct multi-axis graphing to correlate data (e.g., RPM vs. Fuel Pressure).
- Automated Analysis: Built-in logic engine to detect anomalies (e.g., high load at idle, overheating, stuck thermostat) based on sensor combinations.
- Customizable Layout & Themes: Switch between Cyber (Neon), Amber (BMW), Matrix, and Solar themes.
- Data Logging: Automatically save sensor data to CSV files for Excel/Sheets analysis.
- Diagnostics: Read and Clear Diagnostic Trouble Codes (DTCs / Check Engine Light).
- Safety Backups: "Full Backup" feature saves a snapshot of the car's state (Freeze Frame data + Codes) to a JSON file before you wipe them.
- Demo Mode: Built-in simulation to test features without being connected to a car.
The open-source version supports standard OBD-II protocols (Emissions, RPM, Speed, Temps). However, manufacturers often hide specific data (Hybrid Battery Health, DPF Soot Levels, Transmission Temp) behind proprietary codes.
Pro Packs are available for purchase on our Gumroad store.
These JSON packs unlock manufacturer-specific sensors for brands like Toyota, VW, Ford, and BMW.
Do you have a specific car? If you help me verify the PIDs, I will give you the Pro Pack for free.
- Purchase/Download the
.json(or.obd) file for your car model. - Place the file inside the
pro_packs/folder in the application directory. - Open the App → Settings → Manage Pro Packs.
- Enable the pack and click "Save & Reload".
- Computer: Windows, Linux, or macOS.
- Adapter: ELM327 USB Adapter.
- Recommended: Version with PIC18F25K80 chip and FTDI or CH340 USB drivers.
- Note: Avoid generic "blue" KKL/VAG-COM cables; they are not ELM327 compatible.
-
Clone the repository:
git clone https://github.com/Paul-HenryP/PyOBD-Dashboard.git cd PyOBD-Dashboard -
Install dependencies:
pip install -r requirements.txt
-
Connect your Adapter:
- Plug the ELM327 USB into your computer.
- Plug the other end into your car's OBD-II port.
- Turn the ignition to ON (Engine can be off or running).
Running the Dashboard:
python src/main.pypython src/sniffer_main.pySelect your USB Port from the dropdown (or use "Auto"). Select "Demo Mode" to test the interface without a cable. Click Connect.
This software is provided "as is". Clearing fault codes does not fix the underlying mechanical problem. Always backup your codes using the "Full Backup" feature before clearing them so you have a record for your mechanic. The CAN Hacker tool allows raw data injection. Use with extreme caution and never inject random data while the vehicle is in motion.
Open Source. Feel free to fork and improve!
Used icon: Motor icons created by Freepik - Flaticon