A scan tool connector plugged into the OBD-II port under the dashboard to read check engine light codes

Check Engine Light Codes: 29 OBD-II Codes in 6 Families

Short answer: Read the five characters of a check engine light code before you look it up: the third one tells you which system, and six families cover the common ones. Getting one read is free at most US parts chains.

Written by Iqbal Taher Certified mechanic and parts trader since 2011
Fact checked
Updated

Key takeaways

  • Safety: A flashing check engine light means a severe misfire damaging the exhaust right now, so pull over.
  • A code names the test that failed, not the part, so ask which test turned it into a part.
  • The third of the code's five characters tells you which system the fault sits in.
  • A free code read and a paid diagnosis are two different purchases, so ask which one a shop quotes.

A check engine light code is an OBD-II code (on-board diagnostics, generation two), or DTC, a diagnostic trouble code. It's stored by the self-test system federal rules require on modern US cars.

If it's the lamp you're unsure about rather than the code, start at the symbol board. What the lamp is reporting, and why it waited before saying anything, is in our guide to check engine light meaning.

Can you keep driving with a check engine light code?

Yes, if the light is steady, as our guide to a light on with the car running fine explains. Three exceptions move a check engine light code out of wait and see:

1. A flashing light

Blinking and flashing are the same thing: a misfire severe enough that the exhaust is being damaged right now, so it belongs in the stop group. Our guide to the flashing check engine light covers what it's counting down to.

2. A code with a symptom

Overheating, a loss of power, a smell or a noise takes it out of the waiting group. That holds whatever the code says.

Our free symptom finder starts from the sound, the smell or the light. The other lamps worth knowing are in our guide to dashboard warning lights.

3. An inspection coming up

A lit lamp fails the test in states that run one, and California also fails a permanent code, which a scan tool can't erase. A car whose monitors, the self-tests for each system, haven't finished running since the last clear can fail too.

What do check engine light codes mean?

Each code names a test that failed and where it sits in the car. Codes cluster by system, and the six families in the code list below cover most of the ones you'll meet.

Which code is yours

The 29 OBD-II codes, grouped by family

Grouped by family: the pattern before each one, like P03XX, marks the third character its codes share. Of the 29, 26 have our own article.

P04XX Evaporative emissions P0440–P0457, and P0496

P0440Fuel vapor system fault, no part named
P0455Large fuel vapor leak
P0442Small fuel vapor leak
P0456Very small fuel vapor leak
P0441Purge flow wrong
P0496Purge flow too high
P0443Purge valve circuit fault
P0446Vent valve not responding

P04XX Catalyst efficiency P0420 and P0430

P0420Converter efficiency reads low, bank 1
P0430Converter efficiency reads low, bank 2

P03XX Ignition and misfire P0300–P0308

P0300Random or multiple misfires
P0301Misfire, cylinder 1
P0302Misfire, cylinder 2
P0303Misfire, cylinder 3
P0304Misfire, cylinder 4
P0305Misfire, cylinder 5
P0306Misfire, cylinder 6

P02XX Turbo boost P0299

P0299Turbo boost too low

P01XX Fuel trim P0171–P0175

P0171Running lean, bank 1
P0174Running lean, bank 2
P0172Running rich, bank 1

P01XX Coolant temperature P0128

P0128Engine not warming up enough

Outside the six families

P0113Intake air temp sensor circuit high
P0011Intake cam timing off, bank 1
P0700Transmission module reports a fault
P0720Output speed signal lost or not trusted
P0101Air flow reading out of range
P0340Camshaft sensor circuit fault
P0401Too little exhaust gas recirculation (EGR)

When one code leads to another

A P0300 misfire ignored long enough can kill the converter and set a P0420 later. Our guide to the P0420 code works that chain through in full.

Some generic codes matter because their failure stops the car's other tests from running. P0128, the thermostat code, is the clearest case: its first failure condition is that coolant stayed below the thermostat's temperature, and an engine that cold can hold up the car's other tests.

How do you read a check engine light code?

Plug a reader into the port under the dash on the driver's side, then read the five characters one at a time. Each position narrows the search, and the third one does most of the work.

P0420PowertrainB is body, C is chassis, U is the networkP0420GenericSame on every car. A 1 here means the maker defined itP0420Auxiliary emission controls3 would be ignition and misfire, 7 the transmissionP0420The fault itselfCatalyst efficiency low, bank 1. P0430 is bank 2

Every OBD-II code is built the same way, so reading one is the same job every time. Here's how to read check engine codes, using P0420 one character at a time, in the order the drawing rings them:

  • The P names the area. P is powertrain, which is the engine and transmission and almost everything that turns the light on. B is body, C is chassis, U is the network the modules talk over.
  • The 0 tells you the meaning is the same on every car. A 0 means the code is generic, identical on every car sold here. A 1 means the manufacturer defined it, and its meaning is theirs.
  • The 4 names the system, the character worth memorizing. Digits 1 and 2 are fuel and air, 3 ignition and misfire, 4 emission controls, 5 speed and idle, 6 the computer's outputs, 7 and 8 the transmission.
  • The 20 is the fault inside that system, the only part you need to look up. On P0420 it's catalyst efficiency low on bank 1, the side with cylinder 1. A V6, a V8 or a flat engine has a second side, bank 2.

So P0420 reads as powertrain, generic, emission controls, fault 20. Even without knowing what 20 is, you already know it's an emissions problem on a standard code any reader can pull, and not a transmission or a network fault.

For any other code, type it in with your car's year and model. Use your carmaker's meaning for a code whose second character is 1.

Worth knowing

A generic code points at a system, not a part, because the rule asks the car to report which monitor, the self-test for one system, failed. Naming the part takes a diagnosis the car can't do, and that diagnosis is what you pay a shop for.

Is it PO420 or P0420?

It's a zero, never the letter O. On a scan tool display the two are drawn almost identically, and typing PO420 instead of P0420 is the easiest mistake in this subject to make.

It matters because a parts catalog or a service database returns nothing at all rather than correcting you. That reads as though the code doesn't exist and can send you back to the shop for a second reading you don't need.

If you got here that way, you read the code correctly and only mistyped it, and the same applies to every code on this page: PO171 is P0171, PO300 is P0300, PO301 is P0301, PO456 is P0456. The second character is a digit, zero and not the letter O, and some codes end in letters, like P04EE.

OBD-II is on-board diagnostics, generation two, and the II is a Roman numeral rather than two ones. That's where OBD11 comes from, while OBD2 means the same thing and is what most people write.

How much does it cost to diagnose a check engine light?

Free at a parts counter, $38–$40 for your own dongle, and a shop's own fee, which this page doesn't price, so ask for it first. A code read and a paid diagnosis are two different purchases, and the gap between them is the whole answer:

Three ways to get a check engine light code read, by fee or part price
Where What it costs What you actually get
A chain parts store Free Read in the parking lot and printed out. They sell parts too, so take the number as the reading and the advice as a pitch
A phone dongle $38–$40Plugs in and stays there, pairs to an app, reads and clears. Worth having on a car that is past its warranty
A shop's diagnostic charge Ask first The testing that turns a code into a part. Ask for the findings afterward

All three hand you the same five characters, and only the shop's testing tells you which part failed.

Treating those as one purchase is how people end up buying a part on the strength of a number. Finding out what a code means on your engine is the work, and what a fair estimate for that work looks like is set out in our guide to reading a repair estimate.

Can I clear the code myself?

Not before the repair. Clearing wipes the freeze frame, the snapshot of what the engine was doing when the fault was recorded and the most useful thing a technician gets for free.

It also resets the emissions monitors, and those can take days of ordinary driving to run again. A permanent code survives the clear too.

Does the code tell me which part to replace?

No, and that's the expensive misunderstanding. A code reports a measurement outside its limits, and P0420 is the clearest case of it.

P0420 means catalyst efficiency below threshold on bank 1. It's a measurement of the converter's output, taken by the sensor behind it, and it reports that the catalyst has stopped storing oxygen.

It doesn't say the converter is what broke. The converter can be the victim: a misfire cooking it, an exhaust leak upstream of it, closer to the engine, letting in air that fools the sensor, or coolant getting past a head gasket and poisoning it.

Replace the converter without finding what killed it and the code comes back, on a new converter. That's the difference between a code and a diagnosis, and it's why the free reading at the parts counter is the beginning of the job rather than the end of it.

P0299, turbo underboost, the code for a turbo making less boost than asked, works the same way. GM wrote a bulletin listing when a turbo that set it shouldn't be replaced, because good turbos kept coming back from repairs with nothing wrong.

P0720, the code for the sensor that reads the transmission's output speed, is another. The makers' own documents blame the connector, the wiring and the parts around the sensor more often than the sensor.

A diagnostic laptop on a car's driver's seat, cabled to the OBD port under the dashboard

The part a free code read leaves out

The code comes off this socket in seconds. What the laptop does next is the testing that turns five characters into a named part. AI illustration by Oil & Miles

How much does a check engine light cost to fix?

It depends on the code, from a loose gas cap to a converter. One ignition coil on a 2025 Chevrolet Silverado 1500 5.3L runs $88–$242 at an independent shop, parts and labor.

A federal-grade catalytic converter runs $402–$1,846, parts and labor, on the cars our converter cost page prices. The code list above shows what each code we have written up costs, part plus booked labor.

What should you do about the code you have?

Write the code down before anything clears it, then act on it in this order:

  1. Read the characters, not just the number. The letter and the first two digits tell you the area, whether any reader can pull it, and which system reported the fault. That's most of what a shop is about to tell you.
  2. Check the three exceptions above. A flashing light, a symptom you can feel, or an inspection coming up changes what you do next, whatever the code says.
  3. Read our page for that code if we have one. The index above links every code we have written up. Our free car complaints lookup shows what owners of your exact car have reported.
  4. Ask what test turned the code into a part. The code names a measurement that failed. Turning that into a component is a diagnosis, and a shop that skips it is guessing with your money. Before you pay, our free VIN decoder lists the recalls for your model year, and NHTSA's VIN search shows which are still open on yours.

From the rule

Why is a code the same on every car?

Because the federal rule adopts California's requirements and names SAE J2012 as the code standard. That's the reason a basic reader bought for one car works on another:

EPA

Federal rule 40 CFR 86.1806-17 (a)

Vehicles must comply with the 2013 OBD requirements adopted for California as described in this paragraph (a).

Covers
The federal rule doesn't write its own OBD-II specification. It adopts the California one.
Who pays
Info only
EPA

Federal rule 40 CFR 86.1806-17 (b)(1)

the DTC(s) shall be a generic SAE J2012 DTC that is specific to an EVAP system very small leak (e.g., P0456, P04EE, or P04EF) or an equivalent manufacturer-specific DTC that we approve

Covers
The rule names SAE J2012 as the code standard, and names example codes in it.
Who pays
Info only

So a generic P-code is generic by regulation rather than by convention. That's also why a manufacturer-specific code beginning with a 1 is the one your reader may not know.

Conclusion

What to do next about check engine light codes

A check engine light code names the test that failed, not the part, and its five characters tell you where to look. A flashing light, a symptom you can feel or an inspection coming up ends the waiting, and otherwise a steady light can wait for an appointment.

So write the code down before anyone clears it, then ask what test turned it into a part before you pay for one. Oil & Miles checks each step here against the federal rule and the carmakers' documents, across repair costs and symptoms.

Check engine light · what to read next

Flashing lights, codes and the fixes behind them

Common questions

Asked most often

Are the codes the same on every car?

The generic ones are, and that's why a basic reader can read them on any car. A 1 in the second position means the manufacturer defined that code themselves, and those vary by maker.

What is DTC in a car?

A diagnostic trouble code, which is the same thing as a check engine light code. Shops and scan tools write DTC, owners write code, and both mean the five characters the computer stored when a test failed.

What is OBD?

On-board diagnostics, the system in the car that runs the tests and stores the codes. OBD-II is generation two, required by federal rules, and it's why a basic reader works on any car that has it.

Sources

  1. 40 CFR 86.1806, EPA on-board diagnostics, for the fact that the code format is regulated rather than conventional, and for the evaporative paragraph that names P0456. Electronic Code of Federal Regulations, read August 25, 2026, and re-read at the Cornell Legal Information Institute, September 16, 2026
  2. SAE J2012, Diagnostic Trouble Code Definitions, for the character structure. SAE International, via the CFR incorporation by reference library
  3. Code reader listings, for the phone dongle from TOPDON Carpal to FIXD. Walmart, read November 1, 2026

AI illustration by Oil & Miles

How this was compiled

The regulation was read rather than paraphrased, because a summary of it we came across overstated what it says. That summary claims the rule mandates the format universally, and what the section actually does is name the standard and require scan-readable results, with the explicit code naming in the evaporative paragraph.

SAE J2012 itself is sold by SAE International, and the federal rules incorporate it by reference rather than reprint it. Prices beside individual codes come from those codes' own articles.

What we didn't do

We didn't rank which codes are most common, because no primary source we could reach ranks the codes themselves. The lists we found trace back to a company's own tool data without a method attached.

We didn't reproduce a full code lookup table, because several thousand entries is a reference rather than an article. We also didn't read the whole California on-board diagnostic regulation, and we didn't test any code reader, and we recommend no brand.

Prices are US figures and vary by region, engine and shop rate. The prices beside individual codes say on the row what they cover. This article is general information, not advice about your specific vehicle. See the disclaimer.