Page 1 of 1

Decoding the OBDII DTC numbering scheme

Posted: Mon Jan 10, 2022 6:11 pm
by kiev
You figure there has to be a method to the madness. The scheme is mostly for ICE since it was invented before EVs really became a reality, but the ISO/SAE had reserved placeholders to allow for such growth.

There are standard type DTC codes defined by the SAE/ISO, and non-standard type as defined by the manufacturer.

The codes have five fields, a letter followed by 4 Hexadecimal characters (0-9,A-F).
For example, "P1A15"

The first field (Letter) defines the top level vehicle system involved in the fault:
P = Powertrain
B = Body
C = Chassis
U = Network

The second field is a number 0 to 3, that defines the type of code, either standard or manufacturer:
Powertrain Type
P0xxx ISO/SAE controlled
P1xxx manufacturer control
P2xxx ISO/SAE controlled
P3xxx manufacturer controlled and ISO/SAE reserved

Body Type
B0xxx ISO/SAE controlled
B1xxx manufacturer controlled
B2xxx manufacturer controlled
B3xxx reserved by document

Chassis Type
C0xxx ISO/SAE controlled
C1xxx manufacturer controlled
C2xxx manufacturer controlled
C3xxx reserved by document

Network Type
U0xxx ISO/SAE controlled
U1xxx manufacturer controlled
U2xxx manufacturer controlled
U3xxx manufacturer controlled and ISO/SAE reserved

The third field is a hexadecimal character that specifies the subsystem grouping:
(Powertrain system groupings)
P00XX Fuel and air metering and auxiliary emission controls
P01XX Fuel and air metering
P02XX Fuel and air metering
P03XX Ignition system or misfire
P04XX Auxiliary emission controls
P05XX Vehicle speed, idle control, and auxiliary inputs
P06XX Computer and auxiliary outputs
P07XX Transmission
P08XX Transmission
P09XX Transmission
P0AXX Hybrid Propulsion [i.e. Electric Vehicle]
P0BXX Hybrid Propulsion [i.e. Electric Vehicle]
P0CXX ISO/SAE reserved
P0DXX ISO/SAE reserved
P0EXX ISO/SAE reserved
P0FXX ISO/SAE reserved
P10XX Manufacturer controlled
P11XX Manufacturer controlled
P12XX Manufacturer controlled
P13XX Manufacturer controlled
P14XX Manufacturer controlled
P15XX Manufacturer controlled
P16XX Manufacturer controlled
P17XX Manufacturer controlled
P18XX Manufacturer controlled
P19XX Manufacturer controlled
P1AXX Manufacturer controlled
P1BXX Manufacturer controlled
P1CXX Manufacturer controlled
P1DXX Manufacturer controlled
P1EXX Manufacturer controlled
P1FXX Manufacturer controlled
P20XX Fuel and air metering and auxiliary emission controls
P21XX Fuel and air metering and auxiliary emission controls
P22XX Fuel and air metering and auxiliary emission controls
P23XX Ignition system or misfire
P24XX Auxiliary Emission Controls
P25XX Auxiliary Inputs
P26XX Computer & Auxiliary Outputs
P27XX Transmission
P28XX Transmission DTCs
P29XX Reserved for Transmission
P2AXX Fuel and air metering and auxiliary emission controls
P30XX Fuel and air metering and auxiliary emission controls
P31XX Fuel and air metering and auxiliary emission controls
P32XX Fuel and air metering and auxiliary emission controls
P33XX Ignition system or misfire
P34XX Cylinder Deactivation
P35XX ISO/SAE reserved
P36XX ISO/SAE reserved
P37XX ISO/SAE reserved
P38XX ISO/SAE reserved
P39XX ISO/SAE reserved
P3AXX ISO/SAE reserved
P3BXX ISO/SAE reserved
P3CXX ISO/SAE reserved
P3DXX ISO/SAE reserved
P3EXX ISO/SAE reserved
P3FXX ISO/SAE reserved

(Body system groupings)
B00XX Restraints

(Chassis system groupings)
C00XX Chassis Brakes and Traction Control

(Network groupings)
U00XX Network Electrical
U01XX Network Communication
U02XX Network Communication
U03XX Network Software
U04XX Network Data
U05XX Network Data
U30XX Control Module/Power Distribution

Finally the fourth and fifth fields are a 2-digit hex code that defines the actual specific fault, so there are 256 possible fault items within a particular grouping.