Diagnostic Trouble Codes Explained
Editor's note: This post has been updated in March 2020 for accuracy and the latest information.
Diagnostic Trouble Codes or OBD2 Trouble Codes are codes that the car’s OBD system uses to notify you about an issue. Each code corresponds to a fault detected in the car. When the vehicle detects an issue, it will activate the corresponding trouble code.
A vehicle stores the trouble code in it’s memory when it detects a component or system that’s not operating within acceptable limits. The code will help you to identify and fix the issue within the car.
Each trouble code consists of one letter and four digits, such as P1234. This blog post will teach you how to interpret the meaning of the codes.
Format of the OBD2 Trouble Codes
System or Category
The OBD2 Trouble Codes are categorised into four different systems.
Body (B-codes) category covers functions that are, generally, inside of the passenger compartment. These functions provide the driver with assistance, comfort, convenience, and safety.
Chassis (C-codes) category covers functions that are, generally, outside of the passenger compartment. These functions typically include mechanical systems such as brakes, steering and suspension.
Powertrain (P-codes) category covers functions that include engine, transmission and associated drivetrain accessories.
Network & Vehicle Integration (U-codes) category covers functions that are shared among computers and systems on the vehicle.
The first letter of the code will mark the system related to the trouble code.
Generic and manufacturer specific codes
The first digit in the code will tell you if the code is a generic or manufacturer specific code.
Codes starting with 0 as the first digit are generic or global codes. It means that they are adopted by all cars that follow the OBD2 standard. These codes are common enough across most manufacturers so that a common code and fault message could be assigned.
Codes starting with 1 as the first digit are manufacturer specific or enhanced codes. It means that these codes are unique to a specific car make or model. These fault codes will not be used generally by a majority of the manufacturers.
The first digit might be also 2 or 3. In this case the type depends on the system. B2xxx and C2xxx codes are manufacturer controlled while B3xxx and C3xxx codes are reserved at the moment. P2xxx codes are generic codes while P3xxx codes are manufacturer controlled. U2xxx codes are manufacturer controller as well as U3xxx codes.
Subsystem or functional area
Previously, the second digit defined the sub-system of the codes. However, the latest document defining the diagnostic trouble codes (J2012 revised in 2016-12) had some changes to this.
According to the document, as the DTC usage has increased with the introduction of new technology to vehicle systems, it was necessary to remove the grouping of DTCs into functional areas.
The last two or nowadays three digits define the actual fault description. These numbers will tell the particular problem and each code is defined separately. There’s no formula to decode these codes automatically.
Luckily, OBD Auto Doctor software contains the fault description for over 18 000 diagnostic trouble codes.
There’s no need to memorize the format of the codes because you can read the codes with the free version of the OBD Auto Doctor car diagnostic software.
If your car has the Check Engine Light on, it means that the vehicle has one or more confirmed OBDII trouble codes active. To learn