Initially this was to be a package to easily create OBDII interfaces, however over its development I have instead created an OBDII interface program. It is designed to run on OSX and the respberrypi. It has a clean modern UI that is easily editable, and can record vehicle data.
As with many works, this is one built off of fantastic work by others. I have built this software using some coede from https://github.com/brendan-w who used code from https://github.com/peterh/pyobd. My goal in this project is to update their work to make it work easily with the FRS/BRZ/86 and provide an easy to customize graphical interface for the data. I am also open to supporting more cars but as of now, this project will be directed tword the car models listed above.
- Python 2.7
- Pyserial from
sudo pip install serial
- obd from
sudo pip install obd
- This package properly installed
- OBD2 ELM 327 USB adapter
- HDMI Display
- Linux/OSX device and power source (I am using a rapsbery pi 3 and a powerbackup for it made by PiModules)
- ELM 327 COM Port Driver (Should come with adapter or be installed with linux)
- Screen (sudo apt-get install screen) this is for testing car commands and to verify setup
Check to see if your connection is good.
use this command on linux once you have installed screen.
screen /dev/ttyUSB0 [baudrateofelmdevice]
Next clear the connection with
Next test the connection with
The return on these codes will be hex(computer giberish), as long as you dont get an error you are good.
NOTE: THESE ARE HEX COMMANDS SENT TO YOUR CAR, ONLY USE CODES STARTING WITH '01' other codes can damage your ECU. I am not liable for any ECU damage for any reason. Also I will note here that some ELM327 adapters drain car power even when turned off, so be mindful of this when leaving your car unatended for long portions of time.
Initially this was to be a package to easily create OBDII interfaces, however over its development I have instead created an OBDII interface program. It is designed to run on OSX and the respberrypi. To use simply download the package, make sure you have the OBDII drivers installed, make sure the port is correct in the newOBD class(/dev/ttyUSB0/ or something), connect to your car, and run main.py NOTE: YOU MUST SET UIINDEBUG = False in Main.py IF YOU DO NOT DO THIS SportPyOBD will not connect
A full install guide will be posted here after installing in my FRS.
Help! How do I code the GUI?!
Relax, this project uses tkinter. It is installed with practically every python instalation and is very simple. More info on tkinter here: https://wiki.python.org/moin/TkInter.
Each gui componet is orginized into one 'block' of code, each block has a comment above it stating its function. Each parameter references either the ColorPallet class or the css class. This is desgined so that the program may have easily changable style. Please checkout each class before making changes to GUI parameters.
- Getting NO DATA back from car FIX: Check your init code parameters. make sure you pass the right port arg AND baud rate to the OBD class
- OBD connection errors FIX: The OBD port is fussy, unplug the adapter and then plug it back in making sure it is fully inserted.
- Feel free to open an issue if you find something wrong.