Diagnostic Trouble Codes
Every code on this site is the SAE J2012 generic definition — the wording the standard itself uses, not a paraphrase. Where a code is defined by the manufacturer rather than by SAE, the page says so, because a definition found for the wrong marque is worse than no definition at all.
Where these definitions come from
Every generic code on this site carries the SAE J2012 definition, cross-checked against two independent public code tables before publication. Where those tables disagreed, the code was left out rather than guessed at.
That sounds like a small thing until you see what the widely-copied lists actually contain. The dataset that ranks first for "OBD trouble codes" on GitHub — and which has been forked into commercial products — has its descriptions shifted against their code numbers: it gives P0420 as a secondary air injection relay fault and P0300 as a cylinder 12 contribution fault. Both are wrong, and both would send someone to replace a part that is working.
How to read a code number
The first character gives the area: P powertrain, B body, C chassis, U network. The second says who defined it — 0 and 2 are SAE definitions, identical on every vehicle; 1 and 3 are the manufacturer's own, and the same number can mean unrelated things on two marques.
The third character narrows the system, and the last two identify the specific fault. So P0301 is a powertrain code, SAE-defined, in the ignition and misfire group, for cylinder 1.
91 articles
What P20A9 means
| What the code meansSAE J2012 definition | Reductant Injection Air Pressure Control Valve Circuit High |
|---|---|
| Code | P20A9 |
| Areathe engine, transmission and the emissions equipment attached to them | Powertrain |
| System | Powertrain |
| Defined bythe second character is "2", which marks a generic code | SAE — the same on every make |
| Warning lighta steady light means have it looked at, not stop immediately | Steady, if lit at all |
Notes
- A stored code names the circuit that reported a problem, not the part that failed. P20A9 tells you which reading fell outside its expected window; the cause can be the sensor, its wiring, its connector, a vacuum or exhaust leak upstream, or the condition the sensor is correctly reporting. Replacing the named component first is the most common and most expensive diagnostic mistake.
- This is a generic code, so the definition above is the same on every make. What differs between manufacturers is not what the code means but what commonly causes it and how the fault is confirmed — which is why the marque-specific service information still matters even for a code any scanner can read.
- Read the freeze frame before clearing anything. The module stores the conditions at the moment the code set — engine speed, load, coolant temperature, fuel trims, vehicle speed — and that snapshot is usually more diagnostic than the code itself. Clearing the code erases it, along with the readiness monitors, and a vehicle with incomplete monitors will fail an emissions test even with no light on.
- One code often causes another. A single upstream fault — an intake leak, a weak fuel pump, low coolant — can set several codes across different systems. Where more than one is stored, the oldest and the most upstream is the one to work from, not the one with the most alarming description.
OBD-II trouble code by code number
9,398 calculations · browse all
- What B0001 means
- What B1382 means
- What C0097 means
- What C05B2 means
- What C1199 means
- What P00B8 means
- What P017C means
- What P0240 means
- What P0304 means
- What P03CB means
- What P048E means
- What P0552 means
- What P0616 means
- What P06DA means
- What P079E means
- What P0863 means
- What P0943 means
- What P0A6C means
- What P0B30 means
- What P0BF4 means
- What P0CB7 means
- What P0D7B means
- What P0E3F means
- What P1135 means
- What P20AA means
- What P216D means
- What P2231 means
- What P22F5 means
- What P23C1 means
- What P2484 means
- What P2548 means
- What P260C means
- What P26D0 means
- What P2796 means
- What P2869 means
- What P2A32 means
- What P2AF6 means
- What P2BBA means
- What P2C7E means
- What P2D41 means
- What P2E07 means
- What P340C means
- What U0054 means
- What U018A means
- What U02A6 means
- What U045A means
- What U0577 means
- What U068B means
Manufacturer trouble code by code and make
2,697 calculations · browse all
- What means on a
- What means on a
- What means on a
- What means on a
- What means on a
- What means on a
- What means on a
- What means on a
- What means on a
- What means on a
- What means on a
- What means on a
- What means on a
- What means on a
- What means on a
- What means on a
- What means on a
- What means on a
- What means on a
- What means on a
- What means on a
- What means on a
- What means on a
- What means on a
- What means on a
- What means on a
- What means on a
- What means on a
- What means on a
- What means on a
- What means on a
- What means on a
- What means on a
- What means on a
- What means on a
- What means on a
- What means on a
- What means on a
- What means on a
- What means on a
- What means on a
- What means on a
- What means on a
- What means on a
- What means on a
- What means on a
- What means on a
- What means on a
P0509 Code: Idle Air Control Circuit High, and Why It Mostly Shows Up on Older EnginesP0509 is an idle control code from the era before electronic throttles. On most vehicles that set it, the fault is a dirty bore, a connector or the valve itself, in that order of likelihood.
P057C Code: Brake Pedal Position Sensor Circuit Low, and the GM Truck Problem Behind Most of ThemP057C is a brake pedal sensor code, and on full-size GM trucks it often comes with odd driving symptoms: braking on flat roads, power that will not come, a transmission that keeps shifting. GM bulletins trace most of it to wiring and a learned voltage.
U0181 Code: Lost Communication With the Headlamp Leveling ModuleU0181 is a network code: the headlamp leveling module has gone quiet on the data bus. The headlights still work, but they stop adjusting to load, and on some cars the main beam or adaptive lighting shuts off too.
U0405 Code: Invalid Data From the Cruise Control Module, and What the -64, -68 and -86 Endings MeanOn a modern car, the cruise control module in U0405 is usually the radar behind the grille. The code says its data failed a check, and the two digits after the dash say which check.
U0421 Code: Invalid Data From the Suspension Control Module, on Land Rover and GM VehiclesU0421 is a data-validity code for the ride height and air suspension system. On some vehicles it is a real fault, on others a known false report with a published fix.
P0802 Code: Transmission MIL Request Circuit, and Why It Often Points to the Batteries on Diesel TrucksP0802 is a code about a message, not a gearbox. The transmission computer could not ask the engine computer to light the check engine lamp, and the reason is usually power, ground or wiring between the two.
P053E Code: Crankcase Pressure Too High, and What to Check Before You Blame the EngineHigh crankcase pressure has two possible sources: more gas getting into the crankcase, or less getting out. P053E cannot tell which, but a few simple checks can.
P0912 Code: Gate Select Actuator Circuit Low on Automated Manual GearboxesP0912 belongs to automated manual gearboxes: ordinary manual gearboxes with a computer and actuators doing the clutch and the shifting. The gate select actuator moves the lever sideways between gear planes, and a low circuit usually means a wiring or connector fault.
P0943 Code: Hydraulic Pressure Unit Cycling Too Often, and What a Short Pump Cycle MeansAn electro-hydraulic gearbox keeps a store of pressure in an accumulator and only runs its pump to top it up. P0943 says the pump is topping up too often, which means pressure is leaving the system faster than normal.
P08A6 Code: Gear Lever Position Sensors Disagree, on Shift-by-Wire SelectorsAn electronic gear selector reports its position through several sensors at once so that one bad reading cannot put the car in the wrong gear. P08A6 means those sensors stopped agreeing.
B0048 Code: Third Row Right Side Airbag Deployment Circuit, and What the Suffix SaysB0048 is an airbag code for the third row of a three-row vehicle. The airbag in question is disabled until the fault is fixed, and the two digits after the dash usually tell you whether you are looking for a short, an open or a resistance problem.
- P0171 Code: System Too Lean, Bank 1, Reading the Fuel Trims That Set It, and the Ford and Kia Cases Where the Leak Was Not a Leak
P0171 is a number that ran out of room. The computer kept lengthening injector pulses on bank 1 and the exhaust still said lean. Where the trims are high tells you why: at idle it is unmetered air, under load it is fuel supply, everywhere it is the sensor that measures air. The bulletins add two cases with no leak at all.