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 |
DTC STRUCTURE REFERENCE TABLE
The table below shows how to decode the bits into hex digits.
| Binary Bit Pattern | Hex Digit | Binary Bit Pattern | Hex Digit |
|---|---|---|---|
| 0000 | 0 | 1000 | 8 |
| 0001 | 1 | 1001 | 9 |
| 0010 | 2 | 1010 | A |
| 0011 | 3 | 1011 | B |
| 0100 | 4 | 1100 | C |
| 0101 | 5 | 1101 | D |
| 0110 | 6 | 1110 | E |
| 0111 | 7 | 1111 | F |
BINARY BIT PATTERN REFERENCE TABLE
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 | Binary Bit Pattern | SAE DTC Type |
|---|---|---|---|
| 0000 | P0 | 1000 | B0 |
| 0001 | P1 | 1001 | B1 |
| 0010 | P2 | 1010 | B2 |
| 0011 | P3 | 1011 | B3 |
| 0100 | C0 | 1100 | U0 |
| 0101 | C1 | 1101 | U1 |
| 0110 | C2 | 1110 | U2 |
| 0111 | C3 | 1111 | U3 |
BINARY BIT PATTERN REFERENCE TABLE
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 |
DTC STRUCTURE REFERENCE TABLE
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.
DTC Status Bit Definitions
Refer to the following status bit descriptions
Bit 7
- 0 - The ECU is not requesting warning indicator to be active
- 1 - The ECU is requesting warning indicator to be active
Bit 6
- 0 - The DTC test completed this monitoring cycle
- 1 - The DTC test has not completed this monitoring cycle
Bit 5
- 0 - The DTC test has not failed since last code clear
- 1 - The DTC test failed at least once since last code clear
Bit 4
- 0 - The DTC test completed since the last code clear
- 1 - The DTC test has not completed since the last code clear
Bit 3
- 0 - The DTC is not confirmed at the time of the request
- 1 - The DTC is confirmed at the time of the request
Bit 2
- 0 - The DTC test completed and was not failed on the current or previous monitoring cycle
- 1 - The DTC test failed on the current or previous monitoring cycle
Bit 1
- 0 - The DTC test has not failed on the current monitoring cycle
- 1 - The DTC test failed on the current monitoring cycle
Bit 0
- 0 - The DTC is not failed at the time of request
- 1 - The DTC is failed at the time of request
For DTCs that illuminate the MIL, a confirmed DTC means the PCM has stored a DTC and has illuminated the MIL. If the fault has corrected itself, the MIL may no longer be illuminated but the DTC still shows a confirmed status for 40 warm up cycles at which time the DTC is erased.
For DTCs that do not illuminate the MIL, a confirmed DTC means the PCM has stored a DTC. If the fault has corrected itself, the DTC still shows a confirmed status for 40 warm up cycles at which time the DTC is erased.
To determine if a test has completed and passed, such as after a repair, information can be combined from 2 bits as follows
If bit 6 is 0 (the DTC test completed this monitoring cycle), and bit 1 is 0 (the DTC test has not failed on the current monitoring cycle), then the DTC has been evaluated at least once this drive cycle and was a pass.
If bit 6 is 0 (the DTC test completed this monitoring cycle) and bit 0 is 0 (the DTC test is not failed at the time of request), then the most recent test result for that DTC was a pass.
The status byte bits can be decoded as a 2 digit hexadecimal number, and displayed as the last 2 digits of the DTC, for example for DTC P0110:1C-AF, AF represents the status byte info.
| Status Byte | |||||||
|---|---|---|---|---|---|---|---|
| A equals 1010 | F equals 1111 | ||||||
| Bit 7 equals 1 | Bit 6 equals 0 | Bit 5 equals 1 | Bit 4 equals 0 | Bit 3 equals 1 | Bit 2 equals 1 | Bit 1 equals 1 | Bit 0 equals 1 |
STATUS BYTE REFERENCE TABLE
Permanent Diagnostic Trouble Code (DTC)
The software stores a permanent DTC in non-volatile random access memory (NVRAM) whenever a DTC is set and the MIL has been illuminated. Permanent DTCs can only be cleared by the module strategy itself. After a permanent DTC is stored, 3 consecutive test passed monitoring cycles must complete before the permanent DTC can be erased. The PCM clears the permanent DTCs after one monitoring cycle if a request to clear DTCs is sent by the scan tool and the test subsequently runs and passes. A permanent DTC cannot be erased by clearing the KAM. The intended use of the permanent DTC is to prevent vehicles from passing an in-use inspection simply by disconnecting the battery or clearing the DTCs with a scan tool prior to the inspection. The presence of the permanent DTCs at an inspection without the MIL illuminated is an indication that a correct repair was not verified by the on-board monitoring system.
Pressure Test Point
On some applications there is a pressure test point with a Schrader fitting in the fuel rail that relieves the fuel pressure and measures the fuel injector supply pressure for repair and diagnostic procedures. Before repairing or diagnosing the fuel system, read any WARNING information. On vehicles not equipped with a Schrader valve, use the Fuel Pressure Test Kit 310-D009 (D95L-7211A) or equivalent with the Fuel Pressure Test Adapter 310-180 or equivalent.