[WORKING] Uses python to communicate with your car. This Library is designed to work with the FRS/BRZ/86 and the raspberry pi.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.idea
protocols
BarGauge.py
DataRecorder.py
FuelTrimGauge.py
Gauge.py
LICENSE
OBDCommand.py
OBDResponse.py
README.md
SportUI.py
SportUI.pyc
UnitsAndScaling.py
carproj.py
codes.py
commands.py
convert.py
decoders.py
main.py
newobd.py
newobd.pyc
obddatatester.py
settings.txt
testdata.txt

README.md

SportPyOBD

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.

Acknowledgements

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.

Prereqs

  • 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 atz
Next test the connection with 0100
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.

Usage

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

Install

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.

Common Problems

  • 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.