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 ) were the first to be mandated followed by medium duty vehicles () in 2005. They are both required to be accessed through a standardized data link connector defined by SAE J1962.
Heavy-duty vehicles (greater than ) made after 2010, 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 Show current data Show freeze frame data Show stored Diagnostic Trouble Codes Clear Diagnostic Trouble Codes and stored values Test results, oxygen sensor monitoring (non CAN only) Test results, other component/system monitoring (Test results, oxygen sensor monitoring for CAN only) Show pending Diagnostic Trouble Codes (detected during current or last driving cycle) Control operation of on-board component/system Request vehicle information 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).
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 - Show current data + PIDs(hex) PID(Dec) Data bytes returned Description Min value Max value Units Formula 4 PIDs supported [$01 - $20] Bit encoded [A7..D0] == [PID $01..PID $20] See below 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 2 DTC that caused freeze frame to be stored. Decoded as in service 3 2 Fuel system status Bit encoded. See below 1 Calculated engine load 0 100 % (or ) 1 Engine coolant temperature -40 215 °C 1 Short term fuel trim (STFT)—Bank 1 -100 (Reduce Fuel: Too Rich) 99.2 (Add Fuel: Too Lean) % (or ) 1 Long term fuel trim (LTFT)—Bank 1 1 Short term fuel trim (STFT)—Bank 2 1 Long term fuel trim (LTFT)—Bank 2 1 Fuel pressure (gauge pressure) 0 765 kPa 1 Intake manifold absolute pressure 0 255 kPa 2 Engine speed 0 16,383.75 rpm 1 Vehicle speed 0 255 km/h 1 Timing advance -64 63.5 ° before TDC 1 Intake air temperature -40 215 °C 2 Mass air flow sensor (MAF) air flow rate 0 655.35 g/s 1 Throttle position 0 100 % 1 Commanded secondary air status Bit encoded. See below 1 Oxygen sensors present (in 2 banks) [A0..A3] == Bank 1, Sensors 1-4. [A4..A7] == Bank 2... 2 Oxygen Sensor 1A: VoltageB: Short term fuel trim 0-100 1.27599.2 V % (if B==$FF, sensor is not used in trim calculation) 2Oxygen Sensor 2A: VoltageB: Short term fuel trim 2Oxygen Sensor 3A: VoltageB: Short term fuel trim 2Oxygen Sensor 4A: VoltageB: Short term fuel trim 2Oxygen Sensor 5A: VoltageB: Short term fuel trim 2Oxygen Sensor 6A: VoltageB: Short term fuel trim 2Oxygen Sensor 7A: VoltageB: Short term fuel trim 2Oxygen Sensor 8A: VoltageB: Short term fuel trim 1 OBD standards this vehicle conforms to 1 250 enumerated. See below 1 Oxygen sensors present (in 4 banks) Similar to PID $13, but [A0..A7] == [B1S1, B1S2, B2S1, B2S2, B3S1, B3S2, B4S1, B4S2] 1 Auxiliary input status A0 == Power Take Off (PTO) status (1 == active)[A1..A7] not used 2 Run time since engine start 0 65,535 s 4 PIDs supported [$21 - $40] Bit encoded [A7..D0] == [PID $21..PID $40] See below 2 Distance traveled with malfunction indicator lamp (MIL) on 0 65,535 km 2 Fuel Rail Pressure (relative to manifold vacuum) 0 5177.265 kPa 2 Fuel Rail Gauge Pressure (diesel, or gasoline direct injection) 0 655,350 kPa 4 Oxygen Sensor 1AB: Air-Fuel Equivalence Ratio (lambda,λ)CD: Voltage 00 < 2< 8 ratioV 4Oxygen Sensor 2AB: Air-Fuel Equivalence Ratio (lambda,λ)CD: Voltage 4Oxygen Sensor 3AB: Air-Fuel Equivalence Ratio (lambda,λ)CD: Voltage 4Oxygen Sensor 4AB: Air-Fuel Equivalence Ratio (lambda,λ)CD: Voltage 4Oxygen Sensor 5AB: Air-Fuel Equivalence Ratio (lambda,λ)CD: Voltage 4Oxygen Sensor 6AB: Air-Fuel Equivalence Ratio (lambda,λ)CD: Voltage 4Oxygen Sensor 7AB: Air-Fuel Equivalence Ratio (lambda,λ)CD: Voltage 4Oxygen Sensor 8AB: Air-Fuel Equivalence Ratio (lambda,λ)CD: Voltage 1 Commanded EGR 0 100 % 1 EGR Error -100 99.2 % 1 Commanded evaporative purge 0 100 % 1 Fuel Tank Level Input 0 100 % 1 Warm-ups since codes cleared 0 255 2 Distance traveled since codes cleared 0 65,535 km 2 Evap. System Vapor Pressure -8,192 8191.75 Pa (AB is two's complement signed) 1 Absolute Barometric Pressure 0 255 kPa 4 Oxygen Sensor 1AB: Air-Fuel Equivalence Ratio (lambda,λ)CD: Current 0-128 < 2<128 ratiomA 4Oxygen Sensor 2AB: Air-Fuel Equivalence Ratio (lambda,λ)CD: Current 4Oxygen Sensor 3AB: Air-Fuel Equivalence Ratio (lambda,λ)CD: Current 4Oxygen Sensor 4AB: Air-Fuel Equivalence Ratio (lambda,λ)CD: Current 4Oxygen Sensor 5AB: Air-Fuel Equivalence Ratio (lambda,λ)CD: Current 4Oxygen Sensor 6AB: Air-Fuel Equivalence Ratio (lambda,λ)CD: Current 4Oxygen Sensor 7AB: Air-Fuel Equivalence Ratio (lambda,λ)CD: Current 4Oxygen Sensor 8AB: Air-Fuel Equivalence Ratio (lambda,λ)CD: Current 2 Catalyst Temperature: Bank 1, Sensor 1 -40 6,513.5 °C 2 Catalyst Temperature: Bank 2, Sensor 1 2 Catalyst Temperature: Bank 1, Sensor 2 2 Catalyst Temperature: Bank 2, Sensor 2 4 PIDs supported [$41 - $60] Bit encoded [A7..D0] == [PID $41..PID $60] See below 4 Monitor status this drive cycle Bit encoded. See below 2 Control module voltage 0 65.535 V 2 Absolute load value 0 25,700 % 2 Commanded Air-Fuel Equivalence Ratio (lambda,λ) 0 < 2 ratio 1 Relative throttle position 0 100 % 1 Ambient air temperature -40 215 °C 1 Absolute throttle position B 0 100 % 1 Absolute throttle position C 1 Accelerator pedal position D 1 Accelerator pedal position E 1 Accelerator pedal position F 1 Commanded throttle actuator 2 Time run with MIL on 0 65,535 min 2 Time since trouble codes cleared 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, 2550ratio, V, mA, kPa , , , 4 Maximum value for air flow rate from mass air flow sensor 0 2550 g/s ; , , and are reserved for future use 1 Fuel Type From fuel type table see below 1 Ethanol fuel % 0 100 % 2 Absolute Evap system Vapor Pressure 0 327.675 kPa 2 Evap system vapor pressure -32,768 32,767 Pa (AB is two's complement signed) 2 Short term secondary oxygen sensor trim, A: bank 1, B: bank 3 -100 99.2 % 2 Long term secondary oxygen sensor trim, A: bank 1, B: bank 3 2 Short term secondary oxygen sensor trim, A: bank 2, B: bank 4 2 Long term secondary oxygen sensor trim, A: bank 2, B: bank 4 2 Fuel rail absolute pressure 0 655,350 kPa 1 Relative accelerator pedal position 0 100 % 1 Hybrid battery pack remaining life 0 100 % 1 Engine oil temperature -40 210 °C 2 Fuel injection timing -210.00 301.992 ° 2 Engine fuel rate 0 3212.75 L/h 1 Emission requirements to which vehicle is designed Bit Encoded 4 PIDs supported [$61 - $80] Bit encoded [A7..D0] == [PID $61..PID $80] See below 1 Driver's demand engine - percent torque -125 130 % 1 Actual engine - percent torque -125 130 % 2 Engine reference torque 0 65,535 N⋅m 5 Engine percent torque data -125 130 % Idle Engine point 1 Engine point 2 Engine point 3 Engine point 4 2 Auxiliary input / output supported Bit Encoded 5 Mass air flow sensor02047.96875g/s[A0]== Sensor A Supported[A1]== Sensor B SupportedSensor A:Sensor B: 3 Engine coolant temperature -40215 °C[A0]== Sensor 1 Supported[A1]== Sensor 2 SupportedSensor 1:Sensor 2: 3 Intake air temperature sensor -40215 °C[A0]== Sensor 1 Supported[A1]== Sensor 2 SupportedSensor 1:Sensor 2: 7 Actual EGR, Commanded EGR, and EGR Error 5 Commanded Diesel intake air flow control and relative intake air flow position 5 Exhaust gas recirculation temperature 5 Commanded throttle actuator control and relative throttle position 11 Fuel pressure control system 9 Injection pressure control system 3 Turbocharger compressor inlet pressure 10 Boost pressure control02047.96875kPaSensor 1: 6 Variable Geometry turbo (VGT) control 5 Wastegate control 5 Exhaust pressure 5 Turbocharger RPM 7 Turbocharger temperature 7 Turbocharger temperature 5 Charge air cooler temperature (CACT) 9 Exhaust Gas temperature (EGT) Bank 1 Special PID. See below 9 Exhaust Gas temperature (EGT) Bank 2 Special PID. See below 7 Diesel particulate filter (DPF) differential pressure 7 Diesel particulate filter (DPF) 9 Diesel Particulate filter (DPF) temperature °C 1 NOx NTE (Not-To-Exceed) control area status 1 PM NTE (Not-To-Exceed) control area status 13 Engine run time s 4 PIDs supported [$81 - $A0] Bit encoded [A7..D0] == [PID $81..PID $A0] See below 41 Engine run time for Auxiliary Emissions Control Device(AECD) 41 Engine run time for Auxiliary Emissions Control Device(AECD) 9 NOx sensor 1 Manifold surface temperature 10 NOx reagent system% 5 Particulate matter (PM) sensor 5 Intake manifold absolute pressure13SCR Induce System41Run Time for AECD #11-#1541Run Time for AECD #16-#207Diesel Aftertreatment17O2 Sensor (Wide Range)1Throttle Position G0100%1Engine Friction - Percent Torque -125130% 7PM Sensor Bank 1 & 23WWH-OBD Vehicle OBD System Informationh5WWH-OBD Vehicle OBD System Informationh2Fuel System Control3WWH-OBD Vehicle OBD Counters supporth12NOx Warning And Inducement System9Exhaust Gas Temperature Sensor9Exhaust Gas Temperature Sensor6Hybrid/EV Vehicle System Data, Battery, Voltage4Diesel Exhaust Fluid Sensor Data%17O2 Sensor Data4Engine Fuel Rateg/s2Engine Exhaust Flow Ratekg/h9Fuel System Percentage Use 4 PIDs supported [$A1 - $C0] Bit encoded [A7..D0] == [PID $A1..PID $C0] See below9NOx Sensor Corrected Datappm2Cylinder Fuel Rate02047.96875mg/stroke9Evap System Vapor PressurePa4Transmission Actual Gear065.535ratio[A1]==Supported4Commanded Diesel Exhaust Fluid Dosing0127.5%[A0]= 1:Supported; 0:Unsupported