DTC Structure
Like all digital signals, DTCs are sent to the scan tool as a series of 1s and 0s. Each DTC is made up of 2 data bytes, each consisting of 8 bits that can be set to 1 or 0. In order to display the DTCs in the conventional format, the data is decoded by the scan tool to display each set of 4 bits as a hexadecimal number (0 to F). For example, P0420 Catalyst System Efficiency Below Threshold (Bank 1).
| DTC Byte 1 | DTC Byte 2 | ||
|---|---|---|---|
| 0000 | 0100 | 0010 | 0000 |
| P0 | 4 | 2 | 0 |
The table below shows how to decode the bits into hex digits.
| Binary Bit Pattern | Hex Digit |
|---|---|
| 0000 | 0 |
| 0001 | 1 |
| 0010 | 2 |
| 0011 | 3 |
| 0100 | 4 |
| 0101 | 5 |
| 0110 | 6 |
| 0111 | 7 |
| 1000 | 8 |
| 1001 | 9 |
| 1010 | A |
| 1011 | B |
| 1100 | C |
| 1101 | D |
| 1110 | E |
| 1111 | F |
The first 4 bits of a DTC do not convert directly into hex digits. The conversion into different types of DTCs (P, B, C and U) is defined by SAE J2012. This standard contains DTC definitions and formats.
| Binary Bit Pattern | SAE DTC Type |
|---|---|
| 0000 | P0 |
| 0001 | P1 |
| 0010 | P2 |
| 0011 | P3 |
| 0100 | C0 |
| 0101 | C1 |
| 0110 | C2 |
| 0111 | C3 |
| 1000 | B0 |
| 1001 | B1 |
| 1010 | B2 |
| 1011 | B3 |
| 1100 | U0 |
| 1101 | U1 |
| 1110 | U2 |
| 1111 | U3 |
ISO 14229 sends 2 additional bytes of information with each DTC, a failure type byte and a status byte.
| DTC Byte 1 | DTC Byte 2 | Failure Type Byte | Status Byte | ||||
|---|---|---|---|---|---|---|---|
| 0000 | 0100 | 0010 | 0000 | 0000 | 0000 | 1111 | 0101 |
| P0 | 4 | 2 | 0 | 0 | 0 | F | 9 |
All ISO 14229 DTCs are 4 bytes long instead of 3 or 2 bytes long. Additionally, the status byte for ISO 14229 DTCs is defined differently than the status byte for previous applications with 3 byte DTCs.