passively collect OBD2 data

Thread Starter

cminke

Joined Jun 7, 2014
64
How does one go about integrating a OBD2 circuit onto a project for collecting vehicle data in an easy to read way?
things i need to read
EVERYTHING hahah basically
- low fuel
- low tire pressure
- Wheel position
- speed
- Accelerometer
- gyroscope
- Distance until Empty
- ENG light / MIL
- ext Lights status
ect..

i want to be able to collect that data and use it to
1) Display on screen
2) use the data as an event trigger.


Would pay someone to help me (silently cries)
 
Last edited:

bwilliams60

Joined Nov 18, 2012
1,442
I think they call them scan tools.
if you are planning on collecting raw data and interpreting it into logical reading, you are in for a long and arduous journey which will lead to loss of hair and sanity. There have been many here before who have tried to venture down this road. Data is proprietary for a reason. If you uncover the secret to decoding all of it, let us in on it. Good luck on your journey.
 

Thread Starter

cminke

Joined Jun 7, 2014
64
damn, might have to talk with technical teams from each major company. see if i can get them to collaborate under NDA.

my assumption was that they usually fall under some generic ISO/J number protocol?

might have to just get some data and try and debunk it
 

bwilliams60

Joined Nov 18, 2012
1,442
You can get a CAN sniffer and try to go about it that way or use a PICOSCOPE to try to decipher it. There is no SAE protocol that I am aware of that aligns all the different OEMs and the language they use. Like Imsaid, many have tried. I have not seen anyone with a lot of great success.
 

MrAl

Joined Jun 17, 2014
11,486
How does one go about integrating a OBD2 circuit onto a project for collecting vehicle data in an easy to read way?
things i need to read
EVERYTHING hahah basically
- low fuel
- low tire pressure
- Wheel position
- speed
- Accelerometer
- gyroscope
- Distance until Empty
- ENG light / MIL
- ext Lights status
ect..

i want to be able to collect that data and use it to
1) Display on screen
2) use the data as an event trigger.


Would pay someone to help me (silently cries)
I believe there is a way to do this as i have looked into this in the distant past, maybe 3 or 4 years ago. What i found out was that there are various protocols like you might find in RS232 except much more involved. To start, the initial contact with the computer is a slow baud rate, very slow, and after that it could speed up. I dont remember much else except there are chips made that contact the connect with the computer and i think they are microcontrollers where you can add to the programming or else connect with them, i cant remember all the details now. You should be able to find something on the web but i got my info from people who knew how the basics were done. Not sure if i can find that info now though.
I wanted to find our more about this so i could shut off the "service light" which is not the same as the trouble light, and all it indicates is when you need another oil change. It goes off after two minutes so i didnt bother to do that project after all.
You can also reset the trouble codes but i wasnt too worried about that at the time.
 

Irving

Joined Jan 30, 2016
3,887
my assumption was that they usually fall under some generic ISO/J number protocol?
The generic non-manufacturer-specific codes that an off-the-shelf ODB2 reader can handle, the physical interface and session/transport layer protocols are defined in various parts of SAE J1939 and also ISO 15765 which is now superceded by ISO 14229. You may be able to find copies on the web, though these documents are normally only available to subscribers to SAE or ISO (though university students can often get them through institutional libraries). This document describes the gateway.

You can get a flavour of the complexity by looking at Peak Systems OBD2 API for example.

There is little point in talking to manufacturers under NDA or otherwise, there are many existing off-the-shelf implementations, and third-party interfaces - you'd only be reinventing a wheel! The easiest way to cobble together an interface to a PC is to use the venerable ELM327 chip or USB serial 'VAG-COM' cable - there are many examples of both on eBay. There's some rudimentry software on Github (here's a simple example using a Bluetooth ELM327 equipped interface) plus many old blogs on the subject; I also wrote some stuff back over 15y ago but I no longer have it.
 
Top