DTC (diagnostic trouble codes), also referred to as engine fault codes, are used to identify and diagnose malfunctions in a vehicle or piece of heavy equipment. When a vehicle’s on-board diagnostics (OBD) system detects a problem, it activates the corresponding trouble code.
Technicians rely on these codes to diagnose and resolve problems.
Originally, OBD systems varied from manufacturer to manufacturer. With OBD-II systems (light- and medium-duty vehicles from 1996 onward), the Society of Automotive Engineers (SAE) International created a standard DTC list for all manufacturers.
In heavy-duty vehicles and large equipment (like trucks, buses, mobile hydraulics, etc.), the SAE has established a common language defining how manufacturers understand communication received from engine control units (ECUs).
Having a working knowledge of DTCs and their function can be extremely helpful to fleet managers and drivers who have to navigate these kinds of alerts on a semi-regular basis. This guide will help you understand how they work and how to deal with them.
How diagnostic trouble codes (DTCs) work
On-board diagnostic systems monitor a lot of the functions associated with the engine, transmission and emissions control systems of the vehicle. This system prompts the “check engine” light on your dashboard, which illuminates when the vehicle starts and stays on until the specific problem is detected and fixed.
Occasionally the light may come on and go off if the system only detects the issue periodically.
The “check engine” light is an alert that a DTC is present, and it requires a diagnostic tool to read and interpret the engine fault code.
Are all DTCs critical?
There are several reasons that your vehicle’s check engine light can be illuminated, but not all of them are equally important. The critical nature of a code is driven by what is affected in the malfunction. DTC codes can fall into two categories: critical and non-critical codes.
Critical DTC codes need urgent attention because they can cause immediate and severe damage. A good example of this could be a high engine temp. Non-critical codes aren’t urgent, but it’s crucial that DTC codes are correctly diagnosed to be sure.
Explanation of OBD-II diagnostic trouble codes (DTCs)
Before DTCs became commonplace, diagnosing issues could be time-consuming. With OBD-II, vehicles can basically monitor themselves and alert drivers to potential problems using indicator lights. These indicator lights identify things like:
- Engine temperature warning
- Tire pressure warning
- Oil pressure warning
- Brake pad warning
Some indicator lights indicate multiple problems. For instance, the brake system light could suggest that the parking brake is on, the brake fluid is low, or that there is an antilock braking system (ABS) issue.
The check engine or malfunction indicator light (MIL) tells you that the vehicle’s computer has set a DTC, requiring a diagnostic tool to read.
A DTC comes in a string of five characters. So, for example, you might run into a code that says P0575. Let’s examine what each of these characters tells us.
- The first letter tells us which of the four main parts is at fault.
- P = Powertrain
- B = Body
- C = Chassis
- U = Network
- The second tells us whether we’re looking at a generic OBD-II code or a manufacturer’s code. (If a manufacturer feels there isn’t a generic code covering a specific fault, they can add their own.) A zero denotes a generic code.
- The third character alerts us which vehicle’s system is at fault. Codes include:
- 1 = Fuel and Air Metering
- 2 = Fuel and Air Metering (injector circuit malfunction specific)
- 3 = Ignition System or Misfire
- 4 = Auxiliary Emissions Controls
- 5 = Vehicle Speed Control and Idle Control System
- 6 = Computer Auxiliary Outputs
- 7, 8, 9 = Various transmission and Gearbox faults
- A, B, C = Hybrid Propulsion Faults
- The last two characters tell us the specific fault. These help pinpoint exactly where the problem is located and which part needs attention.
So in the case of P0575, we know that it’s a generic OBD-II powertrain fault. We also know that the specific fault relates to the vehicle speed control or idle control system. By consulting the list of OBD-II codes, we discover that it’s a problem with the cruise control input circuit.
There are more than 5,000 ODB-II and manufacturer-specific codes. Thankfully, you don’t have to memorize these, but you’re bound to see some codes often enough to recognize them.
Reading J1939 DTCs
The J1939 protocol is the set of standards that defines communication between ECUs in trucks and buses, but it is used for a number of commercial vehicles like:
- Fire trucks
- Construction equipment like excavators, bulldozers, and cranes
- Tanks and transport vehicles
J1939 DTCs are based on four fields relaying data in a DTC fault. These four fields include:
- Suspect Parameter Number (SPN): A suspect parameter number is a 19-bit number with a range from 0 to 524287. The SPN is used in diagnostics to specify the particular DTC.
- Failure Mode Identifier (FMI): Used along with SPNs, FMIs provide specific information relating to DTCs. An FMI can indicate a problem with an electronic circuit or component. It may also indicate when an abnormal operating condition has been detected.
- Occurrence Counter (OC): This counter calculates the number of occurrences related to each SPN and stores this information when the error is no longer active.
- SPN Conversion Method (CM): This defines the byte alignment of the DTC.
The most common DTCs
According to Technicians Service Training, these are some of the most common diagnostic trouble codes:
P0420 & P0430: Catalyst System Efficiency Below Threshold (Bank 1)
These are two of the most common DTCs. P0420 is an error having to do with the side of the engine housing the number one cylinder, and P0430 is a mirror error on the other side (bank 2).
A catalytic converter breaks down harmful pollutants from your engine’s combustion cycles into CO2, water, and nitrogen. When the oxygen sensor recognizes a change in the converter’s ability to break down pollutants, it logs these codes.
Reasons for these codes might include:
- A faulty catalytic converter
- A failing oxygen sensor
- Bad wiring to the oxygen sensor
- Leaks in the exhaust system
- Software issues
P0171: System Too Lean (Bank one)
An engine needs a precise mixture of fuel and air to run efficiently. This mixture is considered lean when there’s too much air and not enough fuel. When the oxygen sensor detects a system running too lean, it sends DTC P0171 and P0174 depending on the bank where it senses the issue.
- A dirty mass airflow sensor
- A vacuum leak
- Bad oxygen sensors
- Low fuel pressure
- Low gas
P0300: Random/Multiple Cylinder Misfire Detected
This (and all the other misfire codes P0301–P0312) misfire occurs when there is no combustion in a cylinder. If there is a misfire in a specific cylinder, the system will trip a particular DTC. If the misfire is random or detected in multiple cylinders, P0300 is stored.
There are a number of reasons for these misfire codes. They include:
- Worn or damaged spark plugs or spark plug wires
- A worn or damaged distributor cap
- Defective fuel injectors
- Problems with ignition timing
- Low fuel pressure
- Faulty oxygen sensor
P0440: Evaporative Emission Control System Malfunction
The EVAP system stores fuel while it expands in hot weather until it’s pulled into the engine and burned. This code shows up if the EVAP isn’t working correctly. For example, this code might show up if all the fuel tank vapor lines have been shut down. But the most common reason for P0440 to show up is an improperly seated gas cap.
You might also see it show up if any part of the fuel vapor system is leaking.
P0128: Coolant Thermostat
This code triggers when the coolant temperature falls below the thermostat regulating temperature. Usually, this means that the engine is not reaching its operating temperature in a specific amount of time. Typically, this is because the coolant thermostat is stuck open or operating prematurely. Another cause could be a faulty coolant temp sensor or a problem with its connected wiring.
P0172: System too rich (Bank one)
When the engine’s air to fuel mixture isn’t right, it ends up triggering a DTC. When the oxygen level in the exhaust is too low, and there is subsequently fuel heavy, it’s registered as too rich. The causes for this issue can include:
- Worn spark plugs
- A fault in the coolant system
- A vacuum leak
- A faulty fuel regulator
- A leaking fuel injector
- A defective oxygen sensor
- A dirty Mass Air Flow (MAF) sensor
P0401: Exhaust Gas Recirculation Flow Insufficient Detected
Measured amounts of exhaust gasses are reintroduced into the engine through a valve in the exhaust gas recirculation (EGR) system. These inert gases control the nitrogen oxides by cooling the combustion temperatures. This DTC is present when the computer detects an insufficient EGR flow. This can happen for the following reasons:
- The valve can’t open properly because of low vacuum pressure
- The temperature sensor doesn’t detect the correct temp change when the valve opens
- The EGR passages are blocked and can’t provide the sufficient flow to the intake manifold
What is a permanent DTC?
Permanent Diagnostic Trouble codes cannot be reset by using a diagnostic scanning tool or disconnecting the vehicle’s battery. The only way to clear a permanent DTC is to fix the underlying issue that caused the DTC and allow the vehicle enough time to re-run the monitor that identified the initial problem.
How to read diagnostic trouble codes (DTCs)
Reading DTCs requires a scanner. This tool’s 16-point trapezoidal connector plugs into the vehicle and interprets the OBD code. Accessing these codes with a scanner can be done by following these steps.
Step one: Plug into the OBD port
OBDII-equipped vehicles have a standardized 16-pin diagnostic link connector (DLC) used to access the vehicle’s on-board diagnostics. Each vehicle has a different location for the OBD port, but most often, it’s found under the driver-side dashboard. The owner’s manual should provide the precise location.
Step two: Turn on the ignition
While you don’t have to actually turn the engine over, switching on the ignition will power the scanner. If the scanner doesn’t come on when you turn on the ignition, re-check the connection between the scanner and the connector pins. If the plug is connected snugly, plug something into the vehicle’s auxiliary power outlet to see if it works—the ODB-II scanner runs on the same circuit.
Step three: Enter necessary information
Since DTCs can be manufacturer-specific, some scanners require additional information. This could include the vehicle identification number (VIN), model, make, or engine type.
Step four: Navigate the OBD codes
Your scanner may alert you to active codes and pending codes. Active codes refer to current malfunctions that have tripped your check engine light. Pending codes refer to intermittent faults that the system needs to see happen in consecutive warm-up cycles to be considered active. If the fault doesn’t reappear in 40 warm-up cycles, the code gets cleared.
Step five: Interpreting the DTC
Once you have the code, you can discern what it means. The information listed above will help you hone in on the nature of the problem, but to get the exact details, you’ll probably need to consult a website or use an app that interprets the thousands of OBD codes and their fixes.
Monitoring DTCs for your fleet
It’s one thing to manually check OBD codes on a vehicle or two. It’s another thing entirely to monitor them fleetwide. A tool like Samsara can make identifying DTCs a simple process. Their vehicle gateways plug right into your ODBII connectors and send DTC faults to the cloud.
And with Whip Around’s integrations with Samsara and Geotab, you can receive email notifications anytime a fault is recognized, allowing you to create a simple work order and get assets in for quick repairs.