Understanding OBD-II live data: the standardised PIDs
Besides fault codes, the OBD-II interface delivers live measurements, the parameter IDs (PIDs). This page explains the standardised PIDs of mode 01 (current data) and mode 09 (vehicle information): name, unit, value range and conversion formula.
What are PIDs?
A scan tool requests a parameter by its PID and converts the response bytes (A, B, C, D) into a reading with a fixed formula. Which PIDs a vehicle supports is reported by the bitmap PIDs 00, 20, 40 and so on. Manufacturer-specific PIDs and values from other control modules are not included here.
Mode 01: current measurements
| PID | Name | Unit | Range | Formula | Bytes |
|---|---|---|---|---|---|
| 00 | PIDs supported [01-20] | bitmap | – | – | 4 |
| 01 | Monitor status since DTCs cleared | bitmap | – | – | 4 |
| 02 | Freeze DTC (DTC that triggered freeze frame) | dtc | – | – | 2 |
| 03 | Fuel system status (system 1 and system 2) | encoded | – | – | 2 |
| 04 | Calculated engine load | % | 0 – 100 | 100/255 * A | 1 |
| 05 | Engine coolant temperature | °C | -40 – 215 | A - 40 | 1 |
| 06 | Short term fuel trim — Bank 1 | % | -100 – 99.2 | 100/128 * A - 100 | 1 |
| 07 | Long term fuel trim — Bank 1 | % | -100 – 99.2 | 100/128 * A - 100 | 1 |
| 08 | Short term fuel trim — Bank 2 | % | -100 – 99.2 | 100/128 * A - 100 | 1 |
| 09 | Long term fuel trim — Bank 2 | % | -100 – 99.2 | 100/128 * A - 100 | 1 |
| 0A | Fuel pressure (gauge pressure) | kPa | 0 – 765 | 3 * A | 1 |
| 0B | Intake manifold absolute pressure | kPa | 0 – 255 | A | 1 |
| 0C | Engine RPM | rpm | 0 – 16383.75 | (256*A + B) / 4 | 2 |
| 0D | Vehicle speed | km/h | 0 – 255 | A | 1 |
| 0E | Timing advance (cylinder 1) | ° before TDC | -64 – 63.5 | A/2 - 64 | 1 |
| 0F | Intake air temperature | °C | -40 – 215 | A - 40 | 1 |
| 10 | Mass air flow rate | g/s | 0 – 655.35 | (256*A + B) / 100 | 2 |
| 11 | Throttle position | % | 0 – 100 | 100/255 * A | 1 |
| 12 | Commanded secondary air status | encoded | – | – | 1 |
| 13 | Oxygen sensors present (in 2 banks) | bitmap | – | – | 1 |
| 14 | Oxygen sensor 1 (Bank 1 Sensor 1) — voltage and short term fuel trim | V; % | 0 – 1.275 | A/200 (voltage); 100/128 * B - 100 (trim) | 2 |
| 15 | Oxygen sensor 2 (Bank 1 Sensor 2) — voltage and short term fuel trim | V; % | 0 – 1.275 | A/200 (voltage); 100/128 * B - 100 (trim) | 2 |
| 16 | Oxygen sensor 3 (Bank 1 Sensor 3) — voltage and short term fuel trim | V; % | 0 – 1.275 | A/200 (voltage); 100/128 * B - 100 (trim) | 2 |
| 17 | Oxygen sensor 4 (Bank 1 Sensor 4) — voltage and short term fuel trim | V; % | 0 – 1.275 | A/200 (voltage); 100/128 * B - 100 (trim) | 2 |
| 18 | Oxygen sensor 5 (Bank 2 Sensor 1) — voltage and short term fuel trim | V; % | 0 – 1.275 | A/200 (voltage); 100/128 * B - 100 (trim) | 2 |
| 19 | Oxygen sensor 6 (Bank 2 Sensor 2) — voltage and short term fuel trim | V; % | 0 – 1.275 | A/200 (voltage); 100/128 * B - 100 (trim) | 2 |
| 1A | Oxygen sensor 7 (Bank 2 Sensor 3) — voltage and short term fuel trim | V; % | 0 – 1.275 | A/200 (voltage); 100/128 * B - 100 (trim) | 2 |
| 1B | Oxygen sensor 8 (Bank 2 Sensor 4) — voltage and short term fuel trim | V; % | 0 – 1.275 | A/200 (voltage); 100/128 * B - 100 (trim) | 2 |
| 1C | OBD standards this vehicle conforms to | encoded | – | – | 1 |
| 1D | Oxygen sensors present (in 4 banks, 2 bits per bank) | bitmap | – | – | 1 |
| 1E | Auxiliary input status (PTO) | bitmap | – | – | 1 |
| 1F | Run time since engine start | s | 0 – 65535 | 256 * A + B | 2 |
| 20 | PIDs supported [21-40] | bitmap | – | – | 4 |
| 21 | Distance traveled with malfunction indicator lamp (MIL) on | km | 0 – 65535 | 256 * A + B | 2 |
| 22 | Fuel rail pressure (relative to manifold vacuum) | kPa | 0 – 5177.265 | 0.079 * (256 * A + B) | 2 |
| 23 | Fuel rail gauge pressure (diesel or petrol direct injection) | kPa | 0 – 655350 | 10 * (256 * A + B) | 2 |
| 24 | Oxygen sensor 1 (Bank 1 Sensor 1) — air-fuel equivalence ratio (lambda) and voltage | ratio; V | 0 – 2 | (2/65536) * (256*A + B) (lambda); (8/65536) * (256*C + D) (voltage) | 4 |
| 25 | Oxygen sensor 2 (Bank 1 Sensor 2) — air-fuel equivalence ratio and voltage | ratio; V | 0 – 2 | (2/65536) * (256*A + B) (lambda); (8/65536) * (256*C + D) (voltage) | 4 |
| 26 | Oxygen sensor 3 (Bank 1 Sensor 3) — air-fuel equivalence ratio and voltage | ratio; V | 0 – 2 | (2/65536) * (256*A + B) (lambda); (8/65536) * (256*C + D) (voltage) | 4 |
| 27 | Oxygen sensor 4 (Bank 1 Sensor 4) — air-fuel equivalence ratio and voltage | ratio; V | 0 – 2 | (2/65536) * (256*A + B) (lambda); (8/65536) * (256*C + D) (voltage) | 4 |
| 28 | Oxygen sensor 5 (Bank 2 Sensor 1) — air-fuel equivalence ratio and voltage | ratio; V | 0 – 2 | (2/65536) * (256*A + B) (lambda); (8/65536) * (256*C + D) (voltage) | 4 |
| 29 | Oxygen sensor 6 (Bank 2 Sensor 2) — air-fuel equivalence ratio and voltage | ratio; V | 0 – 2 | (2/65536) * (256*A + B) (lambda); (8/65536) * (256*C + D) (voltage) | 4 |
| 2A | Oxygen sensor 7 (Bank 2 Sensor 3) — air-fuel equivalence ratio and voltage | ratio; V | 0 – 2 | (2/65536) * (256*A + B) (lambda); (8/65536) * (256*C + D) (voltage) | 4 |
| 2B | Oxygen sensor 8 (Bank 2 Sensor 4) — air-fuel equivalence ratio and voltage | ratio; V | 0 – 2 | (2/65536) * (256*A + B) (lambda); (8/65536) * (256*C + D) (voltage) | 4 |
| 2C | Commanded EGR | % | 0 – 100 | 100/255 * A | 1 |
| 2D | EGR Error | % | -100 – 99.2 | 100/128 * A - 100 | 1 |
| 2E | Commanded evaporative purge | % | 0 – 100 | 100/255 * A | 1 |
| 2F | Fuel tank level | % | 0 – 100 | 100/255 * A | 1 |
| 30 | Warm-ups since codes cleared | count | 0 – 255 | A | 1 |
| 31 | Distance traveled since codes cleared | km | 0 – 65535 | 256 * A + B | 2 |
| 32 | Evaporative system vapor pressure | Pa | -8192 – 8191.75 | ((256*A + B) / 4) - 8192 | 2 |
| 33 | Absolute barometric pressure | kPa | 0 – 255 | A | 1 |
| 34 | Oxygen sensor 1 (Bank 1 Sensor 1) — air-fuel equivalence ratio and current | ratio; mA | -128 – 128 | (2/65536) * (256*A + B) (lambda); (256*C + D)/256 - 128 (current, mA) | 4 |
| 35 | Oxygen sensor 2 (Bank 1 Sensor 2) — air-fuel equivalence ratio and current | ratio; mA | -128 – 128 | (2/65536) * (256*A + B) (lambda); (256*C + D)/256 - 128 (current, mA) | 4 |
| 36 | Oxygen sensor 3 (Bank 1 Sensor 3) — air-fuel equivalence ratio and current | ratio; mA | -128 – 128 | (2/65536) * (256*A + B) (lambda); (256*C + D)/256 - 128 (current, mA) | 4 |
| 37 | Oxygen sensor 4 (Bank 1 Sensor 4) — air-fuel equivalence ratio and current | ratio; mA | -128 – 128 | (2/65536) * (256*A + B) (lambda); (256*C + D)/256 - 128 (current, mA) | 4 |
| 38 | Oxygen sensor 5 (Bank 2 Sensor 1) — air-fuel equivalence ratio and current | ratio; mA | -128 – 128 | (2/65536) * (256*A + B) (lambda); (256*C + D)/256 - 128 (current, mA) | 4 |
| 39 | Oxygen sensor 6 (Bank 2 Sensor 2) — air-fuel equivalence ratio and current | ratio; mA | -128 – 128 | (2/65536) * (256*A + B) (lambda); (256*C + D)/256 - 128 (current, mA) | 4 |
| 3A | Oxygen sensor 7 (Bank 2 Sensor 3) — air-fuel equivalence ratio and current | ratio; mA | -128 – 128 | (2/65536) * (256*A + B) (lambda); (256*C + D)/256 - 128 (current, mA) | 4 |
| 3B | Oxygen sensor 8 (Bank 2 Sensor 4) — air-fuel equivalence ratio and current | ratio; mA | -128 – 128 | (2/65536) * (256*A + B) (lambda); (256*C + D)/256 - 128 (current, mA) | 4 |
| 3C | Catalyst temperature — Bank 1, Sensor 1 | °C | -40 – 6513.5 | (256*A + B) / 10 - 40 | 2 |
| 3D | Catalyst temperature — Bank 2, Sensor 1 | °C | -40 – 6513.5 | (256*A + B) / 10 - 40 | 2 |
| 3E | Catalyst temperature — Bank 1, Sensor 2 | °C | -40 – 6513.5 | (256*A + B) / 10 - 40 | 2 |
| 3F | Catalyst temperature — Bank 2, Sensor 2 | °C | -40 – 6513.5 | (256*A + B) / 10 - 40 | 2 |
| 40 | PIDs supported [41-60] | bitmap | – | – | 4 |
| 41 | Monitor status this drive cycle | bitmap | – | – | 4 |
| 42 | Control module voltage | V | 0 – 65.535 | (256*A + B) / 1000 | 2 |
| 43 | Absolute load value | % | 0 – 25700 | 100/255 * (256*A + B) | 2 |
| 44 | Commanded air-fuel equivalence ratio (lambda) | ratio | 0 – 1.999 | (2 / 65536) * (256*A + B) | 2 |
| 45 | Relative throttle position | % | 0 – 100 | 100/255 * A | 1 |
| 46 | Ambient air temperature | °C | -40 – 215 | A - 40 | 1 |
| 47 | Absolute throttle position B | % | 0 – 100 | 100/255 * A | 1 |
| 48 | Absolute throttle position C | % | 0 – 100 | 100/255 * A | 1 |
| 49 | Accelerator pedal position D | % | 0 – 100 | 100/255 * A | 1 |
| 4A | Accelerator pedal position E | % | 0 – 100 | 100/255 * A | 1 |
| 4B | Accelerator pedal position F | % | 0 – 100 | 100/255 * A | 1 |
| 4C | Commanded throttle actuator | % | 0 – 100 | 100/255 * A | 1 |
| 4D | Time run with MIL on | min | 0 – 65535 | 256*A + B | 2 |
| 4E | Time since trouble codes cleared | min | 0 – 65535 | 256*A + B | 2 |
| 4F | Maximum value for fuel-air equivalence ratio, oxygen sensor voltage, oxygen sensor current, intake manifold absolute pressure | encoded | – | – | 4 |
| 50 | Maximum value for air flow rate from mass air flow sensor (only A used; B, C, D reserved) | g/s | 0 – 2550 | A * 10 | 4 |
| 51 | Fuel type | encoded | – | – | 1 |
| 52 | Ethanol fuel percentage | % | 0 – 100 | 100/255 * A | 1 |
| 53 | Absolute evaporative system vapor pressure | kPa | 0 – 327.675 | (256*A + B) / 200 | 2 |
| 54 | Evaporative system vapor pressure (signed) | Pa | -32767 – 32768 | (256*A + B) - 32767 | 2 |
| 55 | Short term secondary oxygen sensor trim — Bank 1 (A) and Bank 3 (B) | % | -100 – 99.2 | 100/128 * A - 100 (Bank 1); 100/128 * B - 100 (Bank 3) | 2 |
| 56 | Long term secondary oxygen sensor trim — Bank 1 (A) and Bank 3 (B) | % | -100 – 99.2 | 100/128 * A - 100 (Bank 1); 100/128 * B - 100 (Bank 3) | 2 |
| 57 | Short term secondary oxygen sensor trim — Bank 2 (A) and Bank 4 (B) | % | -100 – 99.2 | 100/128 * A - 100 (Bank 2); 100/128 * B - 100 (Bank 4) | 2 |
| 58 | Long term secondary oxygen sensor trim — Bank 2 (A) and Bank 4 (B) | % | -100 – 99.2 | 100/128 * A - 100 (Bank 2); 100/128 * B - 100 (Bank 4) | 2 |
| 59 | Fuel rail absolute pressure | kPa | 0 – 655350 | 10 * (256*A + B) | 2 |
| 5A | Relative accelerator pedal position | % | 0 – 100 | 100/255 * A | 1 |
| 5B | Hybrid battery pack remaining life | % | 0 – 100 | 100/255 * A | 1 |
| 5C | Engine oil temperature | °C | -40 – 215 | A - 40 | 1 |
| 5D | Fuel injection timing | ° | -210 – 301.99 | ((256*A + B) - 26880) / 128 | 2 |
| 5E | Engine fuel rate | L/h | 0 – 3212.75 | (256*A + B) / 20 | 2 |
| 5F | Emission requirements to which vehicle is designed | encoded | – | – | 1 |
| 60 | PIDs supported [61-80] | bitmap | – | – | 4 |
| 61 | Driver's demand engine percent torque | % | -125 – 130 | A - 125 | 1 |
| 62 | Actual engine percent torque | % | -125 – 130 | A - 125 | 1 |
| 63 | Engine reference torque | Nm | 0 – 65535 | 256*A + B | 2 |
| 64 | Engine percent torque at five engine points (idle, peak, reference points) | % | -125 – 130 | A - 125 (idle); B - 125 (point2); C - 125 (point3); D - 125 (point4); E - 125 (point5) | 5 |
| 65 | Auxiliary input/output supported | bitmap | – | – | 2 |
| 66 | Mass air flow sensor (A and B) | g/s | 0 – 2047.96875 | ((256*B + C) / 32) (sensor A); ((256*D + E) / 32) (sensor B) | 5 |
| 67 | Engine coolant temperature (sensor 1 and sensor 2) | °C | -40 – 215 | B - 40 (sensor 1); C - 40 (sensor 2) | 3 |
| 68 | Intake air temperature sensor (multiple, with bitfield support indicator) | encoded | – | – | 7 |
| 78 | Exhaust gas temperature (EGT) — Bank 1, sensors 1-4 | °C | -40 – 6513.5 | ((256*B + C)/10) - 40 (sensor 1); ((256*D + E)/10) - 40 (sensor 2); ((256*F + G)/10) - 40 (sensor 3); ((256*H + I)/10) - 40 (sensor 4) | 9 |
| 79 | Exhaust gas temperature (EGT) — Bank 2, sensors 1-4 | °C | -40 – 6513.5 | ((256*B + C)/10) - 40 (sensor 1); ((256*D + E)/10) - 40 (sensor 2); ((256*F + G)/10) - 40 (sensor 3); ((256*H + I)/10) - 40 (sensor 4) | 9 |
| 7C | Diesel particulate filter (DPF) temperature | encoded | – | – | 9 |
| 7D | NOx NTE (Not-To-Exceed) control area status | encoded | – | – | 1 |
| 7E | PM NTE (Not-To-Exceed) control area status | encoded | – | – | 1 |
| 80 | PIDs supported [81-A0] | bitmap | – | – | 4 |
| 83 | NOx sensor (concentration, supported sensors) | encoded | – | – | 5 |
| 84 | Manifold surface temperature | °C | -40 – 215 | A - 40 | 1 |
| 8E | Engine friction percent torque | % | -125 – 130 | A - 125 | 1 |
| 9D | Engine fuel rate (engine and vehicle, in g/s) | g/s | 0 – 1310.7 | (256*A + B) / 50 (engine fuel rate); (256*C + D) / 50 (vehicle fuel rate) | 4 |
| 9E | Engine exhaust flow rate | g/s | 0 – 13107 | (256*A + B) / 5 | 2 |
| A0 | PIDs supported [A1-C0] | bitmap | – | – | 4 |
| A2 | Cylinder fuel rate | mg/stroke | 0 – 2047.96875 | (256*A + B) / 32 | 2 |
| A6 | Odometer | km | 0 – 429496729.5 | ((A * 16777216) + (B * 65536) + (C * 256) + D) / 10 | 4 |
Mode 09: vehicle information
| PID | Name | Unit | Range | Formula | Bytes |
|---|---|---|---|---|---|
| 00 | Mode 9 PIDs supported [01-20] | bitmap | – | – | 4 |
| 01 | VIN message count (for protocols requiring multi-message VIN) | count | 0 – 255 | A | 1 |
| 02 | Vehicle Identification Number (VIN) | ascii | – | – | 17 |
| 03 | Calibration ID message count | count | 0 – 255 | A | 1 |
| 04 | Calibration ID | ascii | – | – | 16 |
| 05 | Calibration verification number (CVN) message count | count | 0 – 255 | A | 1 |
| 06 | Calibration Verification Number (CVN) | hex | – | – | 4 |
| 07 | In-use performance tracking message count | count | 0 – 255 | A | 1 |
| 08 | In-use performance tracking for spark ignition vehicles (16 counter pairs) | encoded | – | – | 32 |
| 0A | ECU name | ascii | – | – | 20 |
| 0B | In-use performance tracking for compression ignition (diesel) vehicles | encoded | – | – | 32 |
| 0D | Engine serial number (ESN) | ascii | – | – | 32 |
| 0E | Exhaust regulation / type approval number | ascii | – | – | 32 |
Frequently asked questions about live data
Which readings matter most while driving?
Coolant temperature (PID 05), calculated engine load (PID 04), short- and long-term fuel trim (PIDs 06 to 09), intake air temperature (PID 0F) and mass air flow (PID 10) show whether the engine and mixture control work within the expected range. What counts as normal depends on the vehicle; workshop documentation remains authoritative.
Why does my tool show different names or extra values?
Diagnostic apps translate PIDs freely and often add manufacturer-specific parameters. The table gives the standardised names; a different label is not an error.
Can live data prove a defect?
Only with context. A single value outside an expected range is a clue, not a diagnosis. Fault codes, freeze-frame data and appropriate testing belong to it. The fault code decoder explains stored codes.
Data source and limits
The PID tables come from the OBDex database (CC0 1.0) at the pinned revision a9d0220bdb99. Formulas and ranges apply to the standardised PIDs per SAE J1979 / ISO 15031-5 as represented by the source; individual vehicles may deviate. FRALIMO does not provide vehicle diagnostics.
OBD-II PID data: OBDex (CC0 1.0) · 132 PIDs ·