Saturday, March 9, 2019

Understanding OBD

Under construction

Originally I had planned to talk about OBD Eleven here, but for the time being I am just going to describe OBD interface and how it works...

OBD Protocol:
This page by Klav Karr is very complete. Check all the info, not only that page, like the hardware level info and the standard fault codes.
Link
Wikipedia OBD
Wikipedia PIDs (OBD Parameter IDs)

This guy explains what adaptation, long coding, etc... is. Then posts a lot of the info corresponding to all those codes. Notice that OBD calls

Somehow there is this term out there about "measuring blocks". Not sure if it is universal or a function name on the VCDS software (from Ross-Tech). Regardless, what matters is that all the info you can pull from the car through OBD is divided in groups of 4 registers. Somehow in OBDEleven they talk about "channels" instead of groups. Regardless, each group or channels has 4 values (each for one thing, and not always all are used). Ross-Tech info on standard measuring block group. An example of key groups for my fuel cuts debugging (can see more of the word usage here) is listed below. I highlight in red the ones that I am finally plotting for debugging:
  1. Group 1:
    1. RPM
  2. Group 2:
    1. RPM (yes, again, just to illustrate that there can be repeated values)
    2. Load (%). I believe this refers to the car engine load (?)
  3. Group 3:
    1. N/A
    2. N/A
    3. Throttle (%)
  4. Group 103: (notice how the previous link actually has different stuff in here, as I think there are no standards...)
    1. Fuel pressure (Low). Low means low pressure, not low limit or something like that. It is basically the one produced by the in-tank pump (lpfp).
  5. Group 106:
    1. Fuel pressure (High). High here refers to the high pressure and this value should be the same as the group 230 #2.
    2. Load (%). The word load applies to different engines... In this case it is referring to the LPFP and it has nothing to do with the group 2 #2. As these pumps are usually PWM pumps, it also refers to the duty cycle of the control signal.
  6. Group 230:
    1. Fuel Rail Pressure: Commanded Fuel Pressure (aka specified). Fuel rail refers to the high pressure circuit, the one hitting the cylinders. Commanded because is what the ECM wants to get but controlling the hpfp.
    2. Fuel Rail Pressure: Actual Fuel Pressure.
    3. Fuel Rail Pressure: Fuel Pressure Difference (between 1 and 2). You can just compute this but I guess they provide it in case you want to plot that for debugging, real time...
  7. Group 231
    1. Fuel Pressure: Commanded Fuel Pressure (aka specified). Usually, if nothing is said, fuel pressure refers to the low one. Sometimes they say "Low" (as used above). This number should be same as group 103, #1.
    2. Fuel Pressure: Actual Fuel Pressure.
    3. Load (%) refers here to the load of the in-tank fuel pump (lpfp). Same as group 106 #2...
Good news is that you can't break anything by looking at this. Looks like OBD computer gives not only the register but also what the units are. So, the software can try to interpret the Byte (?) it gets. Need to learn more about the OBD memory. It also looks like these may not be standard across vehicles. Probably some are but many are not.

In OBDEleven, you access it by going to the right control unit and clicking in Live data. Once there you can also plot it (click the little graph icon on top). It is annoying because I don't think you can save the graph settings so every capture you have to retype it. Got to understand this better...

Can you really buy an OBD reader for $2?!?
The car hacker handbook

1 comment: