Check engine light code lookup
Type the code your scanner or parts store gave you (for example P0300 or P0420) to see what it means, how urgent it is, what usually causes it and what the fix typically costs. 150 of the most common codes are covered.
All codes
Fuel, air and variable valve timing (P00xx)
- P0010"A" Camshaft Position Actuator Circuit/Open (Bank 1)Check soon
- P0011"A" Camshaft Position - Timing Over-Advanced or System Performance (Bank 1)Check soon
- P0012"A" Camshaft Position - Timing Over-Retarded (Bank 1)Check soon
- P0013"B" Camshaft Position - Actuator Circuit/Open (Bank 1)Check soon
- P0014"B" Camshaft Position - Timing Over-Advanced or System Performance (Bank 1)Check soon
- P0016Crankshaft Position - Camshaft Position Correlation (Bank 1 Sensor A)Serious
- P0017Crankshaft Position - Camshaft Position Correlation (Bank 1 Sensor B)Serious
- P0018Crankshaft Position - Camshaft Position Correlation (Bank 2 Sensor A)Serious
- P0020"A" Camshaft Position Actuator Circuit/Open (Bank 2)Check soon
- P0021"A" Camshaft Position - Timing Over-Advanced or System Performance (Bank 2)Check soon
- P0030HO2S Heater Control Circuit (Bank 1 Sensor 1)Not urgent
- P0031HO2S Heater Control Circuit Low (Bank 1 Sensor 1)Not urgent
- P0037HO2S Heater Control Circuit Low (Bank 1 Sensor 2)Not urgent
- P0087Fuel Rail/System Pressure - Too LowSerious
Fuel and air metering (P01xx)
- P0100Mass or Volume Air Flow "A" CircuitCheck soon
- P0101Mass or Volume Air Flow "A" Circuit Range/PerformanceCheck soon
- P0102Mass or Volume Air Flow "A" Circuit LowCheck soon
- P0103Mass or Volume Air Flow "A" Circuit HighCheck soon
- P0106Manifold Absolute Pressure/Barometric Pressure Circuit Range/PerformanceCheck soon
- P0107Manifold Absolute Pressure/Barometric Pressure Circuit LowCheck soon
- P0108Manifold Absolute Pressure/Barometric Pressure Circuit HighCheck soon
- P0112Intake Air Temperature Sensor 1 Circuit LowNot urgent
- P0113Intake Air Temperature Sensor 1 Circuit HighNot urgent
- P0115Engine Coolant Temperature Sensor 1 CircuitCheck soon
- P0116Engine Coolant Temperature Sensor 1 Circuit Range/PerformanceCheck soon
- P0117Engine Coolant Temperature Sensor 1 Circuit LowCheck soon
- P0118Engine Coolant Temperature Sensor 1 Circuit HighCheck soon
- P0120Throttle/Pedal Position Sensor/Switch "A" CircuitSerious
- P0121Throttle/Pedal Position Sensor/Switch "A" Circuit Range/PerformanceSerious
- P0122Throttle/Pedal Position Sensor/Switch "A" Circuit LowSerious
- P0123Throttle/Pedal Position Sensor/Switch "A" Circuit HighSerious
- P0125Insufficient Coolant Temperature for Closed Loop Fuel ControlCheck soon
- P0128Coolant Thermostat (Coolant Temperature Below Thermostat Regulating Temperature)Not urgent
- P0130O2 Sensor Circuit (Bank 1 Sensor 1)Check soon
- P0131O2 Sensor Circuit Low Voltage (Bank 1 Sensor 1)Check soon
- P0133O2 Sensor Circuit Slow Response (Bank 1 Sensor 1)Not urgent
- P0134O2 Sensor Circuit No Activity Detected (Bank 1 Sensor 1)Check soon
- P0135O2 Sensor Heater Circuit (Bank 1 Sensor 1)Not urgent
- P0136O2 Sensor Circuit (Bank 1 Sensor 2)Not urgent
- P0137O2 Sensor Circuit Low Voltage (Bank 1 Sensor 2)Not urgent
- P0138O2 Sensor Circuit High Voltage (Bank 1 Sensor 2)Not urgent
- P0140O2 Sensor Circuit No Activity Detected (Bank 1 Sensor 2)Not urgent
- P0141O2 Sensor Heater Circuit (Bank 1 Sensor 2)Not urgent
- P0150O2 Sensor Circuit (Bank 2 Sensor 1)Check soon
- P0151O2 Sensor Circuit Low Voltage (Bank 2 Sensor 1)Check soon
- P0155O2 Sensor Heater Circuit (Bank 2 Sensor 1)Not urgent
- P0157O2 Sensor Circuit Low Voltage (Bank 2 Sensor 2)Not urgent
- P0161O2 Sensor Heater Circuit (Bank 2 Sensor 2)Not urgent
- P0171System Too Lean (Bank 1)Check soon
- P0172System Too Rich (Bank 1)Check soon
- P0174System Too Lean (Bank 2)Check soon
- P0175System Too Rich (Bank 2)Check soon
- P0191Fuel Rail Pressure Sensor "A" Circuit Range/PerformanceSerious
Fuel injectors and turbo (P02xx)
- P0200Injector Circuit/OpenSerious
- P0201Injector Circuit/Open - Cylinder 1Serious
- P0202Injector Circuit/Open - Cylinder 2Serious
- P0203Injector Circuit/Open - Cylinder 3Serious
- P0204Injector Circuit/Open - Cylinder 4Serious
- P0230Fuel Pump Primary CircuitSerious
- P0234Turbocharger/Supercharger "A" Overboost ConditionSerious
- P0299Turbocharger/Supercharger "A" Underboost ConditionCheck soon
Ignition and misfires (P03xx)
- P0300Random/Multiple Cylinder Misfire DetectedSerious
- P0301Cylinder 1 Misfire DetectedSerious
- P0302Cylinder 2 Misfire DetectedSerious
- P0303Cylinder 3 Misfire DetectedSerious
- P0304Cylinder 4 Misfire DetectedSerious
- P0305Cylinder 5 Misfire DetectedSerious
- P0306Cylinder 6 Misfire DetectedSerious
- P0307Cylinder 7 Misfire DetectedSerious
- P0308Cylinder 8 Misfire DetectedSerious
- P0325Knock Sensor 1 Circuit (Bank 1 or Single Sensor)Check soon
- P0327Knock Sensor 1 Circuit Low (Bank 1 or Single Sensor)Check soon
- P0330Knock Sensor 2 Circuit (Bank 2)Check soon
- P0335Crankshaft Position Sensor "A" CircuitSerious
- P0336Crankshaft Position Sensor "A" Circuit Range/PerformanceSerious
- P0340Camshaft Position Sensor "A" Circuit (Bank 1 or Single Sensor)Serious
- P0341Camshaft Position Sensor "A" Circuit Range/Performance (Bank 1 or Single Sensor)Serious
- P0345Camshaft Position Sensor "A" Circuit (Bank 2)Serious
- P0351Ignition Coil "A" Primary/Secondary CircuitSerious
- P0352Ignition Coil "B" Primary/Secondary CircuitSerious
Emissions controls (P04xx)
- P0400Exhaust Gas Recirculation "A" FlowCheck soon
- P0401Exhaust Gas Recirculation "A" Flow Insufficient DetectedCheck soon
- P0402Exhaust Gas Recirculation "A" Flow Excessive DetectedSerious
- P0403Exhaust Gas Recirculation "A" Control CircuitCheck soon
- P0404Exhaust Gas Recirculation "A" Control Circuit Range/PerformanceCheck soon
- P0410Secondary Air Injection SystemNot urgent
- P0411Secondary Air Injection System Incorrect Flow DetectedNot urgent
- P0420Catalyst System Efficiency Below Threshold (Bank 1)Check soon
- P0430Catalyst System Efficiency Below Threshold (Bank 2)Check soon
- P0440Evaporative Emission SystemNot urgent
- P0441Evaporative Emission System Incorrect Purge FlowNot urgent
- P0442Evaporative Emission System Leak Detected (small leak)Not urgent
- P0443Evaporative Emission System Purge Control Valve CircuitNot urgent
- P0446Evaporative Emission System Vent Control CircuitNot urgent
- P0449Evaporative Emission System Vent Valve/Solenoid CircuitNot urgent
- P0451Evaporative Emission System Pressure Sensor/Switch Range/PerformanceNot urgent
- P0452Evaporative Emission System Pressure Sensor/Switch LowNot urgent
- P0453Evaporative Emission System Pressure Sensor/Switch HighNot urgent
- P0455Evaporative Emission System Leak Detected (large leak)Not urgent
- P0456Evaporative Emission System Leak Detected (very small leak)Not urgent
- P0457Evaporative Emission System Leak Detected (fuel cap loose/off)Not urgent
- P0461Fuel Level Sensor "A" Circuit Range/PerformanceNot urgent
- P0480Fan 1 Control CircuitSerious
- P0496Evaporative Emission System High Purge FlowCheck soon
Speed, idle and sensors (P05xx)
- P0500Vehicle Speed Sensor "A"Check soon
- P0505Idle Air Control SystemCheck soon
- P0506Idle Air Control System RPM Lower Than ExpectedCheck soon
- P0507Idle Air Control System RPM Higher Than ExpectedCheck soon
- P0520Engine Oil Pressure Sensor/Switch CircuitSerious
- P0521Engine Oil Pressure Sensor/Switch Range/PerformanceSerious
- P0562System Voltage LowSerious
- P0563System Voltage HighCheck soon
Engine computer and outputs (P06xx)
- P0601Internal Control Module Memory Check Sum ErrorSerious
- P0603Internal Control Module Keep Alive Memory (KAM) ErrorCheck soon
- P0604Internal Control Module Random Access Memory (RAM) ErrorSerious
- P0606Control Module ProcessorSerious
- P0627Fuel Pump "A" Control Circuit/OpenSerious
Transmission (P07xx)
- P0700Transmission Control System (MIL Request)Serious
- P0705Transmission Range Sensor "A" Circuit (PRNDL Input)Serious
- P0711Transmission Fluid Temperature Sensor "A" Circuit Range/PerformanceCheck soon
- P0715Input/Turbine Speed Sensor "A" CircuitSerious
- P0720Output Shaft Speed Sensor CircuitSerious
- P0730Incorrect Gear RatioSerious
- P0731Gear 1 Incorrect RatioSerious
- P0732Gear 2 Incorrect RatioSerious
- P0733Gear 3 Incorrect RatioSerious
- P0740Torque Converter Clutch Circuit/OpenCheck soon
- P0741Torque Converter Clutch Circuit Performance/Stuck OffCheck soon
- P0750Shift Solenoid "A"Serious
- P0755Shift Solenoid "B"Serious
- P0760Shift Solenoid "C"Serious
Transmission (P08xx)
Newer powertrain codes (P2xxx)
- P2096Post Catalyst Fuel Trim System Too Lean (Bank 1)Check soon
- P2097Post Catalyst Fuel Trim System Too Rich (Bank 1)Check soon
- P2101Throttle Actuator "A" Control Motor Circuit Range/PerformanceSerious
- P2119Throttle Actuator "A" Control Throttle Body Range/PerformanceSerious
- P2135Throttle/Pedal Position Sensor/Switch "A"/"B" Voltage CorrelationSerious
- P2138Throttle/Pedal Position Sensor/Switch "D"/"E" Voltage CorrelationSerious
- P2187System Too Lean at Idle (Bank 1)Check soon
- P2188System Too Rich at Idle (Bank 1)Check soon
- P2195O2 Sensor Signal Biased/Stuck Lean (Bank 1 Sensor 1)Check soon
- P2270O2 Sensor Signal Biased/Stuck Lean (Bank 1 Sensor 2)Not urgent
- P2271O2 Sensor Signal Biased/Stuck Rich (Bank 1 Sensor 2)Not urgent
- P2A00O2 Sensor Circuit Range/Performance (Bank 1 Sensor 1)Check soon
Network and communication (U codes)
- U0073Control Module Communication Bus "A" OffSerious
- U0100Lost Communication With ECM/PCM "A"Serious
- U0101Lost Communication With TCMSerious
- U0121Lost Communication With Anti-Lock Brake System (ABS) Control ModuleSerious
- U0140Lost Communication With Body Control ModuleCheck soon
- U0155Lost Communication With Instrument Panel Cluster (IPC) Control ModuleCheck soon
How check engine light codes work
Every car and light truck sold in the US since the 1996 model year has an OBD-II computer system that watches the engine, transmission and emissions parts. When it finds a problem it stores a five character trouble code and turns on the check engine light. The code tells you which system the computer is unhappy with and roughly what it saw. It does not tell you which part to buy, so treat it as the starting point for a diagnosis, not the answer.
How to read a code like P0301
- P (System letter): Which part of the vehicle the code belongs to. P is powertrain (engine and transmission), B is body, C is chassis and U is network.
- 0 (Code type): 0 means a generic code defined by SAE that means the same thing on every OBD-II vehicle. 1 means a manufacturer specific code that only that automaker defines.
- 3 (Subsystem): On older P0 codes this digit points to the area involved. 3 is ignition system or misfire.
- 01 (Specific fault): The exact problem. Here 01 means cylinder 1, so P0301 is a cylinder 1 misfire.
What the first letter means
- P: Powertrain. Engine, transmission and related drivetrain parts, including fuel, ignition, emissions controls and the engine computer. This is the largest group and the codes most people see.
- B: Body. Systems mostly inside the passenger compartment, such as airbags, seat belts, power seats, lighting and comfort features.
- C: Chassis. Systems mostly outside the passenger compartment, such as brakes and ABS, steering and suspension.
- U: Network and vehicle integration. Communication between the computers in the car. U codes usually mean one module stopped hearing from another over the vehicle network.
Generic vs manufacturer codes
- P0, B0, C0, U0: Generic (global) codes defined by SAE. The same code means the same thing on any OBD-II vehicle.
- P1, B1, C1, U1: Manufacturer specific (enhanced) codes. Look these up for your exact make, because the same number can mean different things on different brands.
- P2: Generic powertrain codes. SAE added the P2 range when the P0 numbers filled up, so codes like P2096, P2135 and P2187 work the same on every brand.
- B2, C2, U2: Manufacturer controlled body, chassis and network codes.
- P3, U3: Mostly manufacturer controlled ranges.
- B3, C3: Reserved for future use.
Steady, flashing or off?
- Steady light: The computer has confirmed a fault. Most steady lights are not emergencies, but get the code read soon so a small problem does not grow.
- Flashing light: Usually a severe misfire. RepairPal explains the light flashes when misfires are bad enough to damage the catalytic converter. Ease off and stop driving as soon as it is safe.
- Light off but code stored: A pending or history code. It has been seen but not confirmed, or the problem went away. It is still useful information for a diagnosis.
Tips before you pay for a repair
- Write down every code, not just the first one. Several codes together often point to one shared cause.
- Note the freeze frame data if your scanner shows it. It records engine speed, load and temperature at the moment the code set.
- Fix misfire and fuel trim codes before replacing an expensive catalytic converter, since they are a common reason converters fail.
- Clearing a code turns the light off but does not fix anything, and it erases data the shop could have used.
- Many auto parts stores will read codes for free, and a basic OBD-II reader plugs into the port under the dashboard within reach of the driver.
Sources
- Kelley Blue Book: OBD-II codes explained
- Wikipedia: On-board diagnostics (OBD-II history, code letters and P0 subsystem groups)
- OBD Auto Doctor: Diagnostic trouble codes explained (generic vs manufacturer ranges, SAE J2012 2016 revision)
- US EPA: OBD required on all 1996 and newer passenger vehicles
- RepairPal: P0300 misfire monitor and flashing check engine light
- RepairPal: OBD-II trouble code chart