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
- C0560 Code: Brake Pressure Sensor A Missing Calibration, Which Vehicles Use This Number, and What "Missing Calibration" Means
C0560 does not say the brake pressure sensor is reading wrong. It says the module has no accepted calibration data for that sensor, which happens after a module or sensor is replaced, after a failed programming session, or when low voltage corrupts the stored values. The fix is usually a procedure, not a part.
- P055D Code: Engine Oil Pressure Sensor B High, and Why on a Honda It Is the VTEC Rocker Arm Sensor, Not the Oil Pressure Gauge
P055D is not the low-oil-pressure code. Sensor B on the Hondas that set it is a VTEC monitoring sensor on the cylinder head, and a signal stuck at the top of its range means the computer is seeing an open circuit or a sensor that has lost its ground, not an engine with too much oil pressure.
- U060B Code: Lost Communication With Boost Sensor A, and Why It Is a Wiring Code Before It Is a Sensor Code
U060B is not the old boost sensor circuit code. It is a network code, set only on engines whose boost sensor talks to the computer over a digital link, and on those engines the link fails at the connector and the harness far more often than inside the sensor.
U060F Code: Lost Communication With MAF Sensor A, and Why a New Sensor Often Does Not Fix ItU060F is not the classic MAF code. It is a network code, and on most vehicles that set it the sensor is talking over a one-wire digital link that a wet connector, a chafed wire or a low battery can silence.
U02A3 Code: Lost Communication With the Particulate Matter Sensor on a DieselThe particulate matter sensor is a small heated probe behind the diesel particulate filter with its own control module. U02A3 says that module went quiet, and the reasons range from a chafed connector to a truck that was just returned to stock.
P04FC Code: Crankcase Ventilation System Performance, Explained From the Pressure Sensor OutP04FC only exists on engines that measure crankcase pressure directly. That sensor is the key to the diagnosis, because it tells you whether the crankcase is too high or too low before you pull a single hose.
P056E Code: Cold Start Turbo Boost Control Performance on VW and Audi TSI EnginesThe cold-start boost test is the harshest one the turbo faces. A wastegate arm that is a little stiff from corrosion passes every warm test and fails this one, which is why P056E shows up on a cold morning and disappears by noon.
P0576 Code: Cruise Control Input Circuit Low, and the Resistor Ladder Behind ItMost cruise switches are one wire carrying a different voltage for each button. When that wire reads too low for too long, P0576 sets. The fault is almost always in the switch or the wiring through the steering column, not in the engine computer.
A Flashing Check Engine Light Means Stop. A Steady One Does Not.The same lamp carries two completely different messages depending on whether it is steady or flashing, and the difference is worth several thousand dollars.
Clearing a Code Also Clears the Readiness MonitorsClearing the code turns the light off and erases the evidence. It also resets the readiness monitors, which is how people fail an emissions test with no light on.
The Cheapest Check Engine Light Is Usually the Fuel CapA large evaporative leak and a small one are next to each other in the numbering, and one of them is frequently a cap that was not turned until it clicked.
The Freeze Frame Is Worth More Than the CodeThe code says which test failed. The freeze frame says what the engine was doing at the time, and that is usually the more useful half.