What Do Car Trouble Codes Really Mean?

Updated: Feb. 22, 2024

Your vehicle has a problem if the check engine light (CEL) glows. Diagnostic trouble codes (DTCs) stored in the computer help find the cause.

When your dashboard check engine light (CEL) or other warning lights illuminate, your vehicle’s engine control module (ECM) senses a problem. The ECM then generates and stores a diagnostic trouble code (DTC) in its memory.

What do these codes mean and why should you care? Understanding how your vehicle works, especially the DTCs that alert you to a problem, can help lower repair costs, reduce expensive breakdowns and extend your vehicle’s life.

What Are Trouble Codes?

Diagnostic trouble codes help narrow down and pinpoint specific areas and elements that could cause the CEL to illuminate. Never ignore the CEL. Most codes have to do with bad or failing sensors, fuel, ignition, mechanical or electrical components which negatively affect tailpipe (smog) emissions, drivability, fuel economy and your overall driving experience.

How Do I Know Which Trouble Codes Are Stored in the ECM?

To read DTCs, a scan tool (or DTC code reader) must be plugged into your vehicle’s 16-pin universal assembly line diagnostic link (ALDL connector). A scan tool reads and displays DTCs by directly interfacing with your vehicle’s onboard diagnostics/second generation (OBD-II) computer system. You’ll need to buy a code reader or scan tool if you want to read DTCs yourself.

Once the problem is fixed, scan tools can verify the repair and clear the code(s), which turns off the CEL.

How To Decode The Codes

All OBD-II DTCs have five characters:

The first character is a letter indicating the section of the car where the fault lies:

  • P =Powertrain: Covers the transmission, engine, fuel and ignition systems.
  • C = Chassis: Covers mechanical systems such as steering, suspension and braking systems.
  • B = Body: Covers systems primarily located in the passenger compartment.
  • U = Network and vehicle integration: Functions (outputs) controlled by the OBD-II system.

The 2nd to 5th characters are numbers indicating possible faulty elements.

The 2nd character will be a 0 or 1.

  • 0 = A Society of Automotive Engineers (SAE) International generic code.
  • 1 = A manufacturer-specific code.

The 3rd characters run 0 to 7 and identify a vehicle’s subsystem:

  • 0 = Fuel systems and emission controls.
  • 1 = Fuel and air metering.
  • 2 = Fuel injector and air metering circuit.
  • 3 = Ignition system or a misfire.
  • 4 = Auxiliary emission controls.
  • 5 = Vehicle speed control, idle system and auxiliary inputs.
  • 6 = Computer and output circuits.
  • 7 = Transmission.

The 4th and 5th characters run from 0 to 99 and can help precisely indicate the problem or malfunction. Code P-0-5-73, for example, denotes a “Cruise Control/Brake Switch A Circuit High.”

Gettyimages 175253106BanksPhotos/Getty Images

Most Common DTCs

P0119: Engine coolant temperature sensor (ETC) circuit

A critical sensor, ETC data affects engine idle speed, fuel delivery, ignition timing and other operations. Depending on where the ETC is located, you can replace it yourself after draining the coolant system.

P012X/P022X: Throttle position sensor (TPS) circuit

There are quite a few DTCs for the TPS. A vital sensor, TPS monitors throttle plate position. TPS and other sensor data enable the ECM to accurately calculate fuel delivery. Symptoms include fluctuating engine idling speed, surging and stalling. Cleaning the throttle body yourself is a good starting point.

P0128: Coolant thermostat (coolant below temperature)

The ECM triggers this code if readings from other dedicated sensors (intake air, ETC) show the engine is operating below temperature. Besides replacing the thermostat, air bubbles trapped in the cooling system could likely be the cause.

P0137: Oxygen sensor (O2) circuit

This code sets when the engine burns more air than fuel (called a lean condition). Due to the ECM trying to enrich the air/fuel mixture, you may notice poor fuel economy or black exhaust smoke.

Check for cracked or loose vacuum hoses, a blocked fuel filter or an exhaust leak near the sensor. A dirty, damaged, or malfunctioning O2 sensor affects the air/fuel mixture. Replace the O2 sensor yourself every 50,000 to 100,000 miles.

P0171 or P0174: Running lean codes

Typically triggered when yourengine is running lean (see above). The most likely offenders include clogged air or fuel filters or dirty fuel injectors. Replacing the filters and cleaning dirty injectors are DIY repairs.

P0172: System too rich

Similar to code P0171, this code deals with air-fuel mixture and signals a rich mixture (burning more fuel than air).

There are a few possibilities, such as a leaking fuel injector, restricted air intake or faulty fuel pressure regulator. However, a dirty or faulty mass air flow sensor (MAF) could likely be the cause. Try cleaning the MAF sensor before replacing it; both are easy DIY tasks.

P030X: Cylinder misfire detected

This code may be stored along with P0300. The last number refers to a specific cylinder. (P0305 means cylinder number 5 is misfiring.) Symptoms include poor acceleration or the engine backfiring.

Caused by anything from bad spark plugs to low engine compression, cylinder misfire can leave unburned fuel in the combustion chamber, forcing Limp Home mode (see below). With the proper tools, attempt to diagnose the problem (bad spark plug, ignition wire or coil, etc.) and make repairs yourself.

P0340: Camshaft position sensor (CMPS) malfunction

The ECM reads the CMPS (along with the crankshaft position sensor or CPS) data to precisely control fuel delivery and ignition (spark) timing. A bad camshaft position sensor can show symptoms, such as hard-, or no-start condition, lack of power or engine misfire, and set a DTC before turning on the CEL. Leave this repair to the pros.

P0401: Insufficient exhaust gas recirculation (EGR) flow

The EGR valve directs exhaust gases into the engine to lower combustion temperatures, reducing oxides of nitrogen (NOx) tailpipe emissions. Symptoms include rough idling and stalling.

This one is commonly caused by gunked-up intake manifold passages or a dirty EGR valve sticking open. Try cleaning the EGR and decarbonizing the engine yourself before going in for professional service. Decarbonizing removes carbon deposits built-up inside the engine intake manifold, combustion chamber and valves.

P0446: Evaporative Emission Control System (EVAP) Leak

The self-monitoring EVAP system stores fuel vapors and purges them back into the engine to be burned. Although there are many culprits that can set this code, from a loose fuel line clamp to a bad ECM, the first DIY fix is easy: Try removing and retightening the gas cap.

Limp Home Mode

In addition to the CEL and setting codes, sensor data severely out of range can force the ECM to engage Limp Home Mode. This protects the catalytic converter and drivetrain from damage by limiting engine RPMs, allowing you to drive home or to your repair shop. Here’s everything you need to know about your vehicle’s lights, flashers, and electrical systems.