Successful '93 OBD Reading
#1
Successful '93 OBD Reading
So after snagging a 1993 4runner, I wanted to read the OBD (I, not II) data coming out of the system. Why? Because I'm a nerd and there was data to be had...
I put up a screenshot a little while ago of the car idling, but I was able to get the reader to work more reliably and got some data driving around town, check it out! Nothing is in actual units, but I think it's still pretty cool! It only spits data out about once a second, but still pretty rad.
INJ - Injector pulse width
IGN - Ignition timing angle
RPM - RPM...
MAP - Manifold Absolute Pressure (or air/mass flow rate.. not sure which on my truck)
TPS - Throttle position sensor
SPD - Speed.
I'll do more of a write up when I have some time, but it's an arduino sampling the data coming off VF1 from the ECT and being parsed by a python script.
Would people be interested in buying this sort of thing? If there's enough interest, I could look into producing a bunch of them. I'd like to add WiFi/bluetooth communication to it with corresponding iPhone/Android apps too.
Thoughts?
Thanks!
**EDIT: Added better image**
I put up a screenshot a little while ago of the car idling, but I was able to get the reader to work more reliably and got some data driving around town, check it out! Nothing is in actual units, but I think it's still pretty cool! It only spits data out about once a second, but still pretty rad.
INJ - Injector pulse width
IGN - Ignition timing angle
RPM - RPM...
MAP - Manifold Absolute Pressure (or air/mass flow rate.. not sure which on my truck)
TPS - Throttle position sensor
SPD - Speed.
I'll do more of a write up when I have some time, but it's an arduino sampling the data coming off VF1 from the ECT and being parsed by a python script.
Would people be interested in buying this sort of thing? If there's enough interest, I could look into producing a bunch of them. I'd like to add WiFi/bluetooth communication to it with corresponding iPhone/Android apps too.
Thoughts?
Thanks!
**EDIT: Added better image**
Last edited by adahlin; Feb 11, 2013 at 07:32 PM.
#5
#6
I'll do more of a write up when I have some time, but it's an arduino sampling the data coming off VF1 from the ECT and being parsed by a python script.
So I really have no idea what that says, it's all Greek to me, but I can learn. I might be interested, just for poops and giggles.
So I really have no idea what that says, it's all Greek to me, but I can learn. I might be interested, just for poops and giggles.
Trending Topics
#8
Can't do real time without the inline/breakout reader.
It's not so much about the CPU being real slow its more like real busy, and using a very slow serial clock so it doesn't corrupt any of the incoming data.
I had some data saved on this output but I can't seem to find it.
Adahlin, What are the serial specifics, output voltage, datarate, encoding, stream length and data positions?
It's not so much about the CPU being real slow its more like real busy, and using a very slow serial clock so it doesn't corrupt any of the incoming data.
So I really have no idea what that says, it's all Greek to me, but I can learn. I might be interested, just for poops and giggles
Adahlin, What are the serial specifics, output voltage, datarate, encoding, stream length and data positions?
#10
I'll do more of a write up when I have some time, but it's an arduino sampling the data coming off VF1 from the ECT and being parsed by a python script.
So I really have no idea what that says, it's all Greek to me, but I can learn. I might be interested, just for poops and giggles.
So I really have no idea what that says, it's all Greek to me, but I can learn. I might be interested, just for poops and giggles.
#11
BUT there is something even better: fuel trim. adahlin is pulling the serial stream from VF1 when TE2 is grounded. The serial stream does contain a code for Learned A/F Value (fuel trim), but you can get that directly by reading VF1 with TE2 (and TE1) open. It is 5 voltage steps (2.5v nominal). With voltage less than 2.5v, the system is decreasing fuel from the base injector open time in order to get the mixture correct. You could use that reading to tell what the ECU thinks is about to happen.
#13
It's "on my list" to implement, but the reports from others are very good. I believe he uses bit-banging to read the slightly-non-standard serial stream.
#15
Wow, this thing totally fell off the radar for me. How has it already been over a year?!
I'll see if I can get this thing going again and post it somewhere on the internet so people can get at it. I just checked out the other thread with a VB implementation... cool stuff!
I'll see if I can get this thing going again and post it somewhere on the internet so people can get at it. I just checked out the other thread with a VB implementation... cool stuff!
#16
I am very interested to help get this up and running. I have lots of experience with arduino, and I'm about to buy a 128x64 graphic lcd screen to start messing around with a visual interface for exactly this.
I do lots of interface design, and with the base connection to the ECU already done it would be a snap for me to make a piggyback LCD screen and a custom display for all of the data
As of now I'm thinking I want it to display
Left Col
ECT (engine coolant temp)
IAT (intake air temp)
AFM (air flow meter flapper)
TPS (throttle position)
Right Col
RPM
SPD
VAC (vacuum - would require another sensor)
AFR (rough air/fuel based on ecu fuel trim)
Let me know if you're interested. I would love to collaborate! Maybe we could get a kit going. Do you have any experience with pcb design/printing?
I do lots of interface design, and with the base connection to the ECU already done it would be a snap for me to make a piggyback LCD screen and a custom display for all of the data
As of now I'm thinking I want it to display
Left Col
ECT (engine coolant temp)
IAT (intake air temp)
AFM (air flow meter flapper)
TPS (throttle position)
Right Col
RPM
SPD
VAC (vacuum - would require another sensor)
AFR (rough air/fuel based on ecu fuel trim)
Let me know if you're interested. I would love to collaborate! Maybe we could get a kit going. Do you have any experience with pcb design/printing?
#17
Google "Express PCB" for a great schematic/board layout app and PC board fab service. The tools are free, and the boards themselves are not all that expensive, and good quality. Really simple to use, too.
Jenny, I hate to be the bearer of bad news, but I'm guessing your vehicle doesn't have that bit stream available on the diag connector. I think they didn't bring that out until around '92 or '93. I know Gevo tried to find it on his vehicle ('91, I think), but was unsuccessful. There may be other ways you can get at the data, but probably would require more reverse engineering.
Jenny, I hate to be the bearer of bad news, but I'm guessing your vehicle doesn't have that bit stream available on the diag connector. I think they didn't bring that out until around '92 or '93. I know Gevo tried to find it on his vehicle ('91, I think), but was unsuccessful. There may be other ways you can get at the data, but probably would require more reverse engineering.
#18
Ron -
You know JennyGirl won't shy away from looking directly at the data (https://www.yotatech.com/forums/f116/mpguino-283777/) . As you yourself have lamented, that 1.25 second refresh time is sort of limiting.
Inspired by JennyGirl, I just installed my own MPGuino! The electronics were all done by someone else, the mechanical installation (fabbing a box, hooking up the wiring) took a bunch of time. Once I wring out the calibration, I'll report further.
You know JennyGirl won't shy away from looking directly at the data (https://www.yotatech.com/forums/f116/mpguino-283777/) . As you yourself have lamented, that 1.25 second refresh time is sort of limiting.
Inspired by JennyGirl, I just installed my own MPGuino! The electronics were all done by someone else, the mechanical installation (fabbing a box, hooking up the wiring) took a bunch of time. Once I wring out the calibration, I'll report further.
#19
Does the arduino have a built in ADC and multiplexer? If so, it wouldn't be all that difficult to splice into the harness and get the signals you need, and as suggested, you could have a much faster update rate than 1.25 times/second. Also one could pick up the O2 sensor and the fuel trim, which are not present in the factory data stream.
Electronic vacuum sensors are available from DigiKey for about $16, and are quite accurate and sensitive. I have one that will easily resolve .05" of vacuum.
Electronic vacuum sensors are available from DigiKey for about $16, and are quite accurate and sensitive. I have one that will easily resolve .05" of vacuum.
#20
scope- I was considering that as an option as well! So it's good to hear your input with it. The regular arduino has 6 ADC inputs, and the mega has way more. I was liking the 1 wire connection over splicing so many cables, but I also didn't know that would mean a max 1sec refresh rate.. that is pretty limiting. Ideally I want it to be able to display a graph that moves smoothly during driving... logging as you go
Congrats on the mpguino! You are going to love it. Just took a trip down to San Diego again and now with the top on and electric fan (shut off at speed on highway), I clocked a 27.5mpg trip
I just want to completely nerd this truck out
Anyway, I suppose I will just try tapping into the harness to get the voltages into the arduino. Ideally would like it to refresh 4-5x a second.
Thanks for the tip about the vac sensor!
Congrats on the mpguino! You are going to love it. Just took a trip down to San Diego again and now with the top on and electric fan (shut off at speed on highway), I clocked a 27.5mpg trip

I just want to completely nerd this truck out
Anyway, I suppose I will just try tapping into the harness to get the voltages into the arduino. Ideally would like it to refresh 4-5x a second.
Thanks for the tip about the vac sensor!



