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 | 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 |
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 |
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.
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 |
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. At that time, both the permanent DTC is erased and the MIL is extinguished. The PCM clears 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 (test must continue to pass for the entire driving cycle for continuous monitors) and a Permanent DTC Driving Cycle has been completed. A Permanent DTC Driving Cycle requires a total of 10 minutes of engine run time, consisting of 5 minutes of vehicle operation above 40 km/h (25 mph) and 30 continuous seconds of vehicle operation at idle. After clearing DTCs, running the OBD Drive Cycle ensures that all monitors complete, the Permanent DTC Driving Cycle completes, inspection/maintenance (I/M) readiness codes are set to a ready status and any permanent DTCs are erased. 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 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.