Introduction
ISO-15031 Protocol consists of a number of parts taken together to provide a coherent self-consistent set of specifications to facilitate emissions-related diagnostics. Parts 2 through 7 are based on SAE-recommended practices. This part of ISO 15031 is based on SAE J2012: MAR99 (Recommended Practice for the Diagnostic Trouble Code Definitions).
The ISO 15031-1 Protocol provides an introduction to the series of International Standards. Most automobile manufacturers equip at least a portion of their product line with some
ISO 15031-6 (Diagnostic trouble code definitions)
This part of ISO 15031 provides recommended uniformity for the alphanumeric trouble codes. It further provides guidance for the uniform messages associated with these codes. It specifies several sections addressing format, structure, messages and a few examples, and is applicable to electrical/electronic systems diagnostics of motor vehicles.
DTC General specifications:
The recommended DTCs consist of a three-digit numeric code preceded by an alphanumeric designator. The alphanumeric designators are “B0”, “B1”, “B2”, “B3”, “C0”, “C1”, “C2”, “C3”, “P0”, “P1”, “P2”, “P3”, “U0”, “U1”, “U2”, “U3”, corresponding to four sets of body, four sets of chassis, four sets of powertrain and four sets of network trouble codes. The code structure itself is partially open-ended. A portion of the available numeric sequences (portions of “B0”, “C0”, “P0”, “P2”, “P3”, “U0” and “U3”) is reserved for uniform codes assigned by this or future updates.
System | Code categories | Hex value | Appendix |
Body | B0xxx – B3xxx | 8xxx – Bxxx | B |
Chassis | C0xxx – C3xxx | 4xxx – 7xxx | C |
Powertrain | P0xxx – P3xxx | 0xxx – 3xxx | P |
Network | U0xxx – U3xxx | Cxxx – Fxxx | U |
Detailed specifications of the DTC format structure are specified in Clause 5. Most circuit, component, or system diagnostic trouble codes that do not support a sub-fault strategy are specified by four basic categories:
- Circuit/open.
- Range/performance.
- Circuit low.
- Circuit high.
DTC Format structure:
The diagnostic trouble code consists of an alphanumeric designator, B0-B3 for the

EXAMPLE 1: The 2-byte DTC as a data bus value $9234 would be displayed to technicians as the manufacturer controlled body code B1234 as:

EXAMPLE 2 The 3-byte DTC as a data bus value $923400 would be displayed to technicians as the manufacturer controlled body code B1234-00. See Annex D for the DTC Low Byte (Failure Type Byte) definitions. The low byte shall be displayed in the hexadecimal format, e.g. $1A shall be displayed as 1A.

The Codes have been specified to indicate a suspected trouble or problem areas, and are intended to be used as a directive to the proper service procedure. To minimize service confusion, fault codes should not be used to
indicate the absence of problems or the status of parts of the system (e.g. powertrain system O.K., or MIL activated), but should be confined to indicate areas in need of service attention. The ranges have been expanded beyond 100 numbers by using the hexadecimal base 16 number system.
ISO/SAE controlled DTC:
ISO/SAE-controlled diagnostic trouble codes are those codes where industry uniformity has been achieved. These codes were felt to be common enough across most manufacturers’ applications that a common number and fault message could be assigned. All unspecified numbers in each grouping are the ISO/SAE reserved for future growth. Although service procedures may differ widely amongst manufacturers, the fault being indicated is common enough to be assigned a particular fault code. Codes in this area are not to be used by manufacturers until they have been approved by the ISO/SAE.
Manufacturer controlled DTC:
Areas within each alpha designator have been made available for the manufacturer-controlled DTCs. These are the fault codes that will not generally be used by a majority of the manufacturers due to basic system differences,
implementation differences, or diagnostic strategy differences. Each vehicle manufacturer or supplier who designs and specifies diagnostic algorithms, software,
Diagnostic trouble code descriptions:
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 its a 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.
To implement the DTC, The total vehicle functionality is divided into 4 categories as Body, Chassis, Powertrain, & Network & Vehicle Integration.
- Powertrain systems: The Body (B-codes) systems category covers functions that are, generally, inside of the passenger compartment. These functions provide the vehicle occupants with assistance, comfort, convenience, and safety.
- Body systems: The body systems category covers functions that are, generally, inside of the passenger compartment. These functions provide the vehicle occupants with assistance, comfort, convenience, and safety. Each specified trouble code has been assigned a description to indicate the component or system area that was determined to be at fault.
- Chassis systems: The chassis systems category covers functions that are, generally, outside of the passenger compartment. These functions typically include mechanical systems such as brakes, steering, and suspension. Each specified trouble code has been assigned a description to indicate the component or system area that was determined to be at fault.
- Network and vehicle integration systems:
The network communication and vehicle integration systems category covers functions that are shared among computers and/or systems on the vehicle. Each specified trouble code has been assigned a description to indicate the component or system area that was determined to be at fault.