PYOBD is a revitalized, free, and Open Source Obd2 Software designed for vehicle diagnostics. Originally created by Donour Sizemore, this invaluable tool had become outdated over the last 15 years. This project brings PYOBD back to life, upgrading it from Python 2 to Python 3 and incorporating modern libraries to ensure it functions seamlessly with contemporary vehicles. A significant enhancement is the integration of the Python-OBD library, vastly expanding the range of supported commands and automatically detecting your car’s computer capabilities. This allows PYOBD to display a wealth of vehicle data, far exceeding the capabilities of its predecessor. Best of all, PYOBD offers cross-platform compatibility, running smoothly on Windows, Linux, and macOS.
Watch PYOBD in Action
Get a quick visual overview of PYOBD’s features and functionality in this presentation video:
Table of Contents
Getting Started with Open Source OBD2 Software: Prerequisites
To begin using PYOBD, your open source OBD2 software solution, you’ll need a few essential components:
- ELM327 Adapter: This is the hardware interface that bridges your computer to your car’s OBD2 port.
- Laptop: A portable computer running Windows, Linux, or macOS to operate the PYOBD software.
- OBD2 Compliant Vehicle: Most cars manufactured in Europe since 2001 and in the USA since 1996 are OBD2 compliant. Check your vehicle’s manual to confirm compatibility.
Which ELM327 Adapters Work Best with Open Source OBD2 Software?
Generally, most ELM327 adapters priced at $10 or more should function effectively with PYOBD. Here are a few specific adapters that have been tested and confirmed to work:
- OBDPro USB Scantool – A reliable USB option.
- OBDLink SX USB – Another dependable USB adapter known for its performance.
- Chinese OBD2 1.5 USB Adapters – Affordable USB options that can be found online.
- VGate iCar Pro BLE (Bluetooth 4.0) – A Bluetooth adapter offering wireless connectivity.
Help us expand the compatibility list! If you’ve tested PYOBD with an ELM327 adapter not listed above, please share your experience! Your feedback will help other users find compatible hardware. You can reach out via the email address provided at the end of this document.
USB vs. Bluetooth Adapters for OBD2 Software
PYOBD supports both USB and Bluetooth ELM327 adapters. USB adapters generally provide a more stable and faster connection, which is often preferred for diagnostic work. Bluetooth adapters offer the convenience of wireless connectivity, but may sometimes require manual pairing and connection, particularly on Linux systems due to potential Bluetooth manager inconsistencies.
Choosing a Quality ELM327 Adapter
While budget-friendly ELM327 adapters are available, investing in a higher-quality adapter, typically in the $10+ range, can significantly improve your experience. Reputable brands like OBDLink and VGate are known for producing reliable adapters that often include firmware updates, ensuring ongoing performance and compatibility improvements. These brands prioritize quality components and robust firmware, leading to more dependable OBD2 communication.
- Recommended USB Adapter: For a consistently stable and fast connection, the vLinker FS USB adapter is highly recommended. It offers excellent performance and reliability at a reasonable price point.
- Recommended Bluetooth Adapter: If wireless connectivity is preferred, the Vgate iCAR Pro Bluetooth adapter is a solid choice, balancing performance and convenience.
- Chinese ELM327 Clones: If you opt for a Chinese clone to save costs, look for models that specify using a PIC18F25K80 chip and an FTDI chip (for USB connectivity). Firmware version 1.5 is often cited as a more reliable version for clones, but consistency can vary. For a slightly more reputable Chinese brand, the Konnwei KW903 is a reasonably priced option around $15 including shipping, but the iCar Pro remains a superior choice overall.
Installation of PYOBD Open Source Software
The installation process for PYOBD, your chosen open source OBD2 software, is straightforward across different operating systems.
Note: Linux users may need to install the libnsl
library if it’s not already included in their distribution.
Windows Installation
- Download the standalone executable: Obtain the PYOBD executable file for Windows.
- Install ELM327 Driver: Install the necessary driver for your ELM327 adapter. If a driver wasn’t included with your adapter, you can typically find drivers online, such as those available at Total Car Diagnostics.
Linux Installation
-
Download the standalone executable: Get the PYOBD executable for Linux.
-
Grant User Privileges: To allow PYOBD to access USB and serial ports, execute the following commands in your terminal:
sudo usermod -a -G dialout $USER sudo usermod -a -G tty $USER
Important: After running these commands, log out and log back into your user account (or restart your system) for the changes to take effect.
-
Bluetooth Adapter Support (Optional): If you are using a Bluetooth ELM327 adapter, you may need to install Bluetooth utilities:
sudo apt-get install bluetooth bluez-utils blueman
MacOS Installation
-
Download the standalone executable: Download the PYOBD executable for macOS.
-
Grant User Privileges: Similar to Linux, grant your user account access to USB and serial ports using these commands in the terminal:
sudo usermod -a -G dialout $USER sudo usermod -a -G tty $USER
Important: Log out and back in or restart your macOS system after running these commands.
Using PYOBD: Your Open Source OBD2 Software Tool
Once installed, using PYOBD for vehicle diagnostics is user-friendly.
- Bluetooth Pairing (Bluetooth Adapters Only): If using a Bluetooth adapter, you’ll need to pair it with your computer initially. On Linux, manual connection via the command line may be necessary after pairing.
- Run PYOBD: Launch the PYOBD executable or script.
- Connect ELM327 Adapter: Plug your ELM327 adapter into your computer and then into your vehicle’s OBD2 port. The OBD2 port is typically located under the dashboard on the driver’s side.
- Turn Ignition ON: Turn your car’s ignition to the “ON” position (you don’t need to start the engine).
- Connect in PYOBD: In the PYOBD application, navigate to “Configure.” Select the appropriate port and baud rate settings for your adapter. Click “CONNECT.” While “AUTO” port and baud rate detection is available and generally works, manual configuration can be faster and more reliable in some cases. (Update: Automatic detection has been improved and should now work consistently.)
- View Vehicle Data: Once connected, PYOBD will begin displaying vehicle data. Note that many sensors only transmit data when the engine is running. If you connect PYOBD before starting the engine, allow a brief period for the program to reconnect after starting the engine.
PYOBD is designed for ease of use. It allows you to access:
- TESTS Data: Retrieve results from vehicle diagnostic tests.
- SENSORS Data: View live readings from various vehicle sensors.
- FREEZE FRAME Data: Examine vehicle data captured when a trouble code was triggered.
- TROUBLE CODES: Display and clear diagnostic trouble codes (DTCs).
- Live GRAPHS: Visualize real-time sensor data in graphical format.
Important Note: PYOBD primarily focuses on engine-related data. It does not provide access to systems like airbags, ABS, or body control modules. For diagnostics of those systems, specialized software is required, even if your ELM327 adapter supports communication with those modules.
Running PYOBD from the Python Script
For users who prefer to run PYOBD directly from the Python script, here’s how:
- Install Python 3: Ensure Python 3 is installed on your system.
- Install
libsnl
(Linux): Linux users may need to installlibsnl
if it’s not already present.
Windows Script Execution
-
Install Requirements: Open a command prompt in the PYOBD script directory and run:
pip install -r requirements.txt
-
Run the Script: Execute PYOBD by running:
python3 pyobd.py
Linux Script Execution
-
Install Requirements: On Debian/Ubuntu based Linux distributions, use these commands to install necessary dependencies:
sudo apt-get install dpkg-dev build-essential libjpeg-dev libtiff-dev libsdl1.2-dev libgstreamer-plugins-base1.0 libnotify-dev freeglut3 freeglut3-dev libsm-dev libgtk-3-dev libwebkit2gtk-4.0-dev libxtst-dev gettext python3-dev python3-pip sudo apt-get install python3-pip pip3 install --upgrade pyinstaller pip3 install --upgrade pip sudo apt install libglib2.0-dev libsmbclient-dev libcups2-dev libgirepository1.0-dev libcurl4-openssl-dev libssl-dev libsystemd-dev librsync-dev pip3 install -r requirements.txt
For Ubuntu Nobel (and potentially newer versions), a simplified installation command might suffice:
sudo apt-get install dpkg-dev build-essential libjpeg-dev libtiff-dev libsdl1.2-dev libgstreamer-plugins-base1.0-0 libnotify-dev libglut-dev libglut3.12 libsm-dev libgtk-3-dev libwebkit2gtk-4.1-dev libxtst-dev gettext python3-dev python3-pip sudo apt install wxpython-tools numpy python3-tornado python3-pint python3-six
-
Grant User Privileges: Ensure your user has access to serial ports (if not already done during executable installation):
sudo usermod -a -G dialout $USER sudo usermod -a -G tty $USER
Important: Log out and back in or restart your system.
-
Run the Script: Execute PYOBD using:
python3 pyobd.py
MacOS Script Execution
-
Install Requirements & Grant Privileges: Run the following commands in your terminal:
pip install -r requirements.txt sudo usermod -a -G dialout $USER sudo usermod -a -G tty $USER
Important: Log out and back in or restart your system.
-
Run the Script: Start PYOBD with:
python3 pyobd.py
Creating a Standalone Executable for PYOBD
For easier distribution and use, you can create standalone executables of PYOBD for each operating system.
-
Install Python 3 &
libsnl
(Linux): Make sure Python 3 is installed, andlibsnl
for Linux if needed. -
Install PyInstaller: Use pip to install PyInstaller, which is used for creating executables:
pip3 install pyinstaller
Windows Executable Creation
Run these commands in the PYOBD directory:
pip3 install -r requirements.txt
pip3 install pyinstaller
pip3 install --upgrade pip
pip3 install --upgrade pyinstaller
pyinstaller --onefile -c -i pyobd.ico --add-data "pyobd.ico;." pyobd.py
Linux Executable Creation
On Debian/Ubuntu, ensure the dependencies are installed as listed in the “Linux Script Execution” section. Then run:
pip3 install -r requirements.txt
pip3 install pyinstaller
pyinstaller --onefile -w -i pyobd.ico --add-data "pyobd.ico:." pyobd.py
MacOS Executable Creation
pip3 install -r requirements.txt
pip3 install pyinstaller
python3 -m PyInstaller --onefile -w -i pyobd.ico --add-data "pyobd.ico:." pyobd.py
PYOBD To-Do List: Future Enhancements
The development of PYOBD is ongoing. A key feature planned for future releases is:
Adding Sensor Data Recording and Replay Functionality
This enhancement will allow users to record sensor data for later analysis and playback, further increasing the utility of this open source OBD2 software for in-depth vehicle diagnostics and performance monitoring.
[