GithubHelp home page GithubHelp logo

birchjd / piobdii Goto Github PK

View Code? Open in Web Editor NEW
261.0 261.0 71.0 313 KB

ODBII graphic interface on a Raspberry Pi computer, using an ELM327 Bluetooth/USB device. Read and display engine data, OBDII Trouble Codes & Descriptions Using Python. YouTube video: https://www.youtube.com/watch?v=yTRAhubZhsU

Python 100.00%

piobdii's People

Contributors

birchjd avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

piobdii's Issues

USB 327ELM

Hi,
First, I would like to thank you for your work. I really like it and i'm trying to set it up in my car.
Even though i have an USB 327ELM it doesn't show much information of my car (Toyota Yaris 2003 D-4D)
It shows me a warning like "it may be fake adaptator" but it is strange because it is USB and i still can see rpm for example or km/h.
And i am using raspberry 3 desktop version.

Hello, nice project !

Hello,
I am not a developer.
I am looking for a project (read OBD information in USB or WIFI) as yours to use it in my car on a Pi Zero W.
This one must manage MotionEye as well as RaspAp.
I wish a display without used GUI (a bit like "htop") for limited resources and that it is readable by a human (no hex).
Is this possible from your project?
Thank you for your reply.

No CanBUS

My vehicle doesn't have canbus! How do i read fault codes from the K-Line? Can you point me on a direction?

strange output after connection

First and foremost, absolutely love this project! I am able to successfully connect to my ODBII bluetooth adapter.

When I initiate your software, it loads and states that is connecting to the CAN BUS; however, it never connects. When i close the software, there are the following errors in the terminal:

"invalid literal for int() with base 16: 'CH' "

I'm not that great with Python otherwise I'd inspect the code myself. Is this a quick fix item?

SyntaxError

Hello, when I try to launch « python PiOBDII.py » :
pi@LaCaseMove:~/PiOBDII $ python PiOBDII.py Traceback (most recent call last): File "PiOBDII.py", line 43, in <module> import ELM327 File "/home/pi/PiOBDII/ELM327.py", line 736 SyntaxError: Non-ASCII character '\xe2' in file /home/pi/PiOBDII/ELM327.py on line 736, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details

ModuleNotFoundError: No module named 'reportlab'

I have cloned the code from GitHub and also installed all the required packages to run the program PiOBDII but still every time I try to run the program it gives me this error:
Annotation 2020-06-16 125645
Please help me with this as soon as you can.

Conversion Metric to US Standard

I've done the computations and am displaying "corrected" US standard Speed, RPM, Temp etc, but am having issue with manipulating Text display, to reflect the change. eg 45 MPH displays as 45 km/H and Coolant Temp displays 120 C rather than 120 F ... Can you push me in the right direction please.
Also, would like to spin off changes only for these conversions, and additional PID's additions if you wouldn't mind.
Coolant Temp -- Result = ((int(Response, 16) - 40)*1.8) + 32
Speed -- Result = int(Response[:2], 16)/1.60934

FAILED TO INITIALIZE ELM327 DEVICE

I can not connect to my car, the screen just shows
FAILED TO INITIALIZE ELM327 DEVICE.
FAILED TO CONNECT TO ELM327 DEVICE.
my car is Ford Everest 2010 which used CAN (11/500kb)
and I am using Raspberry Pi 3 which already integrated Bluetooth inside so i don't need to use a USB Bluetooth dongle. So i think the serial port that i am using to connect Bluetooth is rfcomm, not USB port.
what do I need to do to make it works, I am not a coder? Please help me !

Connection

Is there anyone that help me with this project??!! I"M DESPERATE

text my phone! 9015058396

Multiple ECU Handling

Hello,

First, thank you for the amazing work ! I was really new over the OBD-II standard and I could have ramp-up on this thanks to the script.

I do not believe I found a bug but this is maybe kind of future improvements. For example, my car is a Renault Clio IV from 2016 and when I am requesting for the "0101" or "0100" the ELM gives back 12 bytes of data (if I do not count the \n ) which can be this :

>0100
41 00 BE 3E A8 13
41 00 88 18 00 11

>0101
41 01 00 07 A1 00
41 01 00 04 00 00

And in your script you consider first 2 bytes as the prune data, and the next 4 bytes are used for interpretation which means the second word I got back is not processed.
After some researches, it figures that several ECU may respond to any OBD service. And after turning on the hidden frame headers with the AT H1 command, it seems that the first word is coming from the "7E8" guy (the Engine Control Unit) and the other from the "7E9" guy (the Transmission Control Unit) and I am not sure if Engine is always answering the first or not.

For instance I had some DTC from the TCU and I had to make small fixes to mask the headers when doing the AT commands because in the actual script snapshot, it did not show up.

I don't know what could be the best way to improve it and if you already heard of that but at least you are now aware.

(In terms of hardware I have a OBDII-2-UART from Sparkfun with a STN1110 chip (elm v1.4b) which is not categorized as a "Fake ELM device" by your last commit :) )

B1937 diagnostic

Thanks for this work! I'm planning to run your code on a Windows PC through an ELM USB cable and specifically have an issue with the passenger side airbag (I believe that's code B1937) on my Ford F150. Any thoughts on Python calls that might ping B1937? Diagnosing or resetting? Thanks again!

Cannot print PDF if vehicle does not supply VIN

In pyOBDII.py lines 530 and on, the filename assumes that the vehicle VIN can be retrieved via the 0902 command.
In my case (1996 Saab 900) this command returns N/A
So the filename is constructed as SAVE/date..N/A.pdf which cannot be written as the second / is interpreted as a directory separator.
In my case I just commented out line 533 and added
FileName += '.pdf'

However this is not the proper solution

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.