OBD-II PIDs
Template:Short description Script error: No such module "Unsubst". OBD-II PIDs (On-board diagnostics Parameter IDs) are codes used to request data from a vehicle, used as a diagnostic tool.
SAE standard J1979 defines many OBD-II PIDs. All on-road vehicles and trucks sold in North America are required to support a subset of these codes, primarily for state mandated emissions inspections. Manufacturers also define additional PIDs specific to their vehicles. Though not mandated, many motorcycles also support OBD-II PIDs.
In 1996, light duty vehicles (less than Script error: No such module "convert".) were the first to be mandated followed by medium duty vehicles (Script error: No such module "convert".) in 2005.[1] They are both required to be accessed through a standardized data link connector defined by SAE J1962.
Heavy duty vehicles (greater than Script error: No such module "convert".) made after 2010,[1] for sale in the US are allowed to support OBD-II diagnostics through SAE standard J1939-13 (a round diagnostic connector) according to CARB in title 13 CCR 1971.1. Some heavy duty trucks in North America use the SAE J1962 OBD-II diagnostic connector that is common with passenger cars, notably Mack and Volvo Trucks, however they use 29 bit CAN identifiers (unlike 11 bit headers used by passenger cars).
Services / Modes
There are 10 diagnostic services described in the latest OBD-II standard SAE J1979. Before 2002, J1979 referred to these services as "modes". They are as follows:
| Service / Mode (hex) | Description |
|---|---|
| <templatestyles src="Mono/styles.css" />01 | Show current data |
| <templatestyles src="Mono/styles.css" />02 | Show freeze frame data |
| <templatestyles src="Mono/styles.css" />03 | Show stored Diagnostic Trouble Codes |
| <templatestyles src="Mono/styles.css" />04 | Clear Diagnostic Trouble Codes and stored values |
| <templatestyles src="Mono/styles.css" />05 | Test results, oxygen sensor monitoring (non CAN only) |
| <templatestyles src="Mono/styles.css" />06 | Test results, other component/system monitoring (Test results, oxygen sensor monitoring for CAN only) |
| <templatestyles src="Mono/styles.css" />07 | Show pending Diagnostic Trouble Codes (detected during current or last driving cycle) |
| <templatestyles src="Mono/styles.css" />08 | Control operation of on-board component/system |
| <templatestyles src="Mono/styles.css" />09 | Request vehicle information |
| <templatestyles src="Mono/styles.css" />0A | Permanent Diagnostic Trouble Codes (DTCs) (Cleared DTCs) |
Vehicle manufacturers are not required to support all services. Each manufacturer may define additional services above #9 (e.g.: service 22 as defined by SAE J2190 for Ford/GM, service 21 for Toyota) for other information e.g. the voltage of the traction battery in a hybrid electric vehicle (HEV).[2]
The nonOBD UDS services start at 0x10 to avoid overlap of ID-range.
Standard PIDs
The table below shows the standard OBD-II PIDs as defined by SAE J1979. The expected response for each PID is given, along with information on how to translate the response into meaningful data. Again, not all vehicles will support all PIDs and there can be manufacturer-defined custom PIDs that are not defined in the OBD-II standard.
Note that services 01 and 02 are basically identical, except that service 01 provides current information, whereas service 02 provides a snapshot of the same data taken at the point when the last diagnostic trouble code was set. The exceptions are PID 01, which is only available in service 01, and PID 02, which is only available in service 02. If service 02 PID 02 returns zero, then there is no snapshot and all other service 02 data is meaningless.
When using Bit-Encoded-Notation, quantities like C4 means bit 4 from data byte C. Each bit is numbered from 0 to 7, so 7 is the most significant bit and 0 is the least significant bit (See below).
| A | B | C | D | ||||||||||||||||||||||||||||
| A7 | A6 | A5 | A4 | A3 | A2 | A1 | A0 | B7 | B6 | B5 | B4 | B3 | B2 | B1 | B0 | C7 | C6 | C5 | C4 | C3 | C2 | C1 | C0 | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
Service <templatestyles src="Mono/styles.css" />01 - Show current data
| PIDs (hex) |
PID (Dec) |
Data bytes returned | Description | Min value | Max value | Units | FormulaTemplate:Efn |
|---|---|---|---|---|---|---|---|
| <templatestyles src="Mono/styles.css" />00 | <templatestyles src="Mono/styles.css" />0 | 4 | PIDs supported [$01 - $20] | Bit encoded [A7..D0] == [PID $01..PID $20] See below | |||
| <templatestyles src="Mono/styles.css" />01 | <templatestyles src="Mono/styles.css" />1 | 4 | Monitor status since DTCs cleared. (Includes malfunction indicator lamp (MIL), status and number of DTCs, components tests, DTC readiness checks) | Bit encoded. See below | |||
| <templatestyles src="Mono/styles.css" />02 | <templatestyles src="Mono/styles.css" />2 | 2 | DTC that caused freeze frame to be stored. | Decoded as in service 3 | |||
| <templatestyles src="Mono/styles.css" />03 | <templatestyles src="Mono/styles.css" />3 | 2 | Fuel system status | Bit encoded. See below | |||
| <templatestyles src="Mono/styles.css" />04 | <templatestyles src="Mono/styles.css" />4 | 1 | Calculated engine load | 0 | 100 | % | (or ) |
| <templatestyles src="Mono/styles.css" />05 | <templatestyles src="Mono/styles.css" />5 | 1 | Engine coolant temperature | -40 | 215 | °C | |
| <templatestyles src="Mono/styles.css" />06 | <templatestyles src="Mono/styles.css" />6 | 1 | Short term fuel trim (STFT)—Bank 1 | -100 (Reduce Fuel: Too Rich) | 99.2 (Add Fuel: Too Lean) | % | (or ) |
| <templatestyles src="Mono/styles.css" />07 | <templatestyles src="Mono/styles.css" />7 | 1 | Long term fuel trim (LTFT)—Bank 1 | ||||
| <templatestyles src="Mono/styles.css" />08 | <templatestyles src="Mono/styles.css" />8 | 1 | Short term fuel trim (STFT)—Bank 2 | ||||
| <templatestyles src="Mono/styles.css" />09 | <templatestyles src="Mono/styles.css" />9 | 1 | Long term fuel trim (LTFT)—Bank 2 | ||||
| <templatestyles src="Mono/styles.css" />0A | <templatestyles src="Mono/styles.css" />10 | 1 | Fuel pressure (gauge pressure) | 0 | 765 | kPa | |
| <templatestyles src="Mono/styles.css" />0B | <templatestyles src="Mono/styles.css" />11 | 1 | Intake manifold absolute pressure | 0 | 255 | kPa | |
| <templatestyles src="Mono/styles.css" />0C | <templatestyles src="Mono/styles.css" />12 | 2 | Engine speed | 0 | 16,383.75 | rpm | |
| <templatestyles src="Mono/styles.css" />0D | <templatestyles src="Mono/styles.css" />13 | 1 | Vehicle speed | 0 | 255 | km/h | |
| <templatestyles src="Mono/styles.css" />0E | <templatestyles src="Mono/styles.css" />14 | 1 | Timing advance | -64 | 63.5 | ° before TDC | |
| <templatestyles src="Mono/styles.css" />0F | <templatestyles src="Mono/styles.css" />15 | 1 | Intake air temperature | -40 | 215 | °C | |
| <templatestyles src="Mono/styles.css" />10 | <templatestyles src="Mono/styles.css" />16 | 2 | Mass air flow sensor (MAF) air flow rate | 0 | 655.35 | g/s | |
| <templatestyles src="Mono/styles.css" />11 | <templatestyles src="Mono/styles.css" />17 | 1 | Throttle position | 0 | 100 | % | |
| <templatestyles src="Mono/styles.css" />12 | <templatestyles src="Mono/styles.css" />18 | 1 | Commanded secondary air status | Bit encoded. See below | |||
| <templatestyles src="Mono/styles.css" />13 | <templatestyles src="Mono/styles.css" />19 | 1 | Oxygen sensors present (in 2 banks) | [A0..A3] == Bank 1, Sensors 1-4. [A4..A7] == Bank 2... | |||
| <templatestyles src="Mono/styles.css" />14 | <templatestyles src="Mono/styles.css" />20 | 2 | Oxygen Sensor 1 A: Voltage B: Short term fuel trim |
0 -100 |
1.275 99.2 |
V
% |
(if B==$FF, sensor is not used in trim calculation) |
| <templatestyles src="Mono/styles.css" />15 | <templatestyles src="Mono/styles.css" />21 | 2 | Oxygen Sensor 2 A: Voltage B: Short term fuel trim | ||||
| <templatestyles src="Mono/styles.css" />16 | <templatestyles src="Mono/styles.css" />22 | 2 | Oxygen Sensor 3 A: Voltage B: Short term fuel trim | ||||
| <templatestyles src="Mono/styles.css" />17 | <templatestyles src="Mono/styles.css" />23 | 2 | Oxygen Sensor 4 A: Voltage B: Short term fuel trim | ||||
| <templatestyles src="Mono/styles.css" />18 | <templatestyles src="Mono/styles.css" />24 | 2 | Oxygen Sensor 5 A: Voltage B: Short term fuel trim | ||||
| <templatestyles src="Mono/styles.css" />19 | <templatestyles src="Mono/styles.css" />25 | 2 | Oxygen Sensor 6 A: Voltage B: Short term fuel trim | ||||
| <templatestyles src="Mono/styles.css" />1A | <templatestyles src="Mono/styles.css" />26 | 2 | Oxygen Sensor 7 A: Voltage B: Short term fuel trim | ||||
| <templatestyles src="Mono/styles.css" />1B | <templatestyles src="Mono/styles.css" />27 | 2 | Oxygen Sensor 8 A: Voltage B: Short term fuel trim | ||||
| <templatestyles src="Mono/styles.css" />1C | <templatestyles src="Mono/styles.css" />28 | 1 | OBD standards this vehicle conforms to | 1 | 250 | enumerated. See below | |
| <templatestyles src="Mono/styles.css" />1D | <templatestyles src="Mono/styles.css" />29 | 1 | Oxygen sensors present (in 4 banks) | Similar to PID $13, but [A0..A7] == [B1S1, B1S2, B2S1, B2S2, B3S1, B3S2, B4S1, B4S2] | |||
| <templatestyles src="Mono/styles.css" />1E | <templatestyles src="Mono/styles.css" />30 | 1 | Auxiliary input status | A0 == Power Take Off (PTO) status (1 == active) [A1..A7] not used | |||
| <templatestyles src="Mono/styles.css" />1F | <templatestyles src="Mono/styles.css" />31 | 2 | Run time since engine start | 0 | 65,535 | s | |
| <templatestyles src="Mono/styles.css" />20 | <templatestyles src="Mono/styles.css" />32 | 4 | PIDs supported [$21 - $40] | Bit encoded [A7..D0] == [PID $21..PID $40] See below | |||
| <templatestyles src="Mono/styles.css" />21 | <templatestyles src="Mono/styles.css" />33 | 2 | Distance traveled with malfunction indicator lamp (MIL) on | 0 | 65,535 | km | |
| <templatestyles src="Mono/styles.css" />22 | <templatestyles src="Mono/styles.css" />34 | 2 | Fuel Rail Pressure (relative to manifold vacuum) | 0 | 5177.265 | kPa | |
| <templatestyles src="Mono/styles.css" />23 | <templatestyles src="Mono/styles.css" />35 | 2 | Fuel Rail Gauge Pressure (diesel, or gasoline direct injection) | 0 | 655,350 | kPa | |
| <templatestyles src="Mono/styles.css" />24 | <templatestyles src="Mono/styles.css" />36 | 4 | Oxygen Sensor 1 AB: Air-Fuel Equivalence Ratio (lambda,λ) CD: Voltage |
0 0 |
< 2 < 8 |
ratio V |
|
| <templatestyles src="Mono/styles.css" />25 | <templatestyles src="Mono/styles.css" />37 | 4 | Oxygen Sensor 2 AB: Air-Fuel Equivalence Ratio (lambda,λ) CD: Voltage | ||||
| <templatestyles src="Mono/styles.css" />26 | <templatestyles src="Mono/styles.css" />38 | 4 | Oxygen Sensor 3 AB: Air-Fuel Equivalence Ratio (lambda,λ) CD: Voltage | ||||
| <templatestyles src="Mono/styles.css" />27 | <templatestyles src="Mono/styles.css" />39 | 4 | Oxygen Sensor 4 AB: Air-Fuel Equivalence Ratio (lambda,λ) CD: Voltage | ||||
| <templatestyles src="Mono/styles.css" />28 | <templatestyles src="Mono/styles.css" />40 | 4 | Oxygen Sensor 5 AB: Air-Fuel Equivalence Ratio (lambda,λ) CD: Voltage | ||||
| <templatestyles src="Mono/styles.css" />29 | <templatestyles src="Mono/styles.css" />41 | 4 | Oxygen Sensor 6 AB: Air-Fuel Equivalence Ratio (lambda,λ) CD: Voltage | ||||
| <templatestyles src="Mono/styles.css" />2A | <templatestyles src="Mono/styles.css" />42 | 4 | Oxygen Sensor 7 AB: Air-Fuel Equivalence Ratio (lambda,λ) CD: Voltage | ||||
| <templatestyles src="Mono/styles.css" />2B | <templatestyles src="Mono/styles.css" />43 | 4 | Oxygen Sensor 8 AB: Air-Fuel Equivalence Ratio (lambda,λ) CD: Voltage | ||||
| <templatestyles src="Mono/styles.css" />2C | <templatestyles src="Mono/styles.css" />44 | 1 | Commanded EGR | 0 | 100 | % | |
| <templatestyles src="Mono/styles.css" />2D | <templatestyles src="Mono/styles.css" />45 | 1 | EGR Error | -100 | 99.2 | % | |
| <templatestyles src="Mono/styles.css" />2E | <templatestyles src="Mono/styles.css" />46 | 1 | Commanded evaporative purge | 0 | 100 | % | |
| <templatestyles src="Mono/styles.css" />2F | <templatestyles src="Mono/styles.css" />47 | 1 | Fuel Tank Level Input | 0 | 100 | % | |
| <templatestyles src="Mono/styles.css" />30 | <templatestyles src="Mono/styles.css" />48 | 1 | Warm-ups since codes cleared | 0 | 255 | ||
| <templatestyles src="Mono/styles.css" />31 | <templatestyles src="Mono/styles.css" />49 | 2 | Distance traveled since codes cleared | 0 | 65,535 | km | |
| <templatestyles src="Mono/styles.css" />32 | <templatestyles src="Mono/styles.css" />50 | 2 | Evap. System Vapor Pressure | -8,192 | 8191.75 | Pa |
(AB is two's complement signed)[3] |
| <templatestyles src="Mono/styles.css" />33 | <templatestyles src="Mono/styles.css" />51 | 1 | Absolute Barometric Pressure | 0 | 255 | kPa | |
| <templatestyles src="Mono/styles.css" />34 | <templatestyles src="Mono/styles.css" />52 | 4 | Oxygen Sensor 1 AB: Air-Fuel Equivalence Ratio (lambda,λ) CD: Current |
0 -128 |
< 2 <128 |
ratio mA |
|
| <templatestyles src="Mono/styles.css" />35 | <templatestyles src="Mono/styles.css" />53 | 4 | Oxygen Sensor 2 AB: Air-Fuel Equivalence Ratio (lambda,λ) CD: Current | ||||
| <templatestyles src="Mono/styles.css" />36 | <templatestyles src="Mono/styles.css" />54 | 4 | Oxygen Sensor 3 AB: Air-Fuel Equivalence Ratio (lambda,λ) CD: Current | ||||
| <templatestyles src="Mono/styles.css" />37 | <templatestyles src="Mono/styles.css" />55 | 4 | Oxygen Sensor 4 AB: Air-Fuel Equivalence Ratio (lambda,λ) CD: Current | ||||
| <templatestyles src="Mono/styles.css" />38 | <templatestyles src="Mono/styles.css" />56 | 4 | Oxygen Sensor 5 AB: Air-Fuel Equivalence Ratio (lambda,λ) CD: Current | ||||
| <templatestyles src="Mono/styles.css" />39 | <templatestyles src="Mono/styles.css" />57 | 4 | Oxygen Sensor 6 AB: Air-Fuel Equivalence Ratio (lambda,λ) CD: Current | ||||
| <templatestyles src="Mono/styles.css" />3A | <templatestyles src="Mono/styles.css" />58 | 4 | Oxygen Sensor 7 AB: Air-Fuel Equivalence Ratio (lambda,λ) CD: Current | ||||
| <templatestyles src="Mono/styles.css" />3B | <templatestyles src="Mono/styles.css" />59 | 4 | Oxygen Sensor 8 AB: Air-Fuel Equivalence Ratio (lambda,λ) CD: Current | ||||
| <templatestyles src="Mono/styles.css" />3C | <templatestyles src="Mono/styles.css" />60 | 2 | Catalyst Temperature: Bank 1, Sensor 1 | -40 | 6,513.5 | °C | |
| <templatestyles src="Mono/styles.css" />3D | <templatestyles src="Mono/styles.css" />61 | 2 | Catalyst Temperature: Bank 2, Sensor 1 | ||||
| <templatestyles src="Mono/styles.css" />3E | <templatestyles src="Mono/styles.css" />62 | 2 | Catalyst Temperature: Bank 1, Sensor 2 | ||||
| <templatestyles src="Mono/styles.css" />3F | <templatestyles src="Mono/styles.css" />63 | 2 | Catalyst Temperature: Bank 2, Sensor 2 | ||||
| <templatestyles src="Mono/styles.css" />40 | <templatestyles src="Mono/styles.css" />64 | 4 | PIDs supported [$41 - $60] | Bit encoded [A7..D0] == [PID $41..PID $60] See below | |||
| <templatestyles src="Mono/styles.css" />41 | <templatestyles src="Mono/styles.css" />65 | 4 | Monitor status this drive cycle | Bit encoded. See below | |||
| <templatestyles src="Mono/styles.css" />42 | <templatestyles src="Mono/styles.css" />66 | 2 | Control module voltage | 0 | 65.535 | V | |
| <templatestyles src="Mono/styles.css" />43 | <templatestyles src="Mono/styles.css" />67 | 2 | Absolute load value | 0 | 25,700 | % | |
| <templatestyles src="Mono/styles.css" />44 | <templatestyles src="Mono/styles.css" />68 | 2 | Commanded Air-Fuel Equivalence Ratio (lambda,λ) | 0 | < 2 | ratio | |
| <templatestyles src="Mono/styles.css" />45 | <templatestyles src="Mono/styles.css" />69 | 1 | Relative throttle position | 0 | 100 | % | |
| <templatestyles src="Mono/styles.css" />46 | <templatestyles src="Mono/styles.css" />70 | 1 | Ambient air temperature | -40 | 215 | °C | |
| <templatestyles src="Mono/styles.css" />47 | <templatestyles src="Mono/styles.css" />71 | 1 | Absolute throttle position B | 0 | 100 | % | |
| <templatestyles src="Mono/styles.css" />48 | <templatestyles src="Mono/styles.css" />72 | 1 | Absolute throttle position C | ||||
| <templatestyles src="Mono/styles.css" />49 | <templatestyles src="Mono/styles.css" />73 | 1 | Accelerator pedal position D | ||||
| <templatestyles src="Mono/styles.css" />4A | <templatestyles src="Mono/styles.css" />74 | 1 | Accelerator pedal position E | ||||
| <templatestyles src="Mono/styles.css" />4B | <templatestyles src="Mono/styles.css" />75 | 1 | Accelerator pedal position F | ||||
| <templatestyles src="Mono/styles.css" />4C | <templatestyles src="Mono/styles.css" />76 | 1 | Commanded throttle actuator | ||||
| <templatestyles src="Mono/styles.css" />4D | <templatestyles src="Mono/styles.css" />77 | 2 | Time run with MIL on | 0 | 65,535 | min | |
| <templatestyles src="Mono/styles.css" />4E | <templatestyles src="Mono/styles.css" />78 | 2 | Time since trouble codes cleared | ||||
| <templatestyles src="Mono/styles.css" />4F | <templatestyles src="Mono/styles.css" />79 | 4 | Maximum value for Fuel–Air equivalence ratio, oxygen sensor voltage, oxygen sensor current, and intake manifold absolute pressure | 0, 0, 0, 0 | 255, 255, 255, 2550 | ratio, V, mA, kPa | , , , |
| <templatestyles src="Mono/styles.css" />50 | <templatestyles src="Mono/styles.css" />80 | 4 | Maximum value for air flow rate from mass air flow sensor | 0 | 2550 | g/s | ; , , and are reserved for future use |
| <templatestyles src="Mono/styles.css" />51 | <templatestyles src="Mono/styles.css" />81 | 1 | Fuel Type | From fuel type table see below | |||
| <templatestyles src="Mono/styles.css" />52 | <templatestyles src="Mono/styles.css" />82 | 1 | Ethanol fuel % | 0 | 100 | % | |
| <templatestyles src="Mono/styles.css" />53 | <templatestyles src="Mono/styles.css" />83 | 2 | Absolute Evap system Vapor Pressure | 0 | 327.675 | kPa | |
| <templatestyles src="Mono/styles.css" />54 | <templatestyles src="Mono/styles.css" />84 | 2 | Evap system vapor pressure | -32,768 | 32,767 | Pa | (AB is two's complement signed)[3] |
| <templatestyles src="Mono/styles.css" />55 | <templatestyles src="Mono/styles.css" />85 | 2 | Short term secondary oxygen sensor trim, A: bank 1, B: bank 3 | -100 | 99.2 | % |
|
| <templatestyles src="Mono/styles.css" />56 | <templatestyles src="Mono/styles.css" />86 | 2 | Long term secondary oxygen sensor trim, A: bank 1, B: bank 3 | ||||
| <templatestyles src="Mono/styles.css" />57 | <templatestyles src="Mono/styles.css" />87 | 2 | Short term secondary oxygen sensor trim, A: bank 2, B: bank 4 | ||||
| <templatestyles src="Mono/styles.css" />58 | <templatestyles src="Mono/styles.css" />88 | 2 | Long term secondary oxygen sensor trim, A: bank 2, B: bank 4 | ||||
| <templatestyles src="Mono/styles.css" />59 | <templatestyles src="Mono/styles.css" />89 | 2 | Fuel rail absolute pressure | 0 | 655,350 | kPa | |
| <templatestyles src="Mono/styles.css" />5A | <templatestyles src="Mono/styles.css" />90 | 1 | Relative accelerator pedal position | 0 | 100 | % | |
| <templatestyles src="Mono/styles.css" />5B | <templatestyles src="Mono/styles.css" />91 | 1 | Hybrid battery pack remaining life | 0 | 100 | % | |
| <templatestyles src="Mono/styles.css" />5C | <templatestyles src="Mono/styles.css" />92 | 1 | Engine oil temperature | -40 | 210 | °C | |
| <templatestyles src="Mono/styles.css" />5D | <templatestyles src="Mono/styles.css" />93 | 2 | Fuel injection timing | -210.00 | 301.992 | ° | |
| <templatestyles src="Mono/styles.css" />5E | <templatestyles src="Mono/styles.css" />94 | 2 | Engine fuel rate | 0 | 3212.75 | L/h | |
| <templatestyles src="Mono/styles.css" />5F | <templatestyles src="Mono/styles.css" />95 | 1 | Emission requirements to which vehicle is designed | Bit Encoded | |||
| <templatestyles src="Mono/styles.css" />60 | <templatestyles src="Mono/styles.css" />96 | 4 | PIDs supported [$61 - $80] | Bit encoded [A7..D0] == [PID $61..PID $80] See below | |||
| <templatestyles src="Mono/styles.css" />61 | <templatestyles src="Mono/styles.css" />97 | 1 | Driver's demand engine - percent torque | -125 | 130 | % | |
| <templatestyles src="Mono/styles.css" />62 | <templatestyles src="Mono/styles.css" />98 | 1 | Actual engine - percent torque | -125 | 130 | % | |
| <templatestyles src="Mono/styles.css" />63 | <templatestyles src="Mono/styles.css" />99 | 2 | Engine reference torque | 0 | 65,535 | N⋅m | |
| <templatestyles src="Mono/styles.css" />64 | <templatestyles src="Mono/styles.css" />100 | 5 | Engine percent torque data | -125 | 130 | % | Idle Engine point 1 Engine point 2 Engine point 3 Engine point 4 |
| <templatestyles src="Mono/styles.css" />65 | <templatestyles src="Mono/styles.css" />101 | 2 | Auxiliary input / output supported | Bit Encoded | |||
| <templatestyles src="Mono/styles.css" />66 | <templatestyles src="Mono/styles.css" />102 | 5 | Mass air flow sensor | 0 | 2047.96875 | g/s | [A0]== Sensor A Supported [A1]== Sensor B Supported Sensor A: Sensor B: |
| <templatestyles src="Mono/styles.css" />67 | <templatestyles src="Mono/styles.css" />103 | 3 | Engine coolant temperature | -40 | 215 | °C | [A0]== Sensor 1 Supported [A1]== Sensor 2 Supported Sensor 1: Sensor 2: |
| <templatestyles src="Mono/styles.css" />68 | <templatestyles src="Mono/styles.css" />104 | 3 | Intake air temperature sensor | -40 | 215 | °C | [A0]== Sensor 1 Supported [A1]== Sensor 2 Supported Sensor 1: Sensor 2: |
| <templatestyles src="Mono/styles.css" />69 | <templatestyles src="Mono/styles.css" />105 | 7 | Actual EGR, Commanded EGR, and EGR Error | ||||
| <templatestyles src="Mono/styles.css" />6A | <templatestyles src="Mono/styles.css" />106 | 5 | Commanded Diesel intake air flow control and relative intake air flow position | ||||
| <templatestyles src="Mono/styles.css" />6B | <templatestyles src="Mono/styles.css" />107 | 5 | Exhaust gas recirculation temperature | ||||
| <templatestyles src="Mono/styles.css" />6C | <templatestyles src="Mono/styles.css" />108 | 5 | Commanded throttle actuator control and relative throttle position | ||||
| <templatestyles src="Mono/styles.css" />6D | <templatestyles src="Mono/styles.css" />109 | 11 | Fuel pressure control system | ||||
| <templatestyles src="Mono/styles.css" />6E | <templatestyles src="Mono/styles.css" />110 | 9 | Injection pressure control system | ||||
| <templatestyles src="Mono/styles.css" />6F | <templatestyles src="Mono/styles.css" />111 | 3 | Turbocharger compressor inlet pressure | ||||
| <templatestyles src="Mono/styles.css" />70 | <templatestyles src="Mono/styles.css" />112 | 10 | Boost pressure control | ||||
| <templatestyles src="Mono/styles.css" />71 | <templatestyles src="Mono/styles.css" />113 | 6 | Variable Geometry turbo (VGT) control | ||||
| <templatestyles src="Mono/styles.css" />72 | <templatestyles src="Mono/styles.css" />114 | 5 | Wastegate control | ||||
| <templatestyles src="Mono/styles.css" />73 | <templatestyles src="Mono/styles.css" />115 | 5 | Exhaust pressure | ||||
| <templatestyles src="Mono/styles.css" />74 | <templatestyles src="Mono/styles.css" />116 | 5 | Turbocharger RPM | ||||
| <templatestyles src="Mono/styles.css" />75 | <templatestyles src="Mono/styles.css" />117 | 7 | Turbocharger temperature | ||||
| <templatestyles src="Mono/styles.css" />76 | <templatestyles src="Mono/styles.css" />118 | 7 | Turbocharger temperature | ||||
| <templatestyles src="Mono/styles.css" />77 | <templatestyles src="Mono/styles.css" />119 | 5 | Charge air cooler temperature (CACT) | ||||
| <templatestyles src="Mono/styles.css" />78 | <templatestyles src="Mono/styles.css" />120 | 9 | Exhaust Gas temperature (EGT) Bank 1 | Special PID. See below | |||
| <templatestyles src="Mono/styles.css" />79 | <templatestyles src="Mono/styles.css" />121 | 9 | Exhaust Gas temperature (EGT) Bank 2 | Special PID. See below | |||
| <templatestyles src="Mono/styles.css" />7A | <templatestyles src="Mono/styles.css" />122 | 7 | Diesel particulate filter (DPF)
differential pressure |
||||
| <templatestyles src="Mono/styles.css" />7B | <templatestyles src="Mono/styles.css" />123 | 7 | Diesel particulate filter (DPF) | ||||
| <templatestyles src="Mono/styles.css" />7C | <templatestyles src="Mono/styles.css" />124 | 9 | Diesel Particulate filter (DPF) temperature | °C | |||
| <templatestyles src="Mono/styles.css" />7D | <templatestyles src="Mono/styles.css" />125 | 1 | NOx NTE (Not-To-Exceed) control area status | ||||
| <templatestyles src="Mono/styles.css" />7E | <templatestyles src="Mono/styles.css" />126 | 1 | PM NTE (Not-To-Exceed) control area status | ||||
| <templatestyles src="Mono/styles.css" />7F | <templatestyles src="Mono/styles.css" />127 | 13 | Engine run time Template:Efn | s | |||
| <templatestyles src="Mono/styles.css" />80 | <templatestyles src="Mono/styles.css" />128 | 4 | PIDs supported [$81 - $A0] | Bit encoded [A7..D0] == [PID $81..PID $A0] See below | |||
| <templatestyles src="Mono/styles.css" />81 | <templatestyles src="Mono/styles.css" />129 | 41 | Engine run time for Auxiliary Emissions Control Device(AECD) | ||||
| <templatestyles src="Mono/styles.css" />82 | <templatestyles src="Mono/styles.css" />130 | 41 | Engine run time for Auxiliary Emissions Control Device(AECD) | ||||
| <templatestyles src="Mono/styles.css" />83 | <templatestyles src="Mono/styles.css" />131 | 9 | NOx sensor | ||||
| <templatestyles src="Mono/styles.css" />84 | <templatestyles src="Mono/styles.css" />132 | 1 | Manifold surface temperature | ||||
| <templatestyles src="Mono/styles.css" />85 | <templatestyles src="Mono/styles.css" />133 | 10 | NOx reagent system | % | |||
| <templatestyles src="Mono/styles.css" />86 | <templatestyles src="Mono/styles.css" />134 | 5 | Particulate matter (PM) sensor | ||||
| <templatestyles src="Mono/styles.css" />87 | <templatestyles src="Mono/styles.css" />135 | 5 | Intake manifold absolute pressure | ||||
| <templatestyles src="Mono/styles.css" />88 | <templatestyles src="Mono/styles.css" />136 | 13 | SCR Induce System | ||||
| <templatestyles src="Mono/styles.css" />89 | <templatestyles src="Mono/styles.css" />137 | 41 | Run Time for AECD #11-#15 | ||||
| <templatestyles src="Mono/styles.css" />8A | <templatestyles src="Mono/styles.css" />138 | 41 | Run Time for AECD #16-#20 | ||||
| <templatestyles src="Mono/styles.css" />8B | <templatestyles src="Mono/styles.css" />139 | 7 | Diesel Aftertreatment | ||||
| <templatestyles src="Mono/styles.css" />8C | <templatestyles src="Mono/styles.css" />140 | 17 | O2 Sensor (Wide Range) | ||||
| <templatestyles src="Mono/styles.css" />8D | <templatestyles src="Mono/styles.css" />141 | 1 | Throttle Position G | 0 | 100 | % | |
| <templatestyles src="Mono/styles.css" />8E | <templatestyles src="Mono/styles.css" />142 | 1 | Engine Friction - Percent Torque | -125 | 130 | % | |
| <templatestyles src="Mono/styles.css" />8F | <templatestyles src="Mono/styles.css" />143 | 7 | PM Sensor Bank 1 & 2 | ||||
| <templatestyles src="Mono/styles.css" />90 | <templatestyles src="Mono/styles.css" />144 | 3 | WWH-OBD Vehicle OBD System Information | h | |||
| <templatestyles src="Mono/styles.css" />91 | <templatestyles src="Mono/styles.css" />145 | 5 | WWH-OBD Vehicle OBD System Information | h | |||
| <templatestyles src="Mono/styles.css" />92 | <templatestyles src="Mono/styles.css" />146 | 2 | Fuel System Control | ||||
| <templatestyles src="Mono/styles.css" />93 | <templatestyles src="Mono/styles.css" />147 | 3 | WWH-OBD Vehicle OBD Counters support | h | |||
| <templatestyles src="Mono/styles.css" />94 | <templatestyles src="Mono/styles.css" />148 | 12 | NOx Warning And Inducement System | ||||
| <templatestyles src="Mono/styles.css" />98 | <templatestyles src="Mono/styles.css" />152 | 9 | Exhaust Gas Temperature Sensor | ||||
| <templatestyles src="Mono/styles.css" />99 | <templatestyles src="Mono/styles.css" />153 | 9 | Exhaust Gas Temperature Sensor | ||||
| <templatestyles src="Mono/styles.css" />9A | <templatestyles src="Mono/styles.css" />154 | 6 | Hybrid/EV Vehicle System Data, Battery, Voltage | ||||
| <templatestyles src="Mono/styles.css" />9B | <templatestyles src="Mono/styles.css" />155 | 4 | Diesel Exhaust Fluid Sensor Data | % | |||
| <templatestyles src="Mono/styles.css" />9C | <templatestyles src="Mono/styles.css" />156 | 17 | O2 Sensor Data | ||||
| <templatestyles src="Mono/styles.css" />9D | <templatestyles src="Mono/styles.css" />157 | 4 | Engine Fuel Rate | g/s | |||
| <templatestyles src="Mono/styles.css" />9E | <templatestyles src="Mono/styles.css" />158 | 2 | Engine Exhaust Flow Rate | kg/h | |||
| <templatestyles src="Mono/styles.css" />9F | <templatestyles src="Mono/styles.css" />159 | 9 | Fuel System Percentage Use | ||||
| <templatestyles src="Mono/styles.css" />A0 | <templatestyles src="Mono/styles.css" />160 | 4 | PIDs supported [$A1 - $C0] | Bit encoded [A7..D0] == [PID $A1..PID $C0] See below | |||
| <templatestyles src="Mono/styles.css" />A1 | <templatestyles src="Mono/styles.css" />161 | 9 | NOx Sensor Corrected Data | ppm | |||
| <templatestyles src="Mono/styles.css" />A2 | <templatestyles src="Mono/styles.css" />162 | 2 | Cylinder Fuel Rate | 0 | 2047.96875 | mg/stroke | |
| <templatestyles src="Mono/styles.css" />A3 | <templatestyles src="Mono/styles.css" />163 | 9 | Evap System Vapor Pressure | Pa | |||
| <templatestyles src="Mono/styles.css" />A4 | <templatestyles src="Mono/styles.css" />164 | 4 | Transmission Actual Gear | 0 | 65.535 | ratio | [A1]==Supported
|
| <templatestyles src="Mono/styles.css" />A5 | <templatestyles src="Mono/styles.css" />165 | 4 | Commanded Diesel Exhaust Fluid Dosing | 0 | 127.5 | % | [A0]= 1:Supported; 0:Unsupported
|
| <templatestyles src="Mono/styles.css" />A6 | <templatestyles src="Mono/styles.css" />166 | 4 | Odometer Template:Efn | 0 | 429,496,729.5 | km | |
| <templatestyles src="Mono/styles.css" />A7 | <templatestyles src="Mono/styles.css" />167 | 4 | NOx Sensor Concentration Sensors 3 and 4 | ||||
| <templatestyles src="Mono/styles.css" />A8 | <templatestyles src="Mono/styles.css" />168 | 4 | NOx Sensor Corrected Concentration Sensors 3 and 4 | ||||
| <templatestyles src="Mono/styles.css" />A9 | <templatestyles src="Mono/styles.css" />169 | 4 | ABS Disable Switch State | [A0]= 1:Supported; 0:Unsupported
[B0]= 1:Yes;0:No | |||
| <templatestyles src="Mono/styles.css" />C0 | <templatestyles src="Mono/styles.css" />192 | 4 | PIDs supported [$C1 - $E0] | Bit encoded [A7..D0] == [PID $C1..PID $E0] See below | |||
| <templatestyles src="Mono/styles.css" />C3 | <templatestyles src="Mono/styles.css" />195 | 2 | Fuel Level Input A/B | 0 | 25,700 | % | Returns numerous data, including Drive Condition ID and Engine Speed* |
| <templatestyles src="Mono/styles.css" />C4 | <templatestyles src="Mono/styles.css" />196 | 8 | Exhaust Particulate Control System Diagnostic Time/Count | 0 | 4,294,967,295 | seconds / Count | B5 is Engine Idle Request B6 is Engine Stop Request* First byte = Time in seconds Second byte = Count |
| <templatestyles src="Mono/styles.css" />C5 | <templatestyles src="Mono/styles.css" />197 | 4 | Fuel Pressure A and B | 0 | 5,177 | kPa | |
| <templatestyles src="Mono/styles.css" />C6 | <templatestyles src="Mono/styles.css" />198 | 7 | Byte 1 - Particulate control - driver inducement system status Byte 2,3 - Removal or block of the particulate aftertreatment system counter Byte 4,5 - Liquid regent injection system (e.g. fuel-borne catalyst) failure counter Byte 6,7 - Malfunction of Particulate control monitoring system counter |
0 | 65,535 | h | |
| <templatestyles src="Mono/styles.css" />C7 | <templatestyles src="Mono/styles.css" />199 | 2 | Distance Since Reflash or Module Replacement | 0 | 65,535 | km | |
| <templatestyles src="Mono/styles.css" />C8 | <templatestyles src="Mono/styles.css" />200 | 1 | NOx Control Diagnostic (NCD) and Particulate Control Diagnostic (PCD) Warning Lamp status | - | - | Bit | |
| PID (hex) |
PID (Dec) |
Data bytes returned | Description | Min value | Max value | Units | FormulaTemplate:Efn |
Service <templatestyles src="Mono/styles.css" />02 - Show freeze frame data
Service <templatestyles src="Mono/styles.css" />02 accepts the same PIDs as service <templatestyles src="Mono/styles.css" />01, with the same meaning,[4] but information given is from when the freeze frame[5] was created. Note that PID <templatestyles src="Mono/styles.css" />$02 is used to obtain the DTC that triggered the freeze frame.
A person has to send the frame number in the data section of the message.
Service <templatestyles src="Mono/styles.css" />03 - Show stored Diagnostic Trouble Codes (DTCs)
| PID (hex) |
Data bytes returned | Description | Min value | Max value | Units | FormulaTemplate:Efn |
|---|---|---|---|---|---|---|
| N/A | n*6 | Request trouble codes | 3 codes per message frame. See below |
Service <templatestyles src="Mono/styles.css" />04 - Clear Diagnostic Trouble Codes and stored values
| PID (hex) |
Data bytes returned | Description | Min value | Max value | Units | FormulaTemplate:Efn |
|---|---|---|---|---|---|---|
| N/A | 0 | Clear trouble codes / Malfunction indicator lamp (MIL) / Check engine light | Clears all stored trouble codes and turns the MIL off. |
Service <templatestyles src="Mono/styles.css" />05 - Test results, oxygen sensor monitoring (non CAN only)
| PID (hex) |
Data bytes returned | Description | Min value | Max value | Units | FormulaTemplate:Efn |
|---|---|---|---|---|---|---|
| <templatestyles src="Mono/styles.css" />0100 | 4 | OBD Monitor IDs supported ($01 – $20) | 0x0 | 0xffffffff | ||
| <templatestyles src="Mono/styles.css" />0101 | 2 | O2 Sensor Monitor Bank 1 Sensor 1 | 0.00 | 1.275 | V | 0.005 Rich to lean sensor threshold voltage |
| <templatestyles src="Mono/styles.css" />0102 | O2 Sensor Monitor Bank 1 Sensor 2 | 0.00 | 1.275 | V | 0.005 Rich to lean sensor threshold voltage | |
| <templatestyles src="Mono/styles.css" />0103 | O2 Sensor Monitor Bank 1 Sensor 3 | 0.00 | 1.275 | V | 0.005 Rich to lean sensor threshold voltage | |
| <templatestyles src="Mono/styles.css" />0104 | O2 Sensor Monitor Bank 1 Sensor 4 | 0.00 | 1.275 | V | 0.005 Rich to lean sensor threshold voltage | |
| <templatestyles src="Mono/styles.css" />0105 | O2 Sensor Monitor Bank 2 Sensor 1 | 0.00 | 1.275 | V | 0.005 Rich to lean sensor threshold voltage | |
| <templatestyles src="Mono/styles.css" />0106 | O2 Sensor Monitor Bank 2 Sensor 2 | 0.00 | 1.275 | V | 0.005 Rich to lean sensor threshold voltage | |
| <templatestyles src="Mono/styles.css" />0107 | O2 Sensor Monitor Bank 2 Sensor 3 | 0.00 | 1.275 | V | 0.005 Rich to lean sensor threshold voltage | |
| <templatestyles src="Mono/styles.css" />0108 | O2 Sensor Monitor Bank 2 Sensor 4 | 0.00 | 1.275 | V | 0.005 Rich to lean sensor threshold voltage | |
| <templatestyles src="Mono/styles.css" />0109 | O2 Sensor Monitor Bank 3 Sensor 1 | 0.00 | 1.275 | V | 0.005 Rich to lean sensor threshold voltage | |
| <templatestyles src="Mono/styles.css" />010A | O2 Sensor Monitor Bank 3 Sensor 2 | 0.00 | 1.275 | V | 0.005 Rich to lean sensor threshold voltage | |
| <templatestyles src="Mono/styles.css" />010B | O2 Sensor Monitor Bank 3 Sensor 3 | 0.00 | 1.275 | V | 0.005 Rich to lean sensor threshold voltage | |
| <templatestyles src="Mono/styles.css" />010C | O2 Sensor Monitor Bank 3 Sensor 4 | 0.00 | 1.275 | V | 0.005 Rich to lean sensor threshold voltage | |
| <templatestyles src="Mono/styles.css" />010D | O2 Sensor Monitor Bank 4 Sensor 1 | 0.00 | 1.275 | V | 0.005 Rich to lean sensor threshold voltage | |
| <templatestyles src="Mono/styles.css" />010E | O2 Sensor Monitor Bank 4 Sensor 2 | 0.00 | 1.275 | V | 0.005 Rich to lean sensor threshold voltage | |
| <templatestyles src="Mono/styles.css" />010F | O2 Sensor Monitor Bank 4 Sensor 3 | 0.00 | 1.275 | V | 0.005 Rich to lean sensor threshold voltage | |
| <templatestyles src="Mono/styles.css" />0110 | O2 Sensor Monitor Bank 4 Sensor 4 | 0.00 | 1.275 | V | 0.005 Rich to lean sensor threshold voltage | |
| <templatestyles src="Mono/styles.css" />0201 | O2 Sensor Monitor Bank 1 Sensor 1 | 0.00 | 1.275 | V | 0.005 Lean to Rich sensor threshold voltage | |
| <templatestyles src="Mono/styles.css" />0202 | O2 Sensor Monitor Bank 1 Sensor 2 | 0.00 | 1.275 | V | 0.005 Lean to Rich sensor threshold voltage | |
| <templatestyles src="Mono/styles.css" />0203 | O2 Sensor Monitor Bank 1 Sensor 3 | 0.00 | 1.275 | V | 0.005 Lean to Rich sensor threshold voltage | |
| <templatestyles src="Mono/styles.css" />0204 | O2 Sensor Monitor Bank 1 Sensor 4 | 0.00 | 1.275 | V | 0.005 Lean to Rich sensor threshold voltage | |
| <templatestyles src="Mono/styles.css" />0205 | O2 Sensor Monitor Bank 2 Sensor 1 | 0.00 | 1.275 | V | 0.005 Lean to Rich sensor threshold voltage | |
| <templatestyles src="Mono/styles.css" />0206 | O2 Sensor Monitor Bank 2 Sensor 2 | 0.00 | 1.275 | V | 0.005 Lean to Rich sensor threshold voltage | |
| <templatestyles src="Mono/styles.css" />0207 | O2 Sensor Monitor Bank 2 Sensor 3 | 0.00 | 1.275 | V | 0.005 Lean to Rich sensor threshold voltage | |
| <templatestyles src="Mono/styles.css" />0208 | O2 Sensor Monitor Bank 2 Sensor 4 | 0.00 | 1.275 | V | 0.005 Lean to Rich sensor threshold voltage | |
| <templatestyles src="Mono/styles.css" />0209 | O2 Sensor Monitor Bank 3 Sensor 1 | 0.00 | 1.275 | V | 0.005 Lean to Rich sensor threshold voltage | |
| <templatestyles src="Mono/styles.css" />020A | O2 Sensor Monitor Bank 3 Sensor 2 | 0.00 | 1.275 | V | 0.005 Lean to Rich sensor threshold voltage | |
| <templatestyles src="Mono/styles.css" />020B | O2 Sensor Monitor Bank 3 Sensor 3 | 0.00 | 1.275 | V | 0.005 Lean to Rich sensor threshold voltage | |
| <templatestyles src="Mono/styles.css" />020C | O2 Sensor Monitor Bank 3 Sensor 4 | 0.00 | 1.275 | V | 0.005 Lean to Rich sensor threshold voltage | |
| <templatestyles src="Mono/styles.css" />020D | O2 Sensor Monitor Bank 4 Sensor 1 | 0.00 | 1.275 | V | 0.005 Lean to Rich sensor threshold voltage | |
| <templatestyles src="Mono/styles.css" />020E | O2 Sensor Monitor Bank 4 Sensor 2 | 0.00 | 1.275 | V | 0.005 Lean to Rich sensor threshold voltage | |
| <templatestyles src="Mono/styles.css" />020F | O2 Sensor Monitor Bank 4 Sensor 3 | 0.00 | 1.275 | V | 0.005 Lean to Rich sensor threshold voltage | |
| <templatestyles src="Mono/styles.css" />0210 | O2 Sensor Monitor Bank 4 Sensor 4 | 0.00 | 1.275 | V | 0.005 Lean to Rich sensor threshold voltage | |
| PID (hex) |
Data bytes returned | Description | Min value | Max value | Units | FormulaTemplate:Efn |
Service <templatestyles src="Mono/styles.css" />09 - Request vehicle information
| PID (hex) |
Data bytes returned | Description | Min value | Max value | Units | FormulaTemplate:Efn |
|---|---|---|---|---|---|---|
| <templatestyles src="Mono/styles.css" />00 | 4 | Service 9 supported PIDs ($01 to $20) | Bit encoded. [A7..D0] = [PID $01..PID $20] See below | |||
| <templatestyles src="Mono/styles.css" />01 | 1 | VIN Message Count in PID <templatestyles src="Mono/styles.css" />02. Only for ISO 9141-2, ISO 14230-4 and SAE J1850. | Usually the value will be 5. | |||
| <templatestyles src="Mono/styles.css" />02 | 17 | Vehicle Identification Number (VIN) | 17-char VIN, ASCII-encoded and left-padded with null chars (<templatestyles src="Mono/styles.css" />0x00) if needed to. | |||
| <templatestyles src="Mono/styles.css" />03 | 1 | Calibration ID message count for PID <templatestyles src="Mono/styles.css" />04. Only for ISO 9141-2, ISO 14230-4 and SAE J1850. | It will be a multiple of 4 (4 messages are needed for each ID). | |||
| <templatestyles src="Mono/styles.css" />04 | 16,32,48,64.. | Calibration ID | Up to 16 ASCII chars. Data bytes not used will be reported as null bytes (<templatestyles src="Mono/styles.css" />0x00). Several CALID can be outputed (16 bytes each) | |||
| <templatestyles src="Mono/styles.css" />05 | 1 | Calibration verification numbers (CVN) message count for PID <templatestyles src="Mono/styles.css" />06. Only for ISO 9141-2, ISO 14230-4 and SAE J1850. | ||||
| <templatestyles src="Mono/styles.css" />06 | 4,8,12,16 | Calibration Verification Numbers (CVN) Several CVN can be output (4 bytes each) the number of CVN and CALID must match | Raw data left-padded with null characters (<templatestyles src="Mono/styles.css" />0x00). Usually displayed as hex string. | |||
| <templatestyles src="Mono/styles.css" />07 | 1 | In-use performance tracking message count for PID <templatestyles src="Mono/styles.css" />08 and <templatestyles src="Mono/styles.css" />0B. Only for ISO 9141-2, ISO 14230-4 and SAE J1850. | 8 | 10 | 8 if sixteen values are required to be reported, 9 if eighteen values are required to be reported, and 10 if twenty values are required to be reported (one message reports two values, each one consisting in two bytes). | |
| <templatestyles src="Mono/styles.css" />08 | 4 | In-use performance tracking for spark ignition vehicles | 4 or 5 messages, each one containing 4 bytes (two values). See below | |||
| <templatestyles src="Mono/styles.css" />09 | 1 | ECU name message count for PID <templatestyles src="Mono/styles.css" />0A | ||||
| <templatestyles src="Mono/styles.css" />0A | 20 | ECU name | ASCII-coded. Right-padded with null chars (<templatestyles src="Mono/styles.css" />0x00). | |||
| <templatestyles src="Mono/styles.css" />0B | 4 | In-use performance tracking for compression ignition vehicles | 5 messages, each one containing 4 bytes (two values). See below | |||
| PID (hex) |
Data bytes returned | Description | Min value | Max value | Units | FormulaTemplate:Efn |
Bitwise encoded PIDs
Some of the PIDs in the above table cannot be explained with a simple formula. A more elaborate explanation of these data is provided here:
Service 01 PID <templatestyles src="Mono/styles.css" />00 - Show PIDs supported
A request for this PID returns 4 bytes of data (Big-endian). Each bit, from MSB to LSB, represents one of the next 32 PIDs and specifies whether that PID is supported.
For example, if the car response is <templatestyles src="Mono/styles.css" />BE1FA813, it can be decoded like this:
| Hexadecimal | <templatestyles src="Mono/styles.css" />B | <templatestyles src="Mono/styles.css" />E | <templatestyles src="Mono/styles.css" />1 | <templatestyles src="Mono/styles.css" />F | <templatestyles src="Mono/styles.css" />A | <templatestyles src="Mono/styles.css" />8 | <templatestyles src="Mono/styles.css" />1 | <templatestyles src="Mono/styles.css" />3 | ||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Binary | <templatestyles src="Mono/styles.css" />1 | <templatestyles src="Mono/styles.css" />0 | <templatestyles src="Mono/styles.css" />1 | <templatestyles src="Mono/styles.css" />1 | <templatestyles src="Mono/styles.css" />1 | <templatestyles src="Mono/styles.css" />1 | <templatestyles src="Mono/styles.css" />1 | <templatestyles src="Mono/styles.css" />0 | <templatestyles src="Mono/styles.css" />0 | <templatestyles src="Mono/styles.css" />0 | <templatestyles src="Mono/styles.css" />0 | <templatestyles src="Mono/styles.css" />1 | <templatestyles src="Mono/styles.css" />1 | <templatestyles src="Mono/styles.css" />1 | <templatestyles src="Mono/styles.css" />1 | <templatestyles src="Mono/styles.css" />1 | <templatestyles src="Mono/styles.css" />1 | <templatestyles src="Mono/styles.css" />0 | <templatestyles src="Mono/styles.css" />1 | <templatestyles src="Mono/styles.css" />0 | <templatestyles src="Mono/styles.css" />1 | <templatestyles src="Mono/styles.css" />0 | <templatestyles src="Mono/styles.css" />0 | <templatestyles src="Mono/styles.css" />0 | <templatestyles src="Mono/styles.css" />0 | <templatestyles src="Mono/styles.css" />0 | <templatestyles src="Mono/styles.css" />0 | <templatestyles src="Mono/styles.css" />1 | <templatestyles src="Mono/styles.css" />0 | <templatestyles src="Mono/styles.css" />0 | <templatestyles src="Mono/styles.css" />1 | <templatestyles src="Mono/styles.css" />1 |
| Supported? | Yes | No | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | No | Yes | No | No | No | No | No | No | Yes | No | No | Yes | Yes |
| PID number | <templatestyles src="Mono/styles.css" />01 | <templatestyles src="Mono/styles.css" />02 | <templatestyles src="Mono/styles.css" />03 | <templatestyles src="Mono/styles.css" />04 | <templatestyles src="Mono/styles.css" />05 | <templatestyles src="Mono/styles.css" />06 | <templatestyles src="Mono/styles.css" />07 | <templatestyles src="Mono/styles.css" />08 | <templatestyles src="Mono/styles.css" />09 | <templatestyles src="Mono/styles.css" />0A | <templatestyles src="Mono/styles.css" />0B | <templatestyles src="Mono/styles.css" />0C | <templatestyles src="Mono/styles.css" />0D | <templatestyles src="Mono/styles.css" />0E | <templatestyles src="Mono/styles.css" />0F | <templatestyles src="Mono/styles.css" />10 | <templatestyles src="Mono/styles.css" />11 | <templatestyles src="Mono/styles.css" />12 | <templatestyles src="Mono/styles.css" />13 | <templatestyles src="Mono/styles.css" />14 | <templatestyles src="Mono/styles.css" />15 | <templatestyles src="Mono/styles.css" />16 | <templatestyles src="Mono/styles.css" />17 | <templatestyles src="Mono/styles.css" />18 | <templatestyles src="Mono/styles.css" />19 | <templatestyles src="Mono/styles.css" />1A | <templatestyles src="Mono/styles.css" />1B | <templatestyles src="Mono/styles.css" />1C | <templatestyles src="Mono/styles.css" />1D | <templatestyles src="Mono/styles.css" />1E | <templatestyles src="Mono/styles.css" />1F | <templatestyles src="Mono/styles.css" />20 |
So, supported PIDs are: <templatestyles src="Mono/styles.css" />01, <templatestyles src="Mono/styles.css" />03, <templatestyles src="Mono/styles.css" />04, <templatestyles src="Mono/styles.css" />05, <templatestyles src="Mono/styles.css" />06, <templatestyles src="Mono/styles.css" />07, <templatestyles src="Mono/styles.css" />0C, <templatestyles src="Mono/styles.css" />0D, <templatestyles src="Mono/styles.css" />0E, <templatestyles src="Mono/styles.css" />0F, <templatestyles src="Mono/styles.css" />10, <templatestyles src="Mono/styles.css" />11, <templatestyles src="Mono/styles.css" />13, <templatestyles src="Mono/styles.css" />15, <templatestyles src="Mono/styles.css" />1C, <templatestyles src="Mono/styles.css" />1F and <templatestyles src="Mono/styles.css" />20
Service 01 PID <templatestyles src="Mono/styles.css" />01 - Monitor status since DTCs cleared
A request for this PID returns 4 bytes of data, labeled A, B, C and D.
The first byte (A) contains two pieces of information. Bit <templatestyles src="Mono/styles.css" />A7 (MSB of byte A) indicates whether or not the MIL (malfunction indicator light, aka. check engine light) is illuminated. Bits <templatestyles src="Mono/styles.css" />A6 through <templatestyles src="Mono/styles.css" />A0 represent the number of diagnostic trouble codes currently flagged in the ECU.
The second, third, and fourth bytes (B, C and D) give information about the availability and completeness of certain on-board tests ("OBD readiness checks"). The third and fourth bytes are to be interpreted differently depending upon whether the engine is spark ignition (e.g. Otto or Wankel engines) or compression ignition (e.g. Diesel engines). In the second byte (B), bit <templatestyles src="Mono/styles.css" />3 indicates the engine type and thus how to interpret bytes C and D, with <templatestyles src="Mono/styles.css" />0 being spark (Otto or Wankel) and <templatestyles src="Mono/styles.css" />1 (set) being compression (Diesel). Bits <templatestyles src="Mono/styles.css" />B6 to <templatestyles src="Mono/styles.css" />B4 and <templatestyles src="Mono/styles.css" />B2 to <templatestyles src="Mono/styles.css" />B0 are used for information about tests that not engine-type specific, and thus termed common tests. Note that for bits indicating test availability a bit set to <templatestyles src="Mono/styles.css" />1 indicates available, whilst for bits indicating test completeness a bit set to <templatestyles src="Mono/styles.css" />0 indicates complete.
| Bits | Definition |
|---|---|
| <templatestyles src="Mono/styles.css" />A7 | State of the CEL/MIL (on/off). |
| <templatestyles src="Mono/styles.css" />A6-<templatestyles src="Mono/styles.css" />A0 | Number of confirmed emissions-related DTCs available for display. |
| <templatestyles src="Mono/styles.css" />B7 | Reserved (should be <templatestyles src="Mono/styles.css" />0) |
| <templatestyles src="Mono/styles.css" />B6-<templatestyles src="Mono/styles.css" />B4 | Bitmap indicating completeness of common tests. |
| <templatestyles src="Mono/styles.css" />B3 | Indication of engine type <templatestyles src="Mono/styles.css" />0 = Spark ignition (e.g. Otto or Wankel engines) <templatestyles src="Mono/styles.css" />1 = Compression ignition (e.g. Diesel engines) |
| <templatestyles src="Mono/styles.css" />B2-<templatestyles src="Mono/styles.css" />B0 | Bitmap indicating availability of common tests. |
| <templatestyles src="Mono/styles.css" />C7-<templatestyles src="Mono/styles.css" />C0 | Bitmap indicating availability of engine-type specific tests. |
| <templatestyles src="Mono/styles.css" />D7-<templatestyles src="Mono/styles.css" />D0 | Bitmap indicating completeness of engine-type specific tests. |
Bits from byte B representing common test indicators (those not engine-type specific) are mapped as follows:
| Test availability | Test completeness | |
|---|---|---|
| Components | <templatestyles src="Mono/styles.css" />B2 | <templatestyles src="Mono/styles.css" />B6 |
| Fuel System | <templatestyles src="Mono/styles.css" />B1 | <templatestyles src="Mono/styles.css" />B5 |
| Misfire | <templatestyles src="Mono/styles.css" />B0 | <templatestyles src="Mono/styles.css" />B4 |
Bytes C and D are mapped as follows for spark ignition engine types (e.g. Otto or Wankel engines):
| Test availability | Test completeness | |
|---|---|---|
| EGR and/or VVT System | <templatestyles src="Mono/styles.css" />C7 | <templatestyles src="Mono/styles.css" />D7 |
| Oxygen Sensor Heater | <templatestyles src="Mono/styles.css" />C6 | <templatestyles src="Mono/styles.css" />D6 |
| Oxygen Sensor | <templatestyles src="Mono/styles.css" />C5 | <templatestyles src="Mono/styles.css" />D5 |
| Gasoline Particulate FilterTemplate:Efn | <templatestyles src="Mono/styles.css" />C4 | <templatestyles src="Mono/styles.css" />D4 |
| Secondary Air System | <templatestyles src="Mono/styles.css" />C3 | <templatestyles src="Mono/styles.css" />D3 |
| Evaporative System | <templatestyles src="Mono/styles.css" />C2 | <templatestyles src="Mono/styles.css" />D2 |
| Heated Catalyst | <templatestyles src="Mono/styles.css" />C1 | <templatestyles src="Mono/styles.css" />D1 |
| Catalyst | <templatestyles src="Mono/styles.css" />C0 | <templatestyles src="Mono/styles.css" />D0 |
Bytes C and D are alternatively mapped as follows for compression ignition engine types (Diesel engines):
| Test availability | Test completeness | |
|---|---|---|
| EGR and/or VVT System | <templatestyles src="Mono/styles.css" />C7 | <templatestyles src="Mono/styles.css" />D7 |
| PM filter monitoring | <templatestyles src="Mono/styles.css" />C6 | <templatestyles src="Mono/styles.css" />D6 |
| Exhaust Gas Sensor | <templatestyles src="Mono/styles.css" />C5 | <templatestyles src="Mono/styles.css" />D5 |
| - Reserved - | <templatestyles src="Mono/styles.css" />C4 | <templatestyles src="Mono/styles.css" />D4 |
| Boost Pressure | <templatestyles src="Mono/styles.css" />C3 | <templatestyles src="Mono/styles.css" /> D3 |
| - Reserved - | <templatestyles src="Mono/styles.css" />C2 | <templatestyles src="Mono/styles.css" />D2 |
| NOx/SCR Monitor | <templatestyles src="Mono/styles.css" />C1 | <templatestyles src="Mono/styles.css" />D1 |
| NMHC CatalystTemplate:Efn | <templatestyles src="Mono/styles.css" />C0 | <templatestyles src="Mono/styles.css" />D0 |
Service 01 PID <templatestyles src="Mono/styles.css" />41 - Monitor status this drive cycle
A request for this PID returns 4 bytes of data. The data returned is of an identical form to that returned for PID <templatestyles src="Mono/styles.css" />01, with one exception - the first byte is always zero.
Service 01 PID 78 and 79 - Exhaust Gas temperature (EGT) Bank 1 and Bank 2
A request for one of these two PIDs will return 9 bytes of data. PID <templatestyles src="Mono/styles.css" />78 returns data relating to EGT sensors for bank 1, whilst PID <templatestyles src="Mono/styles.css" />79 similarly returns data for bank 2. The first byte is a bit encoded field indicating which EGT sensors are supported for the respective bank.
| Bytes | Description |
|---|---|
| <templatestyles src="Mono/styles.css" />A | EGT sensor support |
| <templatestyles src="Mono/styles.css" />B-<templatestyles src="Mono/styles.css" />C | Temperature read by EGT sensor 1 |
| <templatestyles src="Mono/styles.css" />D-<templatestyles src="Mono/styles.css" />E | Temperature read by EGT sensor 2 |
| <templatestyles src="Mono/styles.css" />F-<templatestyles src="Mono/styles.css" />G | Temperature read by EGT sensor 3 |
| <templatestyles src="Mono/styles.css" />H-<templatestyles src="Mono/styles.css" />I | Temperature read by EGT sensor 4 |
The first byte is bit-encoded as follows:
| Bits | Description |
|---|---|
| <templatestyles src="Mono/styles.css" />A7-<templatestyles src="Mono/styles.css" />A4 | Reserved |
| <templatestyles src="Mono/styles.css" />A3 | EGT sensor 4 supported? |
| <templatestyles src="Mono/styles.css" />A2 | EGT sensor 3 supported? |
| <templatestyles src="Mono/styles.css" />A1 | EGT sensor 2 supported? |
| <templatestyles src="Mono/styles.css" />A0 | EGT sensor 1 supported? |
Bytes B through I provide 16-bit integers indicating the temperatures of the sensors. The temperature values are interpreted in degrees Celsius in the range -40 to 6513.5 (scale 0.1), using the usual formula (MSB is A, LSB is B). Only values for which the corresponding sensor is supported are meaningful.
Service 03 (no PID required) - Show stored Diagnostic Trouble Codes
A request for this service returns a list of the DTCs that have been set. The list is encapsulated using the ISO 15765-2 protocol.
If there are two or fewer DTCs (up to 4 bytes) then they are returned in an ISO-TP Single Frame (SF). Three or more DTCs in the list are reported in multiple frames, with the exact count of frames dependent on the communication type and addressing details.
Each trouble code requires 2 bytes to describe. Encoded in these bytes are a category and a number. It is typically shown decoded into a five-character form like "<templatestyles src="Mono/styles.css" />U0158", where the first character (here 'U') represents the category the DTC belongs to, and the remaining four characters are a hexadecimal representation of the number under that category. The first two bits (<templatestyles src="Mono/styles.css" />A7 and <templatestyles src="Mono/styles.css" />A6) of the first byte (A) represent the category. The remaining 14 bits represent the number. Of note is that since the second character is formed from only two bits, it can thus only be within the range <templatestyles src="Mono/styles.css" />0-<templatestyles src="Mono/styles.css" />3.
| Bits | Definition |
|---|---|
| <templatestyles src="Mono/styles.css" />A7-<templatestyles src="Mono/styles.css" />A6 | Category <templatestyles src="Mono/styles.css" />00: <templatestyles src="Mono/styles.css" />P - Powertrain <templatestyles src="Mono/styles.css" />01: <templatestyles src="Mono/styles.css" />C - Chassis <templatestyles src="Mono/styles.css" />10: <templatestyles src="Mono/styles.css" />B - Body <templatestyles src="Mono/styles.css" />11: <templatestyles src="Mono/styles.css" />U - NetworkTemplate:Efn |
| <templatestyles src="Mono/styles.css" />A5-<templatestyles src="Mono/styles.css" />B0 | Number (within category) |
An example DTC of "<templatestyles src="Mono/styles.css" />U0158" would be decoded as follows:
| Bit | <templatestyles src="Mono/styles.css" />A7 | <templatestyles src="Mono/styles.css" />A6 | <templatestyles src="Mono/styles.css" />A5 | <templatestyles src="Mono/styles.css" />A4 | <templatestyles src="Mono/styles.css" />A3 | <templatestyles src="Mono/styles.css" />A2 | <templatestyles src="Mono/styles.css" />A1 | <templatestyles src="Mono/styles.css" />A0 | <templatestyles src="Mono/styles.css" />B7 | <templatestyles src="Mono/styles.css" />B6 | <templatestyles src="Mono/styles.css" />B5 | <templatestyles src="Mono/styles.css" />B4 | <templatestyles src="Mono/styles.css" />B3 | <templatestyles src="Mono/styles.css" />B2 | <templatestyles src="Mono/styles.css" />B1 | <templatestyles src="Mono/styles.css" />B0 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Binary | <templatestyles src="Mono/styles.css" />1 | <templatestyles src="Mono/styles.css" />1 | <templatestyles src="Mono/styles.css" />0 | <templatestyles src="Mono/styles.css" />0 | <templatestyles src="Mono/styles.css" />0 | <templatestyles src="Mono/styles.css" />0 | <templatestyles src="Mono/styles.css" />0 | <templatestyles src="Mono/styles.css" />1 | <templatestyles src="Mono/styles.css" />0 | <templatestyles src="Mono/styles.css" />1 | <templatestyles src="Mono/styles.css" />0 | <templatestyles src="Mono/styles.css" />1 | <templatestyles src="Mono/styles.css" />1 | <templatestyles src="Mono/styles.css" />0 | <templatestyles src="Mono/styles.css" />0 | <templatestyles src="Mono/styles.css" />0 |
| Hexadecimal | <templatestyles src="Mono/styles.css" />C | <templatestyles src="Mono/styles.css" />1 | <templatestyles src="Mono/styles.css" />5 | <templatestyles src="Mono/styles.css" />8 | ||||||||||||
| Decoded DTC | <templatestyles src="Mono/styles.css" />U | <templatestyles src="Mono/styles.css" />0 | <templatestyles src="Mono/styles.css" />1 | <templatestyles src="Mono/styles.css" />5 | <templatestyles src="Mono/styles.css" />8 | |||||||||||
The resulting five-character code, e.g. "<templatestyles src="Mono/styles.css" />U0158", can be looked up in a table of OBD-II DTCs to get an actual description of what it represents. Of note, whilst some blocks of DTC code ranges have generic meanings that apply to all vehicles and manufacturers, the meanings of others can vary per manufacturer or even model.
It is also worth noting that DTCs may sometimes be encountered in a four-character form, e.g. "<templatestyles src="Mono/styles.css" />C158", which is simply the plain hexadecimal representation of the two bytes, with proper decoding with respect to the category not having been performed.
Service 09 PID 08 - In-use performance tracking for spark ignition engines
It provides information about track in-use performance for catalyst banks, oxygen sensor banks, evaporative leak detection systems, EGR systems and secondary air system.
The numerator for each component or system tracks the number of times that all conditions necessary for a specific monitor to detect a malfunction have been encountered. The denominator for each component or system tracks the number of times that the vehicle has been operated in the specified conditions.
The count of data items should be reported at the beginning (the first byte).
All data items of the In-use Performance Tracking record consist of two bytes and are reported in this order (each message contains two items, hence the message length is 4).
| Mnemonic | Description |
|---|---|
| OBDCOND | OBD Monitoring Conditions Encountered Counts |
| IGNCNTR | Ignition Counter |
| CATCOMP1 | Catalyst Monitor Completion Counts Bank 1 |
| CATCOND1 | Catalyst Monitor Conditions Encountered Counts Bank 1 |
| CATCOMP2 | Catalyst Monitor Completion Counts Bank 2 |
| CATCOND2 | Catalyst Monitor Conditions Encountered Counts Bank 2 |
| O2SCOMP1 | O2 Sensor Monitor Completion Counts Bank 1 |
| O2SCOND1 | O2 Sensor Monitor Conditions Encountered Counts Bank 1 |
| O2SCOMP2 | O2 Sensor Monitor Completion Counts Bank 2 |
| O2SCOND2 | O2 Sensor Monitor Conditions Encountered Counts Bank 2 |
| EGRCOMP | EGR Monitor Completion Condition Counts |
| EGRCOND | EGR Monitor Conditions Encountered Counts |
| AIRCOMP | AIR Monitor Completion Condition Counts (Secondary Air) |
| AIRCOND | AIR Monitor Conditions Encountered Counts (Secondary Air) |
| EVAPCOMP | EVAP Monitor Completion Condition Counts |
| EVAPCOND | EVAP Monitor Conditions Encountered Counts |
| SO2SCOMP1 | Secondary O2 Sensor Monitor Completion Counts Bank 1 |
| SO2SCOND1 | Secondary O2 Sensor Monitor Conditions Encountered Counts Bank 1 |
| SO2SCOMP2 | Secondary O2 Sensor Monitor Completion Counts Bank 2 |
| SO2SCOND2 | Secondary O2 Sensor Monitor Conditions Encountered Counts Bank 2 |
Service 09 PID 0B - In-use performance tracking for compression ignition engines
It provides information about track in-use performance for NMHC catalyst, NOx catalyst monitor, NOx adsorber monitor, PM filter monitor, exhaust gas sensor monitor, EGR/ VVT monitor, boost pressure monitor and fuel system monitor.
All data items consist of two bytes and are reported in this order (each message contains two items, hence message length is 4):
| Mnemonic | Description |
|---|---|
| OBDCOND | OBD Monitoring Conditions Encountered Counts |
| IGNCNTR | Ignition Counter |
| HCCATCOMP | NMHC Catalyst Monitor Completion Condition Counts |
| HCCATCOND | NMHC Catalyst Monitor Conditions Encountered Counts |
| NCATCOMP | NOx/SCR Catalyst Monitor Completion Condition Counts |
| NCATCOND | NOx/SCR Catalyst Monitor Conditions Encountered Counts |
| NADSCOMP | NOx Adsorber Monitor Completion Condition Counts |
| NADSCOND | NOx Adsorber Monitor Conditions Encountered Counts |
| PMCOMP | PM Filter Monitor Completion Condition Counts |
| PMCOND | PM Filter Monitor Conditions Encountered Counts |
| EGSCOMP | Exhaust Gas Sensor Monitor Completion Condition Counts |
| EGSCOND | Exhaust Gas Sensor Monitor Conditions Encountered Counts |
| EGRCOMP | EGR and/or VVT Monitor Completion Condition Counts |
| EGRCOND | EGR and/or VVT Monitor Conditions Encountered Counts |
| BPCOMP | Boost Pressure Monitor Completion Condition Counts |
| BPCOND | Boost Pressure Monitor Conditions Encountered Counts |
| FUELCOMP | Fuel Monitor Completion Condition Counts |
| FUELCOND | Fuel Monitor Conditions Encountered Counts |
Enumerated PIDs
Some PIDs are to be interpreted specially, and aren't necessarily exactly bitwise encoded, or in any scale. The values for these PIDs are enumerated.
Service 01 PID <templatestyles src="Mono/styles.css" />03 - Fuel system status
A request for this PID returns 2 bytes of data. The first byte describes fuel system #1. The second byte describes fuel system #2 (if it exists) and is encoded identically to the first byte. The meaning assigned to the value of each byte is as follows:
| Value | Description |
|---|---|
| 0 | The motor is off |
| 1 | Open loop due to insufficient engine temperature |
| 2 | Closed loop, using oxygen sensor feedback to determine fuel mix |
| 4 | Open loop due to engine load OR fuel cut due to deceleration |
| 8 | Open loop due to system failure |
| 16 | Closed loop, using at least one oxygen sensor but there is a fault in the feedback system |
Any other value is an invalid response.
Service 01 PID <templatestyles src="Mono/styles.css" />12 - Commanded secondary air status
A request for this PID returns a single byte of data which describes the secondary air status.
| Value | Description |
|---|---|
| 1 | Upstream |
| 2 | Downstream of catalytic converter |
| 4 | From the outside atmosphere or off |
| 8 | Pump commanded on for diagnostics |
Any other value is an invalid response.
Service 01 PID <templatestyles src="Mono/styles.css" />1C - OBD standards this vehicle conforms to
A request for this PID returns a single byte of data which describes which OBD standards this ECU was designed to comply with. The different values the data byte can hold are shown below, next to what they mean:
| Value | Description |
|---|---|
| 1 | OBD-II as defined by the CARB |
| 2 | OBD as defined by the EPA |
| 3 | OBD and OBD-II |
| 4 | OBD-I |
| 5 | Not OBD compliant |
| 6 | EOBD (Europe) |
| 7 | EOBD and OBD-II |
| 8 | EOBD and OBD |
| 9 | EOBD, OBD and OBD II |
| 10 | JOBD (Japan) |
| 11 | JOBD and OBD II |
| 12 | JOBD and EOBD |
| 13 | JOBD, EOBD, and OBD II |
| 14 | Reserved |
| 15 | Reserved |
| 16 | Reserved |
| 17 | Engine Manufacturer Diagnostics (EMD) |
| 18 | Engine Manufacturer Diagnostics Enhanced (EMD+) |
| 19 | Heavy Duty On-Board Diagnostics (Child/Partial) (HD OBD-C) |
| 20 | Heavy Duty On-Board Diagnostics (HD OBD) |
| 21 | World Wide Harmonized OBD (WWH OBD) |
| 22 | Reserved |
| 23 | Heavy Duty Euro OBD Stage I without NOx control (HD EOBD-I) |
| 24 | Heavy Duty Euro OBD Stage I with NOx control (HD EOBD-I N) |
| 25 | Heavy Duty Euro OBD Stage II without NOx control (HD EOBD-II) |
| 26 | Heavy Duty Euro OBD Stage II with NOx control (HD EOBD-II N) |
| 27 | Reserved |
| 28 | Brazil OBD Phase 1 (OBDBr-1) |
| 29 | Brazil OBD Phase 2 (OBDBr-2) |
| 30 | Korean OBD (KOBD) |
| 31 | India OBD I (IOBD I) |
| 32 | India OBD II (IOBD II) |
| 33 | Heavy Duty Euro OBD Stage VI (HD EOBD-IV) |
| 34-250 | Reserved |
| 251-255 | Not available for assignment (SAE J1939 special meaning) |
Service 01 PID <templatestyles src="Mono/styles.css" />51 - Fuel Type Coding
This PID returns a value from an enumerated list giving the fuel type of the vehicle. The fuel type is returned as a single byte, and the value is given by the following table:
| Value | Description |
|---|---|
| 0 | Not available |
| 1 | Gasoline |
| 2 | Methanol |
| 3 | Ethanol |
| 4 | Diesel |
| 5 | LPG |
| 6 | CNG |
| 7 | Propane |
| 8 | Electric |
| 9 | Bifuel running Gasoline |
| 10 | Bifuel running Methanol |
| 11 | Bifuel running Ethanol |
| 12 | Bifuel running LPG |
| 13 | Bifuel running CNG |
| 14 | Bifuel running Propane |
| 15 | Bifuel running Electricity |
| 16 | Bifuel running electric and combustion engine |
| 17 | Hybrid gasoline |
| 18 | Hybrid Ethanol |
| 19 | Hybrid Diesel |
| 20 | Hybrid Electric |
| 21 | Hybrid running electric and combustion engine |
| 22 | Hybrid Regenerative |
| 23 | Bifuel running diesel |
Any other value is reserved by ISO/SAE. There are currently no definitions for flexible-fuel vehicle.
Non-standard PIDs
The majority of all OBD-II PIDs in use are non-standard. For most modern vehicles, there are many more functions supported on the OBD-II interface than are covered by the standard PIDs, and there is relatively minor overlap between vehicle manufacturers for these non-standard PIDs.
There is very limited information available in the public domain for non-standard PIDs. The primary source of information on non-standard PIDs across different manufacturers is maintained by the US-based Equipment and Tool Institute and only available to members. The price of ETI membership for access to scan codes varies based on company size defined by annual sales of automotive tools and equipment in North America:
| Annual Sales in North America | Annual Dues |
|---|---|
| Under $10,000,000 | $5,000 |
| $10,000,000 - $50,000,000 | $7,500 |
| Greater than $50,000,000 | $10,000 |
However, even ETI membership will not provide full documentation for non-standard PIDs. ETI states:[6][7]
Some OEMs refuse to use ETI as a one-stop source of scan tool information. They prefer to do business with each tool company separately. These companies also require that you enter into a contract with them. The charges vary but here is a snapshot as of April 13th, 2015 of the per year charges:
GM $50,000 Honda $5,000 Suzuki $1,000 BMW $25,500 plus $2,000 per update. Updates occur annually.
CAN (11-bit) bus format
As defined in ISO 15765-4, emissions protocols (including OBD-II, EOBD, UDS, etc.) use the ISO-TP transport layer (ISO 15765-2). All CAN frames sent using ISO-TP use a data length of 8 bytes (and DLC of 8). It is recommended to pad the unused data bytes with 0xCC.
The PID query and response occurs on the vehicle's CAN bus. Standard OBD requests and responses use functional addresses. The diagnostic reader initiates a query using CAN ID 7DFh, which acts as a broadcast address, and accepts responses from any ID in the range 7E8h to 7EFh. ECUs that can respond to OBD queries listen both to the functional broadcast ID of 7DFh and one assigned ID in the range 7E0h to 7E7h. Their response has an ID of their assigned ID plus 8 e.g. 7E8h through 7EFh.
This approach allows up to eight ECUs, each independently responding to OBD queries. The diagnostic reader can use the ID in the ECU response frame to continue communication with a specific ECU. In particular, multi-frame communication requires a response to the specific ECU ID rather than to ID 7DFh.
CAN bus may also be used for communication beyond the standard OBD messages. Physical addressing uses particular CAN IDs for specific modules (e.g., 720h for the instrument cluster in Fords) with proprietary frame payloads.
Query
The functional PID query is sent to the vehicle on the CAN bus at ID 7DFh, using 8 data bytes. The bytes are:
| Byte | ||||||||
|---|---|---|---|---|---|---|---|---|
| PID Type | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| SAE Standard | Number of additional data bytes: 2 |
Service 01 = show current data; 02 = freeze frame; etc. |
PID code (e.g.: 05 = Engine coolant temperature) |
not used (ISO 15765-2 suggests CCh) | ||||
| Vehicle specific | Number of additional data bytes: 3 |
Custom service: (e.g.: 22 = enhanced data) | PID code (e.g.: 4980h) |
not used (ISO 15765-2 suggests CCh) | ||||
Response
The vehicle responds to the PID query on the CAN bus with message IDs that depend on which module responded. Typically the engine or main ECU responds at ID 7E8h. Other modules, like the hybrid controller or battery controller in a Prius, respond at 07E9h, 07EAh, 07EBh, etc. These are 8h higher than the physical address the module responds to. Even though the number of bytes in the returned value is variable, the message uses 8 data bytes regardless (CAN bus protocol form Frameformat with 8 data bytes). The bytes are:
| Byte | ||||||||
|---|---|---|---|---|---|---|---|---|
| CAN Address | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| SAE Standard 7E8h, 7E9h, 7EAh, etc. |
Number of additional data bytes: 3 to 6 |
Custom service Same as query, except that 40h is added to the service value. So: 41h = show current data; 42h = freeze frame; etc. |
PID code (e.g.: 05 = Engine coolant temperature) |
value of the specified parameter, byte 0 | value, byte 1 (optional) | value, byte 2 (optional) | value, byte 3 (optional) | not used (may be 00h or 55h) |
| Vehicle specific 7E8h, or 8h + physical ID of module. |
Number of additional data bytes: 4to 7 |
Custom service: same as query, except that 40h is added to the service value.(e.g.: 62h = response to service 22h request) | PID code (e.g.: 4980h) |
value of the specified parameter, byte 0 | value, byte 1 (optional) | value, byte 2 (optional) | value, byte 3 (optional) | |
| Vehicle specific 7E8h, or 8h + physical ID of module. |
Number of additional data bytes: 3 |
7Fh this a general response usually indicating the module doesn't recognize the request. | Custom service: (e.g.: 22h = enhanced diagnostic data by PID, 21h = enhanced data by offset) | 31h | not used (may be 00h) | |||
See also
- Engine control unit
- ELM327, a very common microcontroller (silicon chip) and multi-protocol interpreter used in OBD-II vehicle communication interfaces
- Unified Diagnostic Services, the ISO standard
References
<templatestyles src="Reflist/styles.css" />
- ↑ a b Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ a b Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1". showing cost of access to OBD-II PID documentation
- ↑ Script error: No such module "citation/CS1".
Script error: No such module "Check for unknown parameters".
Further reading
- Script error: No such module "Citation/CS1".
- Script error: No such module "Citation/CS1".
- Script error: No such module "citation/CS1".