OBD-II PIDs

From Wikipedia, the free encyclopedia

OBD-II PIDs (On-board diagnostics Parameter IDs) are codes used to request data from a vehicle, used as a diagnostic tool.

SAE standard J/1939 defines many PIDs, but manufacturers also define many more PIDs specific to their vehicles. All light duty vehicles (i.e. less than 8,500 pounds) sold in North America since 1996, as well as medium duty vehicles (i.e. 8,500-14,000 pounds) beginning in 2005, and heavy duty vehicles (i.e. greater than 14,000 pounds) beginning in 2010,[1] are required to support OBD-II diagnostics, using a standardized data link connector, and a subset of the SAE J/1979 defined PIDs (or SAE J/1939 as applicable for medium/heavy duty vehicles), primarily for state mandated emissions inspections.

Typically, an automotive technician will use PIDs with a scan tool connected to the vehicle's OBD-II connector.

  • The technician enters the PID
  • The scan tool sends it to the vehicle's controller–area network (CAN)-bus, VPW, PWM, ISO, KWP. (After 2008, CAN only)
  • A device on the bus recognizes the PID as one it is responsible for, and reports the value for that PID to the bus
  • The scan tool reads the response, and displays it to the technician

Modes[edit]

There are 10 modes of operation described in the latest OBD-II standard SAE J1979. They are as follows:

Mode (hex) Description
01Show current data
02Show freeze frame data
03Show stored Diagnostic Trouble Codes
04Clear Diagnostic Trouble Codes and stored values
05Test results, oxygen sensor monitoring (non CAN only)
06Test results, other component/system monitoring (Test results, oxygen sensor monitoring for CAN only)
07Show pending Diagnostic Trouble Codes (detected during current or last driving cycle)
08Control operation of on-board component/system
09Request vehicle information
0APermanent Diagnostic Trouble Codes (DTCs) (Cleared DTCs)

Vehicle manufacturers are not required to support all modes. Each manufacturer may define additional modes above #9 (e.g.: mode 22 as defined by SAE J2190 for Ford/GM, mode 21 for Toyota) for other information e.g. the voltage of the traction battery in a hybrid electric vehicle (HEV).[2]

Standard PIDs[edit]

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 modes 1 and 2 are basically identical, except that Mode 1 provides current information, whereas Mode 2 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 Mode 1, and PID 02, which is only available in Mode 2. If Mode 2 PID 02 returns zero, then there is no snapshot and all other Mode 2 data is meaningless.

When using Bit-Encoded-Notation, quantities like C4 means bit 4 from data byte C. Each bit is numerated from 0 to 7, so 7 is the most significant bit and 0 is the least significant bit.

ABCD
A7A6A5A4A3A2A1A0B7B6B5B4B3B2B1B0C7C6C5C4C3C2C1C0D7D6D5D4D3D2D1D0

Mode 01[edit]

PID
(hex)
Data bytes returned Description Min value Max value Units Formula[a]
004PIDs supported [01 - 20]   Bit encoded [A7..D0] == [PID $01..PID $20] See below
014Monitor status since DTCs cleared. (Includes malfunction indicator lamp (MIL) status and number of DTCs.)   Bit encoded. See below
022Freeze DTC    
032Fuel system status   Bit encoded. See below
041Calculated engine load0100 %100255A{\displaystyle {\tfrac {100}{255}}A}{\displaystyle {\tfrac {100}{255}}A} (or A2.55{\displaystyle {\tfrac {A}{2.55}}}{\displaystyle {\tfrac {A}{2.55}}})
051Engine coolant temperature-40215°CA−40{\displaystyle A-40}{\displaystyle A-40}
061Short term fuel trim—Bank 1-100 (Reduce Fuel: Too Rich)99.2 (Add Fuel: Too Lean) %
100128A−100{\displaystyle {\frac {100}{128}}A-100}
{\displaystyle {\frac {100}{128}}A-100}
(or A1.28−100{\displaystyle {\tfrac {A}{1.28}}-100}{\displaystyle {\tfrac {A}{1.28}}-100} )
071Long term fuel trim—Bank 1
081Short term fuel trim—Bank 2
091Long term fuel trim—Bank 2
0A1Fuel pressure (gauge pressure)0765kPa3A{\displaystyle 3A}{\displaystyle 3A}
0B1Intake manifold absolute pressure0255kPaA{\displaystyle A}A
0C2Engine RPM016,383.75rpm256A+B4{\displaystyle {\frac {256A+B}{4}}}{\displaystyle {\frac {256A+B}{4}}}
0D1Vehicle speed0255km/hA{\displaystyle A}A
0E1Timing advance-6463.5° beforeTDCA2−64{\displaystyle {\frac {A}{2}}-64}{\displaystyle {\frac {A}{2}}-64}
0F1Intake air temperature-40215°CA−40{\displaystyle A-40}{\displaystyle A-40}
102MAF air flow rate0655.35grams/sec256A+B100{\displaystyle {\frac {256A+B}{100}}}{\displaystyle {\frac {256A+B}{100}}}
111Throttle position0100 %100255A{\displaystyle {\tfrac {100}{255}}A}{\displaystyle {\tfrac {100}{255}}A}
121Commanded secondary air status   Bit encoded. See below
131Oxygen sensors present (in 2 banks)   [A0..A3] == Bank 1, Sensors 1-4. [A4..A7] == Bank 2...
142Oxygen Sensor 1
A: Voltage
B: Short term fuel trim
0
-100
1.275
99.2
volts

%

A200{\displaystyle {\frac {A}{200}}}
{\displaystyle {\frac {A}{200}}}
100128B−100{\displaystyle {\frac {100}{128}}B-100}
{\displaystyle {\frac {100}{128}}B-100}
(if B==$FF, sensor is not used in trim calculation)
152Oxygen Sensor 2
A: Voltage
B: Short term fuel trim
162Oxygen Sensor 3
A: Voltage
B: Short term fuel trim
172Oxygen Sensor 4
A: Voltage
B: Short term fuel trim
182Oxygen Sensor 5
A: Voltage
B: Short term fuel trim
192Oxygen Sensor 6
A: Voltage
B: Short term fuel trim
1A2Oxygen Sensor 7
A: Voltage
B: Short term fuel trim
1B2Oxygen Sensor 8
A: Voltage
B: Short term fuel trim
1C1OBD standards this vehicle conforms to   Bit encoded. See below
1D1Oxygen sensors present (in 4 banks)   Similar to PID 13, but [A0..A7] == [B1S1, B1S2, B2S1, B2S2, B3S1, B3S2, B4S1, B4S2]
1E1Auxiliary input status   A0 == Power Take Off (PTO) status (1 == active)
[A1..A7] not used
1F2Run time since engine start065,535seconds256A+B{\displaystyle 256A+B}{\displaystyle 256A+B}
204PIDs supported [21 - 40]   Bit encoded [A7..D0] == [PID $21..PID $40] See below
212Distance traveled with malfunction indicator lamp (MIL) on065,535km256A+B{\displaystyle 256A+B}{\displaystyle 256A+B}
222Fuel Rail Pressure (relative to manifold vacuum)05177.265kPa0.079(256A+B){\displaystyle 0.079(256A+B)}{\displaystyle 0.079(256A+B)}
232Fuel Rail Gauge Pressure (diesel, or gasoline direct injection)0655,350kPa10(256A+B){\displaystyle 10(256A+B)}{\displaystyle 10(256A+B)}
244Oxygen Sensor 1
AB: Fuel–Air Equivalence Ratio
CD: Voltage
0
0
< 2
< 8
ratio
V
265536(256A+B){\displaystyle {\frac {2}{65536}}(256A+B)}
{\displaystyle {\frac {2}{65536}}(256A+B)}
865536(256C+D){\displaystyle {\frac {8}{65536}}(256C+D)}
{\displaystyle {\frac {8}{65536}}(256C+D)}
254Oxygen Sensor 2
AB: Fuel–Air Equivalence Ratio
CD: Voltage
264Oxygen Sensor 3
AB: Fuel–Air Equivalence Ratio
CD: Voltage
274Oxygen Sensor 4
AB: Fuel–Air Equivalence Ratio
CD: Voltage
284Oxygen Sensor 5
AB: Fuel–Air Equivalence Ratio
CD: Voltage
294Oxygen Sensor 6
AB: Fuel–Air Equivalence Ratio
CD: Voltage
2A4Oxygen Sensor 7
AB: Fuel–Air Equivalence Ratio
CD: Voltage
2B4Oxygen Sensor 8
AB: Fuel–Air Equivalence Ratio
CD: Voltage
2C1Commanded EGR0100 %100255A{\displaystyle {\tfrac {100}{255}}A}{\displaystyle {\tfrac {100}{255}}A}
2D1EGR Error-10099.2 %100128A−100{\displaystyle {\tfrac {100}{128}}A-100}{\displaystyle {\tfrac {100}{128}}A-100}
2E1Commanded evaporative purge0100 %100255A{\displaystyle {\tfrac {100}{255}}A}{\displaystyle {\tfrac {100}{255}}A}
2F1Fuel Tank Level Input0100 %100255A{\displaystyle {\tfrac {100}{255}}A}{\displaystyle {\tfrac {100}{255}}A}
301Warm-ups since codes cleared0255countA{\displaystyle A}A
312Distance traveled since codes cleared065,535km256A+B{\displaystyle 256A+B}{\displaystyle 256A+B}
322Evap. System Vapor Pressure-8,1928191.75Pa256A+B4{\displaystyle {\frac {256A+B}{4}}}{\displaystyle {\frac {256A+B}{4}}}

(AB is two's complement signed)[3]

331Absolute Barometric Pressure0255kPaA{\displaystyle A}A
344Oxygen Sensor 1
AB: Fuel–Air Equivalence Ratio
CD: Current
0
-128
< 2
<128
ratio
mA
265536(256A+B){\displaystyle {\frac {2}{65536}}(256A+B)}
{\displaystyle {\frac {2}{65536}}(256A+B)}
256C+D256−128{\displaystyle {\frac {256C+D}{256}}-128}
{\displaystyle {\frac {256C+D}{256}}-128}
or C+D256−128{\displaystyle C+{\frac {D}{256}}-128}{\displaystyle C+{\frac {D}{256}}-128}
354Oxygen Sensor 2
AB: Fuel–Air Equivalence Ratio
CD: Current
364Oxygen Sensor 3
AB: Fuel–Air Equivalence Ratio
CD: Current
374Oxygen Sensor 4
AB: Fuel–Air Equivalence Ratio
CD: Current
384Oxygen Sensor 5
AB: Fuel–Air Equivalence Ratio
CD: Current
394Oxygen Sensor 6
AB: Fuel–Air Equivalence Ratio
CD: Current
3A4Oxygen Sensor 7
AB: Fuel–Air Equivalence Ratio
CD: Current
3B4Oxygen Sensor 8
AB: Fuel–Air Equivalence Ratio
CD: Current
3C2Catalyst Temperature: Bank 1, Sensor 1-406,513.5°C 256A+B10−40{\displaystyle {\frac {256A+B}{10}}-40}{\displaystyle {\frac {256A+B}{10}}-40}
3D2Catalyst Temperature: Bank 2, Sensor 1
3E2Catalyst Temperature: Bank 1, Sensor 2
3F2Catalyst Temperature: Bank 2, Sensor 2
404PIDs supported [41 - 60]   Bit encoded [A7..D0] == [PID $41..PID $60] See below
414Monitor status this drive cycle   Bit encoded. See below
422Control module voltage065.535V256A+B1000{\displaystyle {\frac {256A+B}{1000}}}{\displaystyle {\frac {256A+B}{1000}}}
432Absolute load value025,700 %100255(256A+B){\displaystyle {\tfrac {100}{255}}(256A+B)}{\displaystyle {\tfrac {100}{255}}(256A+B)}
442Fuel–Air commanded equivalence ratio0< 2ratio265536(256A+B){\displaystyle {\tfrac {2}{65536}}(256A+B)}{\displaystyle {\tfrac {2}{65536}}(256A+B)}
451Relative throttle position0100 %100255A{\displaystyle {\tfrac {100}{255}}A}{\displaystyle {\tfrac {100}{255}}A}
461Ambient air temperature-40215°CA−40{\displaystyle A-40}{\displaystyle A-40}
471Absolute throttle position B0100 % 100255A{\displaystyle {\frac {100}{255}}A}{\displaystyle {\frac {100}{255}}A}
481Absolute throttle position C
491Accelerator pedal position D
4A1Accelerator pedal position E
4B1Accelerator pedal position F
4C1Commanded throttle actuator
4D2Time run with MIL on065,535minutes 256A+B{\displaystyle 256A+B}{\displaystyle 256A+B}
4E2Time since trouble codes cleared
4F4Maximum value for Fuel–Air equivalence ratio, oxygen sensor voltage, oxygen sensor current, and intake manifold absolute pressure0, 0, 0, 0255, 255, 255, 2550ratio, V, mA, kPaA, B, C, D*10
504Maximum value for air flow rate from mass air flow sensor02550g/sA*10, B, C, and D are reserved for future use
511Fuel Type   From fuel type table see below
521Ethanol fuel %0100 %100255A{\displaystyle {\tfrac {100}{255}}A}{\displaystyle {\tfrac {100}{255}}A}
532Absolute Evap system Vapor Pressure0327.675kPa256A+B200{\displaystyle {\frac {256A+B}{200}}}{\displaystyle {\frac {256A+B}{200}}}
542Evap system vapor pressure-32,76732,768Pa((A*256)+B)-32767
552Short term secondary oxygen sensor trim, A: bank 1, B: bank 3-10099.2 % 100128A−100{\displaystyle {\frac {100}{128}}A-100}{\displaystyle {\frac {100}{128}}A-100}

100128B−100{\displaystyle {\frac {100}{128}}B-100}{\displaystyle {\frac {100}{128}}B-100}

562Long term secondary oxygen sensor trim, A: bank 1, B: bank 3
572Short term secondary oxygen sensor trim, A: bank 2, B: bank 4
582Long term secondary oxygen sensor trim, A: bank 2, B: bank 4
592Fuel rail absolute pressure0655,350kPa10(256A+B){\displaystyle 10(256A+B)}{\displaystyle 10(256A+B)}
5A1Relative accelerator pedal position0100 %100255A{\displaystyle {\tfrac {100}{255}}A}{\displaystyle {\tfrac {100}{255}}A}
5B1Hybrid battery pack remaining life0100 %100255A{\displaystyle {\tfrac {100}{255}}A}{\displaystyle {\tfrac {100}{255}}A}
5C1Engine oil temperature-40210°CA−40{\displaystyle A-40}{\displaystyle A-40}
5D2Fuel injection timing-210.00301.992°256A+B128−210{\displaystyle {\frac {256A+B}{128}}-210}{\displaystyle {\frac {256A+B}{128}}-210}
5E2Engine fuel rate03276.75L/h256A+B20{\displaystyle {\frac {256A+B}{20}}}{\displaystyle {\frac {256A+B}{20}}}
5F1Emission requirements to which vehicle is designed   Bit Encoded
604PIDs supported [61 - 80]   Bit encoded [A7..D0] == [PID $61..PID $80] See below
611Driver's demand engine - percent torque-125125 %A-125
621Actual engine - percent torque-125125 %A-125
632Engine reference torque065,535Nm256A+B{\displaystyle 256A+B}{\displaystyle 256A+B}
645Engine percent torque data-125125 %A-125 Idle
B-125 Engine point 1
C-125 Engine point 2
D-125 Engine point 3
E-125 Engine point 4
652Auxiliary input / output supported   Bit Encoded
665Mass air flow sensor    
673Engine coolant temperature    
687Intake air temperature sensor    
697Commanded EGR and EGR Error    
6A5Commanded Diesel intake air flow control and relative intake air flow position    
6B5Exhaust gas recirculation temperature    
6C5Commanded throttle actuator control and relative throttle position    
6D6Fuel pressure control system    
6E5Injection pressure control system    
6F3Turbocharger compressor inlet pressure    
709Boost pressure control    
715Variable Geometry turbo (VGT) control    
725Wastegate control    
735Exhaust pressure    
745Turbocharger RPM    
757Turbocharger temperature    
767Turbocharger temperature    
775Charge air cooler temperature (CACT)    
789Exhaust Gas temperature (EGT) Bank 1   Special PID. See below
799Exhaust Gas temperature (EGT) Bank 2   Special PID. See below
7A7Diesel particulate filter (DPF)    
7B7Diesel particulate filter (DPF)    
7C9Diesel Particulate filter (DPF) temperature    
7D1NOx NTE control area status    
7E1PM NTE control area status    
7F13Engine run time    
804PIDs supported [81 - A0]   Bit encoded [A7..D0] == [PID $81..PID $A0] See below
8121Engine run time for Auxiliary Emissions Control Device(AECD)    
8221Engine run time for Auxiliary Emissions Control Device(AECD)    
835NOx sensor    
84 Manifold surface temperature    
85 NOx reagent system    
86 Particulate matter (PM) sensor    
87 Intake manifold absolute pressure    
A04PIDs supported [A1 - C0]   Bit encoded [A7..D0] == [PID $A1..PID $C0] See below
C04PIDs supported [C1 - E0]   Bit encoded [A7..D0] == [PID $C1..PID $E0] See below
C3 ? ? ? ? ?Returns numerous data, including Drive Condition ID and Engine Speed*
C4 ? ? ? ? ?B5 is Engine Idle Request
B6 is Engine Stop Request*
PID
(hex)
Data bytes returned Description Min value Max value Units Formula[a]

Mode 02[edit]

Mode 02 accepts the same PIDs as mode 01, with the same meaning, but information given is from when the freeze frame was created.

You have to send the frame number in the data section of the message.

PID
(hex)
Data bytes returned Description Min value Max value Units Formula[a]
022DTC that caused freeze frame to be stored.   BCD encoded. Decoded as in mode 3

Mode 03[edit]

PID
(hex)
Data bytes returned Description Min value Max value Units Formula[a]
N/An*6Request trouble codes   3 codes per message frame. See below

Mode 04[edit]

PID
(hex)
Data bytes returned Description Min value Max value Units Formula[a]
N/A0Clear trouble codes / Malfunction indicator lamp (MIL) / Check engine light   Clears all stored trouble codes and turns the MIL off.

Mode 05[edit]

PID
(hex)
Data bytes returned Description Min value Max value Units Formula[a]
0100 OBD Monitor IDs supported ($01 – $20)    
0101 O2 Sensor Monitor Bank 1 Sensor 10.001.275volts0.005 Rich to lean sensor threshold voltage
0102 O2 Sensor Monitor Bank 1 Sensor 20.001.275volts0.005 Rich to lean sensor threshold voltage
0103 O2 Sensor Monitor Bank 1 Sensor 30.001.275volts0.005 Rich to lean sensor threshold voltage
0104 O2 Sensor Monitor Bank 1 Sensor 40.001.275volts0.005 Rich to lean sensor threshold voltage
0105 O2 Sensor Monitor Bank 2 Sensor 10.001.275volts0.005 Rich to lean sensor threshold voltage
0106 O2 Sensor Monitor Bank 2 Sensor 20.001.275volts0.005 Rich to lean sensor threshold voltage
0107 O2 Sensor Monitor Bank 2 Sensor 30.001.275volts0.005 Rich to lean sensor threshold voltage
0108 O2 Sensor Monitor Bank 2 Sensor 40.001.275volts0.005 Rich to lean sensor threshold voltage
0109 O2 Sensor Monitor Bank 3 Sensor 10.001.275volts0.005 Rich to lean sensor threshold voltage
010A O2 Sensor Monitor Bank 3 Sensor 20.001.275volts0.005 Rich to lean sensor threshold voltage
010B O2 Sensor Monitor Bank 3 Sensor 30.001.275volts0.005 Rich to lean sensor threshold voltage
010C O2 Sensor Monitor Bank 3 Sensor 40.001.275volts0.005 Rich to lean sensor threshold voltage
010D O2 Sensor Monitor Bank 4 Sensor 10.001.275volts0.005 Rich to lean sensor threshold voltage
010E O2 Sensor Monitor Bank 4 Sensor 20.001.275volts0.005 Rich to lean sensor threshold voltage
010F O2 Sensor Monitor Bank 4 Sensor 30.001.275volts0.005 Rich to lean sensor threshold voltage
0110 O2 Sensor Monitor Bank 4 Sensor 40.001.275volts0.005 Rich to lean sensor threshold voltage
0201 O2 Sensor Monitor Bank 1 Sensor 10.001.275volts0.005 Lean to Rich sensor threshold voltage
0202 O2 Sensor Monitor Bank 1 Sensor 20.001.275volts0.005 Lean to Rich sensor threshold voltage
0203 O2 Sensor Monitor Bank 1 Sensor 30.001.275volts0.005 Lean to Rich sensor threshold voltage
0204 O2 Sensor Monitor Bank 1 Sensor 40.001.275volts0.005 Lean to Rich sensor threshold voltage
0205 O2 Sensor Monitor Bank 2 Sensor 10.001.275volts0.005 Lean to Rich sensor threshold voltage
0206 O2 Sensor Monitor Bank 2 Sensor 20.001.275volts0.005 Lean to Rich sensor threshold voltage
0207 O2 Sensor Monitor Bank 2 Sensor 30.001.275volts0.005 Lean to Rich sensor threshold voltage
0208 O2 Sensor Monitor Bank 2 Sensor 40.001.275volts0.005 Lean to Rich sensor threshold voltage
0209 O2 Sensor Monitor Bank 3 Sensor 10.001.275volts0.005 Lean to Rich sensor threshold voltage
020A O2 Sensor Monitor Bank 3 Sensor 20.001.275volts0.005 Lean to Rich sensor threshold voltage
020B O2 Sensor Monitor Bank 3 Sensor 30.001.275volts0.005 Lean to Rich sensor threshold voltage
020C O2 Sensor Monitor Bank 3 Sensor 40.001.275volts0.005 Lean to Rich sensor threshold voltage
020D O2 Sensor Monitor Bank 4 Sensor 10.001.275volts0.005 Lean to Rich sensor threshold voltage
020E O2 Sensor Monitor Bank 4 Sensor 20.001.275volts0.005 Lean to Rich sensor threshold voltage
020F O2 Sensor Monitor Bank 4 Sensor 30.001.275volts0.005 Lean to Rich sensor threshold voltage
0210 O2 Sensor Monitor Bank 4 Sensor 40.001.275volts0.005 Lean to Rich sensor threshold voltage
PID
(hex)
Data bytes returned Description Min value Max value Units Formula[a]

Mode 09[edit]

PID
(hex)
Data bytes returned Description Min value Max value Units Formula[a]
004Mode 9 supported PIDs (01 to 20)   Bit encoded. [A7..D0] = [PID $01..PID $20] See below
011VIN Message Count in PID 02. Only for ISO 9141-2, ISO 14230-4 and SAE J1850.   Usually value will be 5.
0217-20Vehicle Identification Number (VIN)   17-char VIN, ASCII-encoded and left-padded with null chars (0x00) if needed to.
031Calibration ID message count for PID 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).
0416Calibration ID   Up to 16 ASCII chars. Data bytes not used will be reported as null bytes (0x00).
051Calibration verification numbers (CVN) message count for PID 06. Only for ISO 9141-2, ISO 14230-4 and SAE J1850.    
064Calibration Verification Numbers (CVN)   Raw data left-padded with null characters (0x00). Usually displayed as hex string.
071In-use performance tracking message count for PID 08 and 0B. Only for ISO 9141-2, ISO 14230-4 and SAE J1850.810 8 if sixteen (16) values are required to be reported, 9 if eighteen (18) values are required to be reported, and 10 if twenty (20) values are required to be reported (one message reports two values, each one consisting in two bytes).
084In-use performance tracking for spark ignition vehicles   4 or 5 messages, each one containing 4 bytes (two values). See below
091ECU name message count for PID 0A    
0A20ECU name   ASCII-coded. Right-padded with null chars (0x00).
0B4In-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 Formula[a]
  1. Jump up to:a b c d e f g h i In the formula column, letters A, B, C, etc. represent the decimal equivalent of the first, second, third, etc. bytes of data. Where a (?) appears, contradictory or incomplete information was available.

Bitwise encoded PIDs[edit]

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:

Mode 1 PID 00[edit]

A request for this PID returns 4 bytes of data. Each bit, from MSB to LSB, represents one of the next 32 PIDs and is giving information about if it is supported.

For example, if the car response is BE1FA813, it can be decoded like this:

HexadecimalBE1FA813
Binary10111110000111111010100000010011
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 number0102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F20

So, supported PIDs are: 0103040506070C0D0E0F101113151C1F and 20

Mode 1 PID 01[edit]

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 A7 (MSB of byte A, the first byte) indicates whether or not the MIL (check engine light) is illuminated. Bits A6 throughA0 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. Note that test availability is indicated by set (1) bit and completeness is indicated by reset (0) bit.

Bit Name Definition
A7MILOff or On, indicates if the CEL/MIL is on (or should be on)
A6-A0DTC_CNTNumber of confirmed emissions-related DTCs available for display.
B7RESERVEDReserved (should be 0)
B3NO NAME0 = Spark ignition monitors supported (e.g. Otto or Wankel engines)
1 = Compression ignition monitors supported (e.g. Diesel engines)

Here are the common bit B definitions, they are test based.

  Test available Test incomplete
ComponentsB2B6
Fuel SystemB1B5
MisfireB0B4

The third and fourth bytes are to be interpreted differently depending on if the engine is spark ignition (e.g. Otto or Wankel engines) or compression ignition (e.g. Diesel engines). In the second (B) byte, bit 3 indicates how to interpret the C and D bytes, with 0 being spark (Otto or Wankel) and 1 (set) being compression (Diesel).

The bytes C and D for spark ignition monitors (e.g. Otto or Wankel engines):

  Test available Test incomplete
EGR SystemC7D7
Oxygen Sensor HeaterC6D6
Oxygen SensorC5D5
A/C RefrigerantC4D4
Secondary Air SystemC3D3
Evaporative SystemC2D2
Heated CatalystC1D1
CatalystC0D0

And the bytes C and D for compression ignition monitors (Diesel engines):

  Test available Test incomplete
EGR and/or VVT SystemC7D7
PM filter monitoringC6D6
Exhaust Gas SensorC5D5
- Reserved -C4D4
Boost PressureC3D3
- Reserved -C2D2
NOx/SCR MonitorC1D1
NMHC Catalyst[a]C0D0
  1. Jump up^ NMHC may stand for Non-Methane HydroCarbons, but J1979 does not enlighten us. The translation would be the ammonia sensor in the SCR catalyst.
Mode 1 PID 41[edit]

A request for this PID returns 4 bytes of data. The first byte is always zero. The second, third, and fourth bytes give information about the availability and completeness of certain on-board tests. As with PID 01, the third and fourth bytes are to be interpreted differently depending on the ignition type (B3) – with 0 being spark and 1 (set) being compression. Note again that test availability is represented by a set (1) bit and completeness is represented by a reset (0) bit.

Here are the common bit B definitions, they are test based.

  Test available Test incomplete
ComponentsB2B6
Fuel SystemB1B5
MisfireB0B4

The bytes C and D for spark ignition monitors (e.g. Otto or Wankel engines):

  Test available Test incomplete
EGR SystemC7D7
Oxygen Sensor HeaterC6D6
Oxygen SensorC5D5
A/C RefrigerantC4D4
Secondary Air SystemC3D3
Evaporative SystemC2D2
Heated CatalystC1D1
CatalystC0D0

And the bytes C and D for compression ignition monitors (Diesel engines):

  Test available Test incomplete
EGR and/or VVT SystemC7D7
PM filter monitoringC6D6
Exhaust Gas SensorC5D5
- Reserved -C4D4
Boost PressureC3D3
- Reserved -C2D2
NOx/SCR MonitorC1D1
NMHC Catalyst[a]C0D0
  1. Jump up^ NMHC may stand for Non-Methane HydroCarbons, but J1979 does not enlighten us. The translation would be the ammonia sensor in the SCR catalyst.
Mode 1 PID 78[edit]

A request for this PID will return 9 bytes of data. The first byte is a bit encoded field indicating which EGT sensors are supported:

Byte Description
ASupported EGT sensors
B-CTemperature read by EGT11
D-ETemperature read by EGT12
F-GTemperature read by EGT13
H-ITemperature read by EGT14

The first byte is bit-encoded as follows:

Bit Description
A7-A4Reserved
A3EGT bank 1, sensor 4 Supported?
A2EGT bank 1, sensor 3 Supported?
A1EGT bank 1, sensor 2 Supported?
A0EGT bank 1, sensor 1 Supported?

The remaining bytes are 16 bit integers indicating the temperature in degrees Celsius in the range -40 to 6513.5 (scale 0.1), using the usual (A×256+B)/10−40{\displaystyle (A\times 256+B)/10-40}(A\times 256+B)/10-40formula (MSB is A, LSB is B). Only values for which the corresponding sensor is supported are meaningful.

The same structure applies to PID 79, but values are for sensors of bank 2.

Mode 3 (no PID required)[edit]

A request for this mode 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 (4 bytes) 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. The text description of a trouble code may be decoded as follows. The first character in the trouble code is determined by the first two bits in the first byte:

A7-A6 First DTC character
00P - Powertrain
01C - Chassis
10B - Body
11U - Network

The two following digits are encoded as 2 bits. The second character in the DTC is a number defined by the following table:

A5-A4 Second DTC character
000
011
102
113

The third character in the DTC is a number defined by

A3-A0 Third DTC character
00000
00011
00102
00113
01004
01015
01106
01117
10008
10019
1010A
1011B
1100C
1101D
1110E
1111F

The fourth and fifth characters are defined in the same way as the third, but using bits B7-B4 and B3-B0. The resulting five-character code should look something like "U0158" and can be looked up in a table of OBD-II DTCs. Hexadecimal characters (0-9, A-F), while relatively rare, are allowed in the last 3 positions of the code itself.

Mode 9 PID 08[edit]

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 (2) bytes and are reported in this order (each message contains two items, hence the message length is 4).

Mnemonic Description
OBDCONDOBD Monitoring Conditions Encountered Counts
IGNCNTRIgnition Counter
CATCOMP1Catalyst Monitor Completion Counts Bank 1
CATCOND1Catalyst Monitor Conditions Encountered Counts Bank 1
CATCOMP2Catalyst Monitor Completion Counts Bank 2
CATCOND2Catalyst Monitor Conditions Encountered Counts Bank 2
O2SCOMP1O2 Sensor Monitor Completion Counts Bank 1
O2SCOND1O2 Sensor Monitor Conditions Encountered Counts Bank 1
O2SCOMP2O2 Sensor Monitor Completion Counts Bank 2
O2SCOND2O2 Sensor Monitor Conditions Encountered Counts Bank 2
EGRCOMPEGR Monitor Completion Condition Counts
EGRCONDEGR Monitor Conditions Encountered Counts
AIRCOMPAIR Monitor Completion Condition Counts (Secondary Air)
AIRCONDAIR Monitor Conditions Encountered Counts (Secondary Air)
EVAPCOMPEVAP Monitor Completion Condition Counts
EVAPCONDEVAP Monitor Conditions Encountered Counts
SO2SCOMP1Secondary O2 Sensor Monitor Completion Counts Bank 1
SO2SCOND1Secondary O2 Sensor Monitor Conditions Encountered Counts Bank 1
SO2SCOMP2Secondary O2 Sensor Monitor Completion Counts Bank 2
SO2SCOND2Secondary O2 Sensor Monitor Conditions Encountered Counts Bank 2
Mode 9 PID 0B[edit]

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 (2) bytes and are reported in this order (each message contains two items, hence message length is 4):

Mnemonic Description
OBDCONDOBD Monitoring Conditions Encountered Counts
IGNCNTRIgnition Counter
HCCATCOMPNMHC Catalyst Monitor Completion Condition Counts
HCCATCONDNMHC Catalyst Monitor Conditions Encountered Counts
NCATCOMPNOx/SCR Catalyst Monitor Completion Condition Counts
NCATCONDNOx/SCR Catalyst Monitor Conditions Encountered Counts
NADSCOMPNOx Adsorber Monitor Completion Condition Counts
NADSCONDNOx Adsorber Monitor Conditions Encountered Counts
PMCOMPPM Filter Monitor Completion Condition Counts
PMCONDPM Filter Monitor Conditions Encountered Counts
EGSCOMPExhaust Gas Sensor Monitor Completion Condition Counts
EGSCONDExhaust Gas Sensor Monitor Conditions Encountered Counts
EGRCOMPEGR and/or VVT Monitor Completion Condition Counts
EGRCONDEGR and/or VVT Monitor Conditions Encountered Counts
BPCOMPBoost Pressure Monitor Completion Condition Counts
BPCONDBoost Pressure Monitor Conditions Encountered Counts
FUELCOMPFuel Monitor Completion Condition Counts
FUELCONDFuel Monitor Conditions Encountered Counts

Enumerated PIDs[edit]

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.

Mode 1 PID 03[edit]

A request for this PID returns 2 bytes of data. The first byte describes fuel system #1.

Value Description
1Open loop due to insufficient engine temperature
2Closed loop, using oxygen sensor feedback to determine fuel mix
4Open loop due to engine load OR fuel cut due to deceleration
8Open loop due to system failure
16Closed loop, using at least one oxygen sensor but there is a fault in the feedback system

Any other value is an invalid response. There can only be one bit set at most.

The second byte describes fuel system #2 (if it exists) and is encoded identically to the first byte.

Mode 1 PID 12[edit]

A request for this PID returns a single byte of data which describes the secondary air status.

Value Description
1Upstream
2Downstream of catalytic converter
4From the outside atmosphere or off
8Pump commanded on for diagnostics

Any other value is an invalid response. There can only be one bit set at most.

Mode 1 PID 1C[edit]

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
1OBD-II as defined by the CARB
2OBD as defined by the EPA
3OBD and OBD-II
4OBD-I
5Not OBD compliant
6EOBD (Europe)
7EOBD and OBD-II
8EOBD and OBD
9EOBD, OBD and OBD II
10JOBD (Japan)
11JOBD and OBD II
12JOBD and EOBD
13JOBD, EOBD, and OBD II
14Reserved
15Reserved
16Reserved
17Engine Manufacturer Diagnostics (EMD)
18Engine Manufacturer Diagnostics Enhanced (EMD+)
19Heavy Duty On-Board Diagnostics (Child/Partial) (HD OBD-C)
20Heavy Duty On-Board Diagnostics (HD OBD)
21World Wide Harmonized OBD (WWH OBD)
22Reserved
23Heavy Duty Euro OBD Stage I without NOx control (HD EOBD-I)
24Heavy Duty Euro OBD Stage I with NOx control (HD EOBD-I N)
25Heavy Duty Euro OBD Stage II without NOx control (HD EOBD-II)
26Heavy Duty Euro OBD Stage II with NOx control (HD EOBD-II N)
27Reserved
28Brazil OBD Phase 1 (OBDBr-1)
29Brazil OBD Phase 2 (OBDBr-2)
30Korean OBD (KOBD)
31India OBD I (IOBD I)
32India OBD II (IOBD II)
33Heavy Duty Euro OBD Stage VI (HD EOBD-IV)
34-250Reserved
251-255Not available for assignment (SAE J1939 special meaning)
Fuel Type Coding[edit]

Mode 1 PID 51 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
0Not available
1Gasoline
2Methanol
3Ethanol
4Diesel
5LPG
6CNG
7Propane
8Electric
9Bifuel running Gasoline
10Bifuel running Methanol
11Bifuel running Ethanol
12Bifuel running LPG
13Bifuel running CNG
14Bifuel running Propane
15Bifuel running Electricity
16Bifuel running electric and combustion engine
17Hybrid gasoline
18Hybrid Ethanol
19Hybrid Diesel
20Hybrid Electric
21Hybrid running electric and combustion engine
22Hybrid Regenerative
23Bifuel running diesel


Any other value is reserved by ISO/SAE. There are currently no definitions for flexible-fuel vehicle.

Non-standard PIDs[edit]

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 state:[4][5]

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[edit]

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[clarification needed], 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[edit]

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 StandardNumber of
additional
data bytes:
2
Mode
01 = show current data;
02 = freeze frame;
etc.
PID code
(e.g.: 05 = Engine coolant temperature)
not used
(may be 55h)
Vehicle specificNumber of
additional
data bytes:
3
Custom mode: (e.g.: 22 = enhanced data)PID code
(e.g.: 4980h)
not used
(may be 00h or 55h)

Response[edit]

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
PID Type 0 1 2 3 4 5 6 7
SAE Standard
7E8h,
7E9h,
7EAh,
etc.
Number of
additional
data bytes:
3 to 6
Custom mode
Same as query, except that 40h is added to the mode value. So:
41h = show current data;
42h = freeze frame;
etc.
PID code
(e.g.: 05 = Engine coolant temperature)
value of the specified parameter, byte 0value, 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 mode: same as query, except that 40h is added to the mode value.(e.g.: 62h = response to mode 22h request)PID code
(e.g.: 4980h)
value of the specified parameter, byte 0value, 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 mode: (e.g.: 22h = enhanced diagnostic data by PID, 21h = enhanced data by offset)31hnot used
(may be 00h)

See also[edit]

References[edit]

  1. Jump up^ "Basic Information | On-Board Diagnostics (OBD)". US EPA. 16 March 2015. Retrieved 24 June 2015.
  2. Jump up^ "Escape PHEV TechInfo - PIDs"Electric Auto Association - Plug in Hybrid Electric Vehicle. Retrieved 11 December 2013.
  3. Jump up^ "Extended PID's - Signed Variables"Torque-BHP. Retrieved 17 March 2016.
  4. Jump up^ "ETI Full Membership FAQ". The Equipment and Tool Institute. Retrieved 29 November 2013. showing cost of access to OBD-II PID documentation
  5. Jump up^ "Special OEM License Requirements". The Equipment and Tool Institute. Retrieved 13 April 2015.

External links[edit]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值