OBD2 CODE HUB · PILLAR GUIDE

Engine Codes: Complete List of OBD-II Trouble Codes


Every automotive diagnostic trouble code explained in plain English — what the five characters mean, the most common codes drivers see, and exactly what to check next.

Complete list of OBD-II engine trouble codes with diagnostic tablet on engine

What is an automotive diagnostic trouble code? An automotive diagnostic trouble code (DTC) is a five-character alphanumeric alert your car’s computer stores when its onboard diagnostic system detects a malfunction. Since 1996, every car sold in the United States has used the standardized OBD-II system, so a code like P0300 means the same thing whether you drive a Ford, a Toyota, or a BMW. Reading the code turns a vague check engine light into a concrete starting point for diagnosis.

Where engine codes come from: a 60-second history

Onboard diagnostics started in California. In 1991, the California Air Resources Board required basic self-diagnostic systems on new cars, but every automaker used its own connectors and code definitions — a scanner that worked on a GM would not work on a Toyota. The fix arrived in 1996, when the EPA mandated OBD-II on all cars and light trucks sold in the United States. From that model year on, every vehicle uses the same 16-pin diagnostic connector under the dash and the same core set of generic codes.

Three SAE standards do most of the work behind the scenes. SAE J1962 defines the 16-pin connector and its pin layout. SAE J1979 defines the diagnostic modes your scanner uses — mode $01 for live data, mode $03 for reading stored codes, mode $04 for clearing them. And SAE J2012 defines the trouble code definitions themselves, so P0171 always means “system too lean” no matter whose scan tool you use. Europe followed with EOBD in 2001 for gasoline cars and 2004 for diesels, using the same connector and code structure.

How to read an engine code: the five-character system

Every engine code follows the same five-character format, and each character narrows down the problem. Once you learn the pattern, you can look at any code and know roughly where to start looking.

The first character is a letter that names the vehicle system. P stands for powertrain, which covers the engine, transmission, and emissions systems — and accounts for the large majority of check engine light codes. B stands for body, covering interior systems like airbags, seat belts, and power windows. C stands for chassis, covering ABS brakes, suspension, and steering. U stands for network, covering communication faults between the car’s computer modules.

The second digit tells you whether the code is generic or manufacturer-specific. A 0 means the code is generic: defined by the SAE J2012 standard and identical on every brand. A 1 means it is manufacturer-specific, so its exact meaning can vary between Ford, GM, Toyota, and others. The third digit narrows down the subsystem — for example, 1 and 2 point to fuel and air metering, 3 points to ignition and misfires, 4 points to auxiliary emission controls, 5 points to idle and speed control, 6 points to the computer itself, and 7 points to the transmission. The final two digits identify the exact fault.

Because generic codes follow SAE J2012, a scan tool, a repair manual, and a code lookup site will all agree on what P0171 means. That standardization is what makes a code lookup genuinely useful instead of guesswork.

The four code families at a glance

  • P codes (powertrain): engine, transmission, fuel delivery, and emissions faults. This is the family behind almost every check engine light.
  • B codes (body): airbags, climate control, lighting, power seats, and other cabin systems.
  • C codes (chassis): anti-lock brakes, traction control, stability control, and steering systems.
  • U codes (network): communication failures between modules, such as U0100 lost communication with the ECM or PCM.

Common codes in this system

These are the engine codes repair shops see most often. Each one is listed as plain text with a one-line meaning so you can quickly match what your scanner found:

  • P0300 — Random or multiple cylinder misfire detected.
  • P0171 — System too lean, Bank 1: too much air or too little fuel in the mixture.
  • P0174 — System too lean, Bank 2: the same lean condition on the other bank.
  • P0420 — Catalyst system efficiency below threshold, Bank 1.
  • P0430 — Catalyst system efficiency below threshold, Bank 2.
  • P0442 — Evaporative emission system leak detected, small leak; often just a loose gas cap.
  • P0128 — Coolant temperature below thermostat regulating temperature.
  • P0401 — Exhaust gas recirculation flow insufficient.
  • P0700 — Transmission control system malfunction; a general alert from the transmission computer.
  • U0100 — Lost communication with the ECM or PCM over the CAN bus network.

Browse engine codes by system

Engine codes span seven major vehicle systems. Choose the system your code belongs to for a deeper guide with more codes, causes, symptoms, and fixes for each:

Generic vs. manufacturer-specific codes

Generic codes (with a 0 as the second digit, like P0300) are the common language of car repair. Because SAE J2012 defines them, every scan tool and every brand uses the same definition, so a lookup is reliable. Manufacturer-specific codes (with a 1 as the second digit, like P1101) are defined by each automaker, so the same code can mean different things on a Chevrolet and a Honda. When you look up a manufacturer-specific code, always confirm the definition for your exact make and model year.

Pending, confirmed, and permanent codes

Not every stored code means the same thing. A pending code means the computer saw a fault once but has not seen it consistently enough to turn on the check engine light — it is an early warning. A confirmed (or active) code means the fault repeated and the light is on. A permanent code cannot be erased with a scanner; it clears itself only after the computer runs its own test and the fault passes. That is why a code sometimes refuses to clear: the car, not the scanner, decides when the problem is truly fixed.

What freeze frame data tells you

When a code sets, the computer also saves a snapshot called freeze frame data: engine RPM, coolant temperature, vehicle speed, engine load, and fuel trim at the exact moment of the fault. This snapshot is often more valuable than the code itself. For example, a lean code with high fuel trim at idle points to a vacuum leak, while the same code with high fuel trim under load points to low fuel pressure. Always read the freeze frame before you clear anything.

Common symptoms that send drivers here

Engine codes rarely appear alone. Drivers usually notice one or more of these symptoms first, then pull the code to find out why:

  • Rough idle, shaking, or stalling at stoplights.
  • Hesitation or sluggish acceleration when you press the gas.
  • Noticeably worse fuel economy than usual.
  • A flashing check engine light, which signals a severe misfire that can damage the catalytic converter.
  • Reduced power or limp mode, where the car limits itself to protect the engine or transmission.
  • A failed emissions test, often caused by an emissions-related code or by monitors that are not ready.

Step-by-step: how to diagnose an engine code

Follow this order and you will avoid the most common mistake in DIY car repair: replacing parts based on the code name alone.

  1. Read everything first. Pull all stored, pending, and permanent codes, plus the freeze frame data. Do not clear anything yet.
  2. Look up the exact definition. Confirm whether the code is generic or manufacturer-specific for your make.
  3. Check for patterns. Multiple codes together tell a story — for example, lean codes on both banks plus a misfire often trace back to one vacuum leak.
  4. Inspect before you test. Look at wiring, connectors, vacuum hoses, and fluid levels. Many faults are visible: cracked hoses, corroded pins, or a loose gas cap.
  5. Test the suspect. Use a multimeter, a smoke machine, or a fuel pressure gauge to confirm the failed part before buying a replacement.
  6. Repair, then verify. After the fix, drive the car through a full drive cycle and confirm the code stays gone and all monitors read ready.

Typical repair cost ranges

Costs vary by vehicle and region, but these ranges cover the most common engine-code repairs. A professional diagnosis usually costs $100 to $150, although many auto parts stores will read your codes for free.

  • $15–$30: a replacement gas cap, the fix for many small EVAP leak codes.
  • $100–$300: a set of spark plugs, the most common fix for misfire codes.
  • $150–$400: an ignition coil, an oxygen sensor, or a mass airflow sensor.
  • $300–$800: a fuel injector, an EGR valve, or an EVAP purge solenoid with labor.
  • $1,000–$2,500+: a catalytic converter replacement, depending on the vehicle.
  • $2,500–$4,500+: a transmission rebuild for serious gearbox codes.

DIY or see a mechanic?

Many engine codes are friendly to DIY diagnosis. Reading codes, checking freeze frame data, inspecting hoses and wiring, replacing a gas cap or air filter, and changing spark plugs are all within reach of a home mechanic with basic tools. A mid-range scan tool that shows live data pays for itself quickly.

See a professional for internal transmission faults, computer and module failures, EVAP smoke testing, anything that requires module programming, and any flashing check engine light with a severe misfire. A flashing light means raw fuel is reaching the catalytic converter, and continuing to drive can turn a $200 ignition repair into a $2,000 converter replacement.

Why a code comes back after you clear it

Clearing a code erases the alert, not the problem. If the underlying fault is still there, the computer will detect it again — sometimes within one drive cycle — and the light returns. Permanent codes will not clear at all until the computer runs its own monitor and the test passes. There is one more trap: clearing codes right before an emissions test resets the readiness monitors to “not ready,” which is an automatic fail in most states. Fix the fault, drive normally for a few days, and let the monitors complete on their own.

Frequently asked questions

What is the most common engine code?

The most common engine codes drivers see are P0420 (catalytic converter efficiency), P0171 and P0174 (lean fuel mixture), and P0300 (random misfire). The exact ranking varies by vehicle age and make, but these four appear in repair shops every day.

Can I drive with the check engine light on?

A steady check engine light usually means a non-urgent issue, but you should still diagnose it soon. A flashing check engine light means a severe misfire is happening right now — pull over safely and get the car checked, because raw fuel can overheat and destroy the catalytic converter.

Will an OBD2 scanner tell me exactly which part to replace?

No. A trouble code identifies the circuit or system that failed its test, not the specific part. For example, P0171 (system too lean) can be caused by a vacuum leak, a dirty mass airflow sensor, low fuel pressure, or an exhaust leak. The code tells you where to look; testing tells you what to replace.

Are engine codes the same for every car brand?

Generic codes — those with a 0 as the second digit, like P0300 — are standardized under SAE J2012 and mean the same thing on every brand. Manufacturer-specific codes — with a 1 as the second digit, like P1101 — are defined by each automaker and must be looked up for your exact make and model.

Have a specific code on your scanner? Search any trouble code on the homepage to get its meaning, the most common causes, and what to check next.