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
- P0194 Code: Fuel Rail Pressure Sensor Circuit Intermittent or Erratic, and Why the Harness Fails Before the Sensor Does
P0194 is the intermittent member of the fuel rail pressure family. The sensor is not reading too high or too low; its signal is flickering. On the engines that set this code most often, the flicker comes from a harness that moves with the valvetrain or rubs a bracket, and a sensor swapped without touching that harness leaves the code in place.
- P0195 Code: Engine Oil Temperature Sensor Circuit, What the Computer Uses It For, and the Two-Wire Test That Settles It
P0195 is a low-drama code on most gasoline engines and a real drivability code on a Power Stroke, where oil temperature feeds injection timing and glow plug control. Either way the sensor is a two-wire thermistor, which makes it one of the easiest circuits on the engine to test properly before buying anything.
- P0522 Code: Engine Oil Pressure Sensor Circuit Low, When It Is the Sensor, When It Is a Chafed Harness, and When It Is Real
P0522 is an electrical code with a mechanical trap inside it. Nine times in ten the signal is low because a wire is grounded or a sensor has failed. The tenth time the oil pressure really is low, and the only way to know which is to put a gauge on the engine before trusting either the sensor or the code.
- P0534 Code: A/C Refrigerant Charge Loss, How the Computer Infers a Leak Without Seeing It, and the Chevrolet Volt Case
P0534 is an inference, not a measurement. No sensor reads refrigerant quantity. The computer watches compressor cycling, pressures and temperatures and decides the charge is low. On most cars that inference is right. On a few, notably electric and hybrid vehicles that use the A/C loop to cool the battery, it is set by software, a stuck cooler or a sensor instead.
- P0552 Code: Power Steering Pressure Sensor Circuit Low, Why It Is an Idle-Control Code, and How to Tell Switch From Sensor
P0552 is filed under power steering but it is really an idle-quality code. The engine computer reads steering pump load so it can raise idle before the pump drags the engine down at a stop. When the signal drops out, the computer loses that warning, and the first symptom is often a stumble while parking rather than anything at the wheel.
- P0554 Code: Power Steering Pressure Sensor Circuit Intermittent, the Code That Sets When You Park and Clears on the Highway
P0554 is the intermittent cousin of P0552. Nothing is permanently wrong with the circuit; it opens for a moment and recovers, usually while the engine rocks under steering load in a parking lot. That timing is the clue. The fault is almost always mechanical, a connector or a wire that moves, and it is found by watching the signal while making it move.
- P0561 Code: System Voltage Unstable, What "Unstable" Means to the Computer, and the Voltage-Drop Tests That Find It
P0561 is not a low-voltage code and not a high-voltage code. It is a jitter code. The computer measured its own supply and found it moving up and down faster or further than a healthy charging system allows. Most of the time a cable, a ground or an alternator diode is the reason, and a voltmeter across the right two points finds it in minutes.
- P0565 Code: Cruise Control On Signal, Why the Clockspring Is the Usual Suspect, and How Resistive Switch Circuits Are Tested
P0565 is a switch-circuit code with one moving part in it. The cruise switch is on the steering wheel, the computer is on the engine, and everything between them passes through a coiled ribbon cable that flexes every time the wheel turns. That ribbon is where the circuit usually breaks, and it explains why the code so often arrives with an airbag warning.
- P0762 Code: Shift Solenoid C Stuck On, Why It Is Usually a Hydraulic Code, and What Ford's 10R80 Bulletins Say About It
P0762 is a performance code wearing a solenoid's name. The controller did not measure an electrical fault; it measured the wrong gear ratio after telling solenoid C to release, and blamed the solenoid. On the transmissions that set it most, the cause is debris holding a valve, a leaking clutch cylinder or a calibration that has fallen out of step with worn hardware.
- P0916 Code: Gear Shift Position Circuit Low, What This Sensor Is on a Manual Gearbox, and Why It Rarely Means the Sensor
P0916 lives on gearboxes most drivers do not think of as computerized. A manual transmission with auto start-stop, hill hold or a clutch-by-wire system needs to know what gear is selected, and a small sensor on the shift mechanism tells it. When that signal drops to the floor the computer loses a safety input, and the fixes are almost all in the wiring.
- U0304 Code: Software Incompatibility With Gear Shift Control Module A, on Allison Trucks and Shift-by-Wire Cars
U0304 is a handshake failure. The transmission controller asks the shift selector who it is, and either gets no valid answer within three seconds or gets an answer it was not calibrated to accept. On Allison trucks the usual cause is battery voltage collapsing during a crank; on cars it is a module that was replaced or reflashed without its partner.
- P097A Code: Shift Solenoid A Control Circuit Open, Which Wire Is Open, and Why the Companion Codes Tell You Which End
P097A is one of three shift solenoid codes added in a later revision of the SAE list. The older pair, P0973 and P0974, catch a short. P097A catches nothing at all: the driver turns on and no current flows. That points at a wire, a connector or a coil, and the other codes stored beside it usually say which.