OBD-II Codes: What They Mean and How to Read Them
An OBD-II code is a five-character diagnostic trouble code, such as P0420, that a car’s computer stores when a system fails a self-test. The letter names the area (P powertrain, B body, C chassis, U network), the next digit says whether the code is generic or manufacturer-specific, and the rest pinpoints the fault. Below are 240 common generic codes explained.
Updated 2026-11-07 · By CarWhere Research · Code titles per SAE J2012 / ISO 15031-6
Most-searched codes
How to read an OBD-II code
| Position | What it tells you |
|---|---|
| 1st character (letter) | Vehicle area: P = powertrain (engine, transmission, emissions), B = body (airbags, seats, climate), C = chassis (ABS, steering, suspension), U = network (communication between control modules). |
| 2nd character | 0 = generic code with a definition set by SAE J2012 / ISO 15031-6, the same on every make. 1 = manufacturer-specific, defined by the automaker. 2 and 3 are split between further generic ranges and manufacturer-controlled ranges. |
| 3rd character | Subsystem (for P0 codes): 0, 1 and 2 = fuel and air metering (2 = injector circuits); 3 = ignition and misfire; 4 = auxiliary emission controls (EGR, EVAP, catalyst); 5 = vehicle speed, idle control and auxiliary inputs; 6 = computer and output circuits; 7, 8 and 9 = transmission; A = hybrid propulsion. |
| 4th & 5th characters | The specific fault within that subsystem, e.g. P0420 = catalyst efficiency below threshold on bank 1, P0301 = misfire detected in cylinder 1. |
Bank and sensor numbers: on V6, V8 and flat engines, bank 1 is the side with cylinder 1 and bank 2 is the other side; inline engines have only bank 1. Oxygen sensor 1 is upstream of the catalytic converter and sensor 2 is downstream.
How to check your codes
- Find the 16-pin diagnostic connector (data link connector). Federal rules require it within reach of the driver’s seat — usually under the dashboard near the steering column.
- Plug in an OBD-II scan tool or code reader and turn the ignition on (engine off or running, per the tool’s instructions). Many auto parts stores will also read codes at no charge.
- Read all stored, pending and permanent codes, plus the freeze-frame data — a snapshot of speed, temperature and load at the moment the code set.
- Write everything down before clearing anything. Clearing erases freeze-frame data and resets the readiness monitors used by emissions inspections.
- Look up each code below, start with the first code that set, and fix root causes (vacuum leaks, misfires, wiring) before replacing expensive parts.
All OBD-II codes we explain
Showing 240 of 240 codes
| Code | Definition | Severity |
|---|---|---|
| P0010 | "A" Camshaft Position Actuator Circuit (Bank 1) | Moderate |
| P0011 | "A" Camshaft Position - Timing Over-Advanced or System Performance (Bank 1) | Moderate |
| P0012 | "A" Camshaft Position - Timing Over-Retarded (Bank 1) | Moderate |
| P0013 | "B" Camshaft Position - Actuator Circuit (Bank 1) | Moderate |
| P0014 | "B" Camshaft Position - Timing Over-Advanced or System Performance (Bank 1) | Moderate |
| P0016 | Crankshaft Position - Camshaft Position Correlation (Bank 1 Sensor A) | High |
| P0017 | Crankshaft Position - Camshaft Position Correlation (Bank 1 Sensor B) | High |
| P0018 | Crankshaft Position - Camshaft Position Correlation (Bank 2 Sensor A) | High |
| P0020 | "A" Camshaft Position Actuator Circuit (Bank 2) | Moderate |
| P0021 | "A" Camshaft Position - Timing Over-Advanced or System Performance (Bank 2) | Moderate |
| P0022 | "A" Camshaft Position - Timing Over-Retarded (Bank 2) | Moderate |
| P0030 | HO2S Heater Control Circuit (Bank 1 Sensor 1) | Low |
| P0036 | HO2S Heater Control Circuit (Bank 1 Sensor 2) | Low |
| P0037 | HO2S Heater Control Circuit Low (Bank 1 Sensor 2) | Low |
| P0038 | HO2S Heater Control Circuit High (Bank 1 Sensor 2) | Low |
| P0050 | HO2S Heater Control Circuit (Bank 2 Sensor 1) | Low |
| P0068 | MAP/MAF - Throttle Position Correlation | High |
| P0087 | Fuel Rail/System Pressure - Too Low | High |
| P0088 | Fuel Rail/System Pressure - Too High | High |
| P0089 | Fuel Pressure Regulator 1 Performance | Moderate |
| P0100 | Mass or Volume Air Flow Circuit | Moderate |
| P0101 | Mass or Volume Air Flow Circuit Range/Performance | Moderate |
| P0102 | Mass or Volume Air Flow Circuit Low Input | Moderate |
| P0103 | Mass or Volume Air Flow Circuit High Input | Moderate |
| P0106 | Manifold Absolute Pressure/Barometric Pressure Circuit Range/Performance | Moderate |
| P0107 | Manifold Absolute Pressure/Barometric Pressure Circuit Low Input | Moderate |
| P0108 | Manifold Absolute Pressure/Barometric Pressure Circuit High Input | Moderate |
| P0110 | Intake Air Temperature Sensor 1 Circuit (Bank 1) | Low |
| P0111 | Intake Air Temperature Sensor 1 Circuit Range/Performance (Bank 1) | Low |
| P0112 | Intake Air Temperature Sensor 1 Circuit Low (Bank 1) | Low |
| P0113 | Intake Air Temperature Sensor 1 Circuit High (Bank 1) | Low |
| P0115 | Engine Coolant Temperature Circuit | Moderate |
| P0116 | Engine Coolant Temperature Circuit Range/Performance | Moderate |
| P0117 | Engine Coolant Temperature Circuit Low | Moderate |
| P0118 | Engine Coolant Temperature Circuit High | Moderate |
| P0120 | Throttle/Pedal Position Sensor/Switch "A" Circuit | High |
| P0121 | Throttle/Pedal Position Sensor/Switch "A" Circuit Range/Performance | High |
| P0122 | Throttle/Pedal Position Sensor/Switch "A" Circuit Low | High |
| P0123 | Throttle/Pedal Position Sensor/Switch "A" Circuit High | High |
| P0125 | Insufficient Coolant Temperature for Closed Loop Fuel Control | Low |
| P0128 | Coolant Thermostat (Coolant Temperature Below Thermostat Regulating Temperature) | Low |
| P0130 | O2 Sensor Circuit (Bank 1 Sensor 1) | Moderate |
| P0131 | O2 Sensor Circuit Low Voltage (Bank 1 Sensor 1) | Moderate |
| P0132 | O2 Sensor Circuit High Voltage (Bank 1 Sensor 1) | Moderate |
| P0133 | O2 Sensor Circuit Slow Response (Bank 1 Sensor 1) | Low |
| P0134 | O2 Sensor Circuit No Activity Detected (Bank 1 Sensor 1) | Moderate |
| P0135 | O2 Sensor Heater Circuit (Bank 1 Sensor 1) | Low |
| P0136 | O2 Sensor Circuit (Bank 1 Sensor 2) | Low |
| P0137 | O2 Sensor Circuit Low Voltage (Bank 1 Sensor 2) | Low |
| P0138 | O2 Sensor Circuit High Voltage (Bank 1 Sensor 2) | Low |
| P0139 | O2 Sensor Circuit Slow Response (Bank 1 Sensor 2) | Low |
| P0140 | O2 Sensor Circuit No Activity Detected (Bank 1 Sensor 2) | Low |
| P0141 | O2 Sensor Heater Circuit (Bank 1 Sensor 2) | Low |
| P0150 | O2 Sensor Circuit (Bank 2 Sensor 1) | Moderate |
| P0151 | O2 Sensor Circuit Low Voltage (Bank 2 Sensor 1) | Moderate |
| P0152 | O2 Sensor Circuit High Voltage (Bank 2 Sensor 1) | Moderate |
| P0153 | O2 Sensor Circuit Slow Response (Bank 2 Sensor 1) | Low |
| P0154 | O2 Sensor Circuit No Activity Detected (Bank 2 Sensor 1) | Moderate |
| P0155 | O2 Sensor Heater Circuit (Bank 2 Sensor 1) | Low |
| P0156 | O2 Sensor Circuit (Bank 2 Sensor 2) | Low |
| P0157 | O2 Sensor Circuit Low Voltage (Bank 2 Sensor 2) | Low |
| P0158 | O2 Sensor Circuit High Voltage (Bank 2 Sensor 2) | Low |
| P0160 | O2 Sensor Circuit No Activity Detected (Bank 2 Sensor 2) | Low |
| P0161 | O2 Sensor Heater Circuit (Bank 2 Sensor 2) | Low |
| P0171 | System Too Lean (Bank 1) | Moderate |
| P0172 | System Too Rich (Bank 1) | Moderate |
| P0174 | System Too Lean (Bank 2) | Moderate |
| P0175 | System Too Rich (Bank 2) | Moderate |
| P0191 | Fuel Rail Pressure Sensor "A" Circuit Range/Performance | High |
| P0193 | Fuel Rail Pressure Sensor "A" Circuit High | High |
| P0201 | Injector Circuit/Open - Cylinder 1 | High |
| P0202 | Injector Circuit/Open - Cylinder 2 | High |
| P0203 | Injector Circuit/Open - Cylinder 3 | High |
| P0204 | Injector Circuit/Open - Cylinder 4 | High |
| P0205 | Injector Circuit/Open - Cylinder 5 | High |
| P0206 | Injector Circuit/Open - Cylinder 6 | High |
| P0207 | Injector Circuit/Open - Cylinder 7 | High |
| P0208 | Injector Circuit/Open - Cylinder 8 | High |
| P0217 | Engine Coolant Over Temperature Condition | Severe |
| P0218 | Transmission Fluid Over Temperature Condition | High |
| P0219 | Engine Overspeed Condition | High |
| P0220 | Throttle/Pedal Position Sensor/Switch "B" Circuit | High |
| P0221 | Throttle/Pedal Position Sensor/Switch "B" Circuit Range/Performance | High |
| P0222 | Throttle/Pedal Position Sensor/Switch "B" Circuit Low | High |
| P0223 | Throttle/Pedal Position Sensor/Switch "B" Circuit High | High |
| P0234 | Turbocharger/Supercharger "A" Overboost Condition | High |
| P0299 | Turbocharger/Supercharger "A" Underboost Condition | Moderate |
| P0300 | Random/Multiple Cylinder Misfire Detected | High |
| P0301 | Cylinder 1 Misfire Detected | High |
| P0302 | Cylinder 2 Misfire Detected | High |
| P0303 | Cylinder 3 Misfire Detected | High |
| P0304 | Cylinder 4 Misfire Detected | High |
| P0305 | Cylinder 5 Misfire Detected | High |
| P0306 | Cylinder 6 Misfire Detected | High |
| P0307 | Cylinder 7 Misfire Detected | High |
| P0308 | Cylinder 8 Misfire Detected | High |
| P0320 | Ignition/Distributor Engine Speed Input Circuit | High |
| P0325 | Knock Sensor 1 Circuit (Bank 1 or Single Sensor) | Moderate |
| P0327 | Knock Sensor 1 Circuit Low (Bank 1 or Single Sensor) | Moderate |
| P0328 | Knock Sensor 1 Circuit High (Bank 1 or Single Sensor) | Moderate |
| P0330 | Knock Sensor 2 Circuit (Bank 2) | Moderate |
| P0332 | Knock Sensor 2 Circuit Low (Bank 2) | Moderate |
| P0335 | Crankshaft Position Sensor "A" Circuit | High |
| P0336 | Crankshaft Position Sensor "A" Circuit Range/Performance | High |
| P0340 | Camshaft Position Sensor "A" Circuit (Bank 1 or Single Sensor) | Moderate |
| P0341 | Camshaft Position Sensor "A" Circuit Range/Performance (Bank 1 or Single Sensor) | Moderate |
| P0345 | Camshaft Position Sensor "A" Circuit (Bank 2) | Moderate |
| P0351 | Ignition Coil "A" Primary/Secondary Circuit | High |
| P0352 | Ignition Coil "B" Primary/Secondary Circuit | High |
| P0353 | Ignition Coil "C" Primary/Secondary Circuit | High |
| P0354 | Ignition Coil "D" Primary/Secondary Circuit | High |
| P0355 | Ignition Coil "E" Primary/Secondary Circuit | High |
| P0356 | Ignition Coil "F" Primary/Secondary Circuit | High |
| P0365 | Camshaft Position Sensor "B" Circuit (Bank 1) | Moderate |
| P0366 | Camshaft Position Sensor "B" Circuit Range/Performance (Bank 1) | Moderate |
| P0400 | Exhaust Gas Recirculation Flow | Moderate |
| P0401 | Exhaust Gas Recirculation Flow Insufficient Detected | Moderate |
| P0402 | Exhaust Gas Recirculation Flow Excessive Detected | Moderate |
| P0403 | Exhaust Gas Recirculation "A" Control Circuit | Moderate |
| P0404 | Exhaust Gas Recirculation "A" Control Circuit Range/Performance | Moderate |
| P0405 | Exhaust Gas Recirculation Sensor "A" Circuit Low | Low |
| P0410 | Secondary Air Injection System | Low |
| P0411 | Secondary Air Injection System Incorrect Flow Detected | Low |
| P0420 | Catalyst System Efficiency Below Threshold (Bank 1) | Moderate |
| P0421 | Warm Up Catalyst Efficiency Below Threshold (Bank 1) | Moderate |
| P0430 | Catalyst System Efficiency Below Threshold (Bank 2) | Moderate |
| P0431 | Warm Up Catalyst Efficiency Below Threshold (Bank 2) | Moderate |
| P0440 | Evaporative Emission System | Low |
| P0441 | Evaporative Emission System Incorrect Purge Flow | Low |
| P0442 | Evaporative Emission System Leak Detected (Small Leak) | Low |
| P0443 | Evaporative Emission System Purge Control Valve Circuit | Low |
| P0446 | Evaporative Emission System Vent Control Circuit | Low |
| P0449 | Evaporative Emission System Vent Valve/Solenoid Circuit | Low |
| P0451 | Evaporative Emission System Pressure Sensor Range/Performance | Low |
| P0452 | Evaporative Emission System Pressure Sensor Low Input | Low |
| P0453 | Evaporative Emission System Pressure Sensor High Input | Low |
| P0455 | Evaporative Emission System Leak Detected (Large Leak) | Low |
| P0456 | Evaporative Emission System Leak Detected (Very Small Leak) | Low |
| P0457 | Evaporative Emission System Leak Detected (Fuel Cap Loose/Off) | Low |
| P0491 | Secondary Air Injection System Insufficient Flow (Bank 1) | Low |
| P0492 | Secondary Air Injection System Insufficient Flow (Bank 2) | Low |
| P0496 | Evaporative Emission System High Purge Flow | Moderate |
| P0497 | Evaporative Emission System Low Purge Flow | Low |
| P0500 | Vehicle Speed Sensor "A" | Moderate |
| P0501 | Vehicle Speed Sensor "A" Range/Performance | Moderate |
| P0505 | Idle Air Control System | Moderate |
| P0506 | Idle Air Control System RPM Lower Than Expected | Moderate |
| P0507 | Idle Air Control System RPM Higher Than Expected | Moderate |
| P0520 | Engine Oil Pressure Sensor/Switch "A" Circuit | High |
| P0521 | Engine Oil Pressure Sensor/Switch "A" Range/Performance | High |
| P0522 | Engine Oil Pressure Sensor/Switch "A" Circuit Low | High |
| P0523 | Engine Oil Pressure Sensor/Switch "A" Circuit High | High |
| P0524 | Engine Oil Pressure Too Low | Severe |
| P0530 | A/C Refrigerant Pressure Sensor "A" Circuit | Low |
| P0532 | A/C Refrigerant Pressure Sensor "A" Circuit Low | Low |
| P0562 | System Voltage Low | High |
| P0563 | System Voltage High | High |
| P0571 | Brake Switch "A" Circuit | Moderate |
| P0600 | Serial Communication Link | Moderate |
| P0601 | Internal Control Module Memory Check Sum Error | High |
| P0603 | Internal Control Module Keep Alive Memory (KAM) Error | Moderate |
| P0604 | Internal Control Module Random Access Memory (RAM) Error | High |
| P0605 | Internal Control Module Read Only Memory (ROM) Error | High |
| P0606 | Control Module Processor | High |
| P0607 | Control Module Performance | Moderate |
| P0641 | Sensor Reference Voltage "A" Circuit/Open | High |
| P0651 | Sensor Reference Voltage "B" Circuit/Open | High |
| P0700 | Transmission Control System (MIL Request) | High |
| P0705 | Transmission Range Sensor "A" Circuit (PRNDL Input) | High |
| P0706 | Transmission Range Sensor "A" Circuit Range/Performance | High |
| P0710 | Transmission Fluid Temperature Sensor "A" Circuit | Moderate |
| P0711 | Transmission Fluid Temperature Sensor "A" Circuit Range/Performance | Moderate |
| P0712 | Transmission Fluid Temperature Sensor "A" Circuit Low | Moderate |
| P0713 | Transmission Fluid Temperature Sensor "A" Circuit High | Moderate |
| P0715 | Input/Turbine Speed Sensor "A" Circuit | High |
| P0716 | Input/Turbine Speed Sensor "A" Circuit Range/Performance | High |
| P0717 | Input/Turbine Speed Sensor "A" Circuit No Signal | High |
| P0720 | Output Speed Sensor Circuit | High |
| P0721 | Output Speed Sensor Circuit Range/Performance | High |
| P0722 | Output Speed Sensor Circuit No Signal | High |
| P0725 | Engine Speed Input Circuit | Moderate |
| P0729 | Gear 6 Incorrect Ratio | High |
| P0730 | Incorrect Gear Ratio | High |
| P0731 | Gear 1 Incorrect Ratio | High |
| P0732 | Gear 2 Incorrect Ratio | High |
| P0733 | Gear 3 Incorrect Ratio | High |
| P0734 | Gear 4 Incorrect Ratio | High |
| P0735 | Gear 5 Incorrect Ratio | High |
| P0740 | Torque Converter Clutch Solenoid Circuit/Open | Moderate |
| P0741 | Torque Converter Clutch Solenoid Circuit Performance/Stuck Off | Moderate |
| P0743 | Torque Converter Clutch Solenoid Circuit Electrical | Moderate |
| P0745 | Pressure Control Solenoid "A" | High |
| P0748 | Pressure Control Solenoid "A" Electrical | High |
| P0750 | Shift Solenoid "A" | High |
| P0751 | Shift Solenoid "A" Performance/Stuck Off | High |
| P0752 | Shift Solenoid "A" Stuck On | High |
| P0753 | Shift Solenoid "A" Electrical | High |
| P0755 | Shift Solenoid "B" | High |
| P0756 | Shift Solenoid "B" Performance/Stuck Off | High |
| P0758 | Shift Solenoid "B" Electrical | High |
| P0760 | Shift Solenoid "C" | High |
| P0763 | Shift Solenoid "C" Electrical | High |
| P0765 | Shift Solenoid "D" | High |
| P0780 | Shift Error | High |
| P0841 | Transmission Fluid Pressure Sensor/Switch "A" Circuit Range/Performance | Moderate |
| P0868 | Transmission Fluid Pressure Low | High |
| P0882 | TCM Power Input Signal Low | High |
| P0894 | Transmission Component Slipping | High |
| P0A80 | Replace Hybrid Battery Pack | High |
| P2002 | Diesel Particulate Filter Efficiency Below Threshold (Bank 1) | Moderate |
| P2096 | Post Catalyst Fuel Trim System Too Lean (Bank 1) | Low |
| P2097 | Post Catalyst Fuel Trim System Too Rich (Bank 1) | Moderate |
| P2098 | Post Catalyst Fuel Trim System Too Lean (Bank 2) | Low |
| P2099 | Post Catalyst Fuel Trim System Too Rich (Bank 2) | Moderate |
| P20EE | SCR NOx Catalyst Efficiency Below Threshold (Bank 1) | High |
| P2101 | Throttle Actuator "A" Control Motor Circuit Range/Performance | High |
| P2111 | Throttle Actuator "A" Control System - Stuck Open | High |
| P2112 | Throttle Actuator "A" Control System - Stuck Closed | High |
| P2119 | Throttle Actuator "A" Control Throttle Body Range/Performance | High |
| P2122 | Throttle/Pedal Position Sensor/Switch "D" Circuit Low | High |
| P2135 | Throttle/Pedal Position Sensor/Switch "A"/"B" Voltage Correlation | High |
| P2138 | Throttle/Pedal Position Sensor/Switch "D"/"E" Voltage Correlation | High |
| P2177 | System Too Lean Off Idle (Bank 1) | Moderate |
| P2187 | System Too Lean at Idle (Bank 1) | Moderate |
| P2188 | System Too Rich at Idle (Bank 1) | Moderate |
| P2195 | O2 Sensor Signal Biased/Stuck Lean (Bank 1 Sensor 1) | Moderate |
| P2196 | O2 Sensor Signal Biased/Stuck Rich (Bank 1 Sensor 1) | Moderate |
| P2270 | O2 Sensor Signal Biased/Stuck Lean (Bank 1 Sensor 2) | Low |
| P2271 | O2 Sensor Signal Biased/Stuck Rich (Bank 1 Sensor 2) | Moderate |
| P2279 | Intake Air System Leak | Moderate |
| P2459 | Diesel Particulate Filter Regeneration Frequency | Moderate |
| P2463 | Diesel Particulate Filter Restriction - Soot Accumulation (Bank 1) | High |
| P2BAD | NOx Exceedance - Root Cause Unknown | High |
| U0073 | Control Module Communication Bus "A" Off | High |
| U0100 | Lost Communication With ECM/PCM "A" | High |
| U0101 | Lost Communication With TCM | High |
| U0121 | Lost Communication With Anti-Lock Brake System (ABS) Control Module | High |
| U0140 | Lost Communication With Body Control Module | Moderate |
| U0151 | Lost Communication With Restraints Control Module | High |
| U0155 | Lost Communication With Instrument Panel Cluster (IPC) Control Module | Moderate |
Seeing a light, not a code?
Check engine, traction control, ABS, oil pressure and 20+ other dashboard symbols explained, with what each color means and whether to keep driving: dashboard warning lights guide →
Frequently asked questions
What is an OBD-II code?
An OBD-II code (diagnostic trouble code, or DTC) is a five-character code the engine or transmission computer stores when a monitored sensor, circuit or system fails one of its self-tests. Every car and light truck sold in the US since the 1996 model year has OBD-II, and a serious enough fault also turns on the check engine light.
Are OBD-II codes the same for every car?
Generic codes (a 0 as the second character, such as P0420) have the same standard definition on every make under SAE J2012. Manufacturer-specific codes (such as P1xxx) are defined by each automaker, and even generic codes can have make-specific test conditions, so factory service information is the final word.
Does a code tell me which part to replace?
No. A code tells you which circuit or condition failed a check, not which part is bad. An oxygen-sensor code can be caused by wiring, an exhaust leak or a fuel problem; testing confirms the cause before parts are replaced.
Can I just clear the code?
You can clear codes with a scan tool, but if the fault is still there the code and the light come back. Clearing also resets the readiness monitors, so the car can fail an emissions inspection until it has been driven enough for the monitors to rerun. Write down the codes and freeze-frame data first.
What is the difference between pending, confirmed and permanent codes?
A pending code means a fault was seen once and the computer is waiting to see it again. A confirmed (stored) code has met the conditions to turn on the check engine light. On newer vehicles a permanent code cannot be erased with a scan tool; it clears itself only after the computer re-tests the system and it passes.
Is a flashing check engine light different from a steady one?
Yes. A steady light means a fault has been stored and should be diagnosed soon. A flashing light means a misfire severe enough to damage the catalytic converter is happening right now; reduce speed and load and stop driving as soon as you safely can.
Related research
Sources
- U.S. EPA — Vehicle Emissions Inspection and Maintenance (I/M) programs
- California Air Resources Board — On-Board Diagnostic (OBD) Program
- U.S. EPA, 40 CFR 86.1806-17 — Federal onboard diagnostics requirements for light-duty vehicles
- SAE J2012 — Diagnostic Trouble Code Definitions (standard code titles)
- ISO 15031-6 — Road vehicles: communication between vehicle and external equipment for emissions-related diagnostics, Part 6: Diagnostic trouble code definitions
General information, not a diagnosis of your vehicle. Confirm with factory service information for your year, make and model.