⌘K
Home›Guides› Check engine light codes
Guide · Reading the numbers

Check engine light codes: what an OBD-II code tells you, and what it doesn't

Since 1996, cars and light trucks have carried a federally required self-test system. How to read the code it stores, why that code names a failed test rather than a broken part, and why clearing it fixes nothing.

By WhichTrim · Published 28 Sep 2026 · 10 min read · How we write guides

The check engine lamp is the visible end of a self-test system federal rules have required on cars and light trucks since the 1996 model year. When it lights, the engine computer has stored a trouble code: a five-character name for the test that failed. The code is where a diagnosis starts. It is not a list of parts to replace, and erasing it repairs nothing.

1,142trouble codes with a page of their own on this site
1996first model year of full OBD II compliance on U.S. cars and light trucks
68%of the codes on file here are P (powertrain) codes
P0300the code with the most references on file here

OBD II: the self-test behind the lamp

On-board diagnostics (OBD) is software in the vehicle’s computer that monitors the emission controls and the components that affect them, and stores a code when one fails its test. EPA’s OBD requirement began with the 1994 model year, but manufacturers could request waivers for 1994 and 1995, so full compliance on all cars and light trucks sold in the U.S. came with the 1996 model year; diesel cars and trucks followed in 1997. The second-generation system is called OBD II.

California wrote the detailed design rule, title 13, section 1968.2 of its code of regulations, and EPA accepts systems built to it. For the 2017 model year on, federal rules require light-duty vehicles to meet California’s 2013 OBD II requirements, and the California Air Resources Board says that in practice virtually all vehicles sold in the U.S. are certified to its rule. To confirm a vehicle has OBD II, look for the words on the emission control information label under the hood.

What OBD II made standard is what makes a code useful. Codes follow an SAE standard, J2012, which the California rule requires, and they are read through a standardized connector, usually under the dashboard on the driver’s side, with a scan tool: a handheld or computer-based device that reads codes and the status of each self-test.

Steady, flashing, or a flash at start-up

The lamp is officially the malfunction indicator light. It may read Check Engine or Service Engine Soon, or show an engine symbol. What it is doing matters more than what it says:

What you seeWhat it meansWhat to know
Lights briefly with the key on, then goes outThe bulb check. The system is working.Nothing to do. An emissions inspection fails a car whose lamp does not light at this point.
Stays on while drivingA fault has been detected and a code stored.EPA: it signals a need for service, not a need to stop. Seek service soon.
Flashes while drivingA severe misfire is happening now.EPA: reduce speed, minimize driving, avoid high speeds and heavy loads, and get it repaired quickly.

From EPA’s consumer fact sheets on OBD and 40 CFR 85.2222.

The flashing lamp is a design requirement, not a style choice. California’s rule requires the lamp to blink once a second while misfire severe enough to damage the catalyst is occurring, and EPA explains why it matters: severe misfire over even a short period can seriously damage emission components, especially the catalytic converter, which is typically the most expensive to replace.

A steady lamp can also go out by itself. If the system checks the component on three consecutive trips and no longer finds the problem, it turns the lamp off. EPA’s example is a fuel cap left loose after refueling: the system detects the vapor leak, and once the cap is tightened the lamp should go out within a few days.

Advertisement

How to read a trouble code

A trouble code is five characters: a letter, then four more, as in P0420. The California rule requires standardized codes that follow SAE J2012, and asks that a stored code pinpoint the likely cause of the malfunction to the fullest extent possible.

The first character is a letter. P marks a powertrain code: the engine, its emission controls and the transmission. P codes are the ones EPA’s inspection rules were first written around. Codes can also begin with B, C or U, but federal rules reserve the check engine lamp for emission-related malfunctions; other faults may light other warning lamps.

The second character of a P code separates two kinds of code. California’s rule requires manufacturers to use the codes SAE J2012 defines whenever possible, and gives P0xxx and P2xxx as its examples. Manufacturer-defined codes, such as P1xxx, need the Air Resources Board’s approval, and each manufacturer must use its own consistently: one code, one failure mode, across its whole product line. So a P0 or P2 code carries the standard’s definition on any make, while a P1 code means what its manufacturer defined, which can differ from one make to the next. EPA’s rules draw the same line, giving P0456 as a generic code for a very small evaporative-system leak and allowing “an equivalent manufacturer-specific” code instead.

The third character of a P0 code names the group of systems the test belongs to. EPA’s first OBD inspection rule, in 1996, listed the groups by name:

Third characterGroup, as EPA’s 1996 rule named itCodes the rule listed
1Fuel and air meteringAll codes in the group
2Fuel and air meteringAll codes in the group
3Ignition system or misfireAll codes in the group
4Auxiliary emission controlsAll codes in the group (P0420–P0439 are the catalyst codes)
5Not named as a groupIndividual codes, including vehicle speed sensor (P0500–P0503), idle control (P0505–P0507) and system voltage (P0560–P0563)
6Computer and output circuitsAll codes in the group
7Not named as a groupIndividual codes, including transmission range sensor (P0705–P0709), output speed sensor (P0720–P0723) and torque converter clutch (P0740–P0744)

61 FR 40940 (6 August 1996). In 2001 EPA replaced the list with a simpler test: any code that turns the lamp on. The catalyst range is from EPA’s 2001 inspection guidance.

The last two characters pick out the specific fault. California’s rule requires separate codes for distinct circuit malfunctions, such as out-of-range low, out-of-range high and open circuit. In the 1996 rule, P0500 to P0503 are four different vehicle speed sensor faults: a malfunction, a range problem, a low circuit input and an intermittent signal. Newer codes can also use letters here; EPA’s rules cite P04EE and P04EF.

A code names the test that failed, not the part

This is the principle every code page on this site is written around, and the codes’ own names show why. P0502, in the 1996 rule, is a vehicle speed sensor “circuit low input”: the computer measured a signal lower than it should be. The sensor, its wiring, its connector and the module reading it are all part of that circuit, so the code alone does not say which one failed. California’s rule even separates kinds of test: a circuit check gets a different code from a rationality check, which asks whether a reading is plausible compared with everything else the computer knows. A code tells you which test failed. The rule asks it to point to the likely cause, and likely is where a diagnosis starts, not where it ends.

EPA’s inspection guidance builds in the same caution for catalyst codes (P0420–P0439): if a car that failed for one comes back with the catalyst self-test not yet re-run, EPA recommends requiring proof of repair or a tailpipe test, or turning the car away until the test has run. A code that has gone quiet proves nothing until the test that set it runs again.

CodeGroup (P0 codes)References on fileMakes
P0300Ignition system or misfire4,37728
P0442Auxiliary emission controls2,98412
P0456Auxiliary emission controls2,52518
B3055–2,0044
B3060–2,0034
B3935–2,0004
P050D–1,6148
P0308Ignition system or misfire1,4905

The codes most often named in the record this site publishes. References are mentions of the code in manufacturer service bulletins and owner complaints filed with NHTSA for the vehicles on this site; makes is the number of brands whose vehicles those documents cover.

This site publishes pages for 1,142 trouble codes, each listing the vehicles whose federal record names it; 68% of them are P codes.

That record matters because many manufacturer service bulletins name the codes a condition sets. When a bulletin names your code on your model, a diagnosis may already be written down; how service bulletins work explains what they oblige and what they don’t. Search the bulletins by model or number →

Pending codes, freeze frames and permanent codes

A fault usually passes through stages. A pending code is stored when a malfunction is first detected, typically on a single drive, before the lamp comes on. If the fault is confirmed, a confirmed code is stored and the lamp lights. EPA’s inspection rules do not fail a car for codes that have not turned the lamp on, and EPA notes that such pending codes frequently clear themselves without a repair.

With the code, the computer stores a freeze frame: a snapshot of conditions at the moment the fault was detected. Under the California rule it includes the code that caused it, engine speed, calculated load, coolant temperature and vehicle speed, plus readings such as fuel trim and whether the fuel system was in open or closed loop, where the engine uses them. EPA’s guidance calls the codes and their freeze-frame data important for proper diagnosis before a repair.

Under California’s rule, from the 2012 model year (phased in from 2010), a confirmed code that is keeping the lamp on is also stored as a permanent code. No scan tool command and no battery disconnection can erase it; the system clears it only after its own test has run again and found the fault gone.

Why clearing a code fixes nothing

A scan tool can clear stored codes, and disconnecting the battery does the same. The lamp goes out. So does the evidence: the freeze-frame data is erased with the codes, and every self-test’s readiness status is reset to “not ready”. EPA notes that clearing is all-or-nothing by design, so codes cannot be cleared selectively, and a permanent code survives the clearing anyway.

If the fault is still there, the self-test finds it again the next time it runs and the code comes back, now without the freeze frame that recorded the first occurrence. Until enough self-tests have run again, the car cannot pass an OBD inspection. Readiness status exists partly to catch that: EPA describes it as the way inspectors can be sure codes have not been cleared since the last check.

Before paying for an emission-related repair, check the warranty.

Federal law requires emission control systems on 1995 and later vehicles to be warranted for 2 years or 24,000 miles, and the on-board computer and the catalytic converter for 8 years or 80,000 miles. Many manufacturers provide coverage beyond what federal law requires.

How warranty extensions work →

Readiness monitors and emissions inspections

The self-tests are called monitors. EPA counts up to 11. Three run continuously: misfire, fuel trim and comprehensive components. The rest, such as the catalyst, evaporative system, oxygen sensor, heated oxygen sensor and exhaust gas recirculation monitors, run only when conditions each manufacturer sets are met, which can include outside temperature and the kind of driving. A scan tool shows each one as ready, not ready or not applicable. Not ready means only that the test has not run yet; it is not a fault.

Where a state or local inspection program uses OBD, federal rules set the test for 1996 and later vehicles:

  • With the key on and the engine off, the lamp must light. If it does not, the car fails.
  • With the engine running, a scan tool reads the monitors’ readiness and whether the lamp is commanded on. If it is commanded on for any code, the car fails, and it also fails if the lamp is commanded on but not lit.
  • If the lamp is not commanded on, the car passes the OBD check even with codes stored.
  • Readiness: a 1996–2000 model year car may have up to two monitors not ready, a 2001 or later car one. More than that and the owner is told to drive the car until the tests complete and come back.

That is why a car tested straight after a repair or a battery change can be turned away. EPA’s advice to inspection programs is to tell owners to allow about a week of normal driving after repairs before the test.

Look up a trouble code and the vehicles whose record names it →

Questions people ask

Can I keep driving with the check engine light on?

EPA’s guidance distinguishes the two cases. A steady lamp means service is needed soon, not that the car must stop. A flashing lamp means a severe misfire: reduce speed, minimize driving, avoid high speeds and heavy loads, and get it repaired quickly, because severe misfire can damage the catalytic converter in a short time.

Does a trouble code tell me which part to replace?

No. It names the self-test that failed and, as closely as the system can, the likely area of the fault. A circuit code, for example, covers the sensor, its wiring, its connector and the module reading it. The freeze-frame data and a diagnosis narrow it down from there.

Why did the light go off by itself?

Because the fault was not found again. If the system checks the component on three consecutive trips without seeing the problem, it turns the lamp off. The confirmed code can stay in memory until the fault has not recurred for 40 engine warm-up cycles, which is why a technician may still find it.

Will disconnecting the battery clear the code?

It clears stored codes and the freeze-frame data, and resets every readiness monitor to not ready. It does not fix the fault, it cannot erase a permanent code on vehicles built to California’s rule from 2012, and until the monitors run again the car cannot pass an OBD emissions inspection.

How soon after a repair can the car pass an emissions inspection?

When enough monitors have run: federal rules allow up to two not ready on 1996–2000 model years and one on 2001 and later. EPA suggests allowing about a week of normal driving after a repair before the test.

Sources