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.

[1] They are both required to be accessed through a standardized data link connector defined by SAE J1962.

Heavy duty vehicles (greater than 14,000 lb or 6,400 kg) 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).

There are 10 diagnostic services described in the latest OBD-II standard SAE J1979.

The table below shows the standard OBD-II PIDs as defined by SAE J1979.

Note that PID $02 is used to obtain the DTC that triggered the freeze frame.

Bits A6 through 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 first byte is a bit encoded field indicating which EGT sensors are supported for the respective bank.

The temperature values are interpreted in degrees Celsius in the range -40 to 6513.5 (scale 0.1), using the usual

If there are two or fewer DTCs (up to 4 bytes) then they are returned in an ISO-TP Single Frame (SF).

An example DTC of "U0158" would be decoded as follows: The resulting five-character code, e.g. "U0158", can be looked up in a table of OBD-II DTCs to get an actual description of what it represents.

It is also worth noting that DTCs may sometimes be encountered in a four-character form, e.g. "C158", which is simply the plain hexadecimal representation of the two bytes, with proper decoding with respect to the category not having been performed.

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.

All data items consist of two bytes and are reported in this order (each message contains two items, hence message length is 4): Some PIDs are to be interpreted specially, and aren't necessarily exactly bitwise encoded, or in any scale.

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

A request for this PID returns a single byte of data which describes which OBD standards this ECU was designed to comply with.

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: However, even ETI membership will not provide full documentation for non-standard PIDs.

Physical addressing uses particular CAN IDs for specific modules (e.g., 720h for the instrument cluster in Fords) with proprietary frame payloads.

The functional PID query is sent to the vehicle on the CAN bus at ID 7DFh, using 8 data bytes.