OBD-II trouble codes
The standard codes a scan tool reads when the check engine light comes on, and what each one names.
Test yourself: OBD-II trouble codes quiz
Catalytic converter 2 symbols
Misfire 7 symbols
Fuel and air 14 symbols
- P0171: System too lean (bank 1)
- P0174: System too lean (bank 2)
- P0172: System too rich (bank 1)
- P0175: System too rich (bank 2)
- P0101: Mass or volume air flow circuit range/performance
- P0102: Mass or volume air flow circuit low input
- P0106: Manifold absolute pressure/barometric pressure circuit range/performance
- P0113: Intake air temperature sensor 1 circuit high
- P0087: Fuel rail/system pressure too low
- P0299: Turbocharger/supercharger underboost
- P2096: Post catalyst fuel trim system too lean (bank 1)
- P2097: Post catalyst fuel trim system too rich (bank 1)
- P0191: Fuel rail pressure sensor circuit range/performance
- P0463: Fuel level sensor "A" circuit high
Evaporative emissions 13 symbols
- P0456: Evaporative emission system leak detected (very small leak)
- P0442: Evaporative emission system leak detected (small leak)
- P0455: Evaporative emission system leak detected (large leak)
- P0440: Evaporative emission system
- P0441: Evaporative emission system incorrect purge flow
- P0443: Evaporative emission system purge control valve circuit
- P0446: Evaporative emission system vent control circuit
- P0449: Evaporative emission system vent valve/solenoid circuit
- P0496: Evaporative emission system high purge flow
- P0452: Evaporative emission system pressure sensor/switch low
- P0457: Evaporative emission system leak detected (fuel cap loose/off)
- P0451: Evaporative emission system pressure sensor/switch range/performance
- P0497: Evaporative emission system low purge flow
Oxygen sensors 12 symbols
- P0036: HO2S heater control circuit (bank 1 sensor 2)
- P0135: O2 sensor heater circuit (bank 1, sensor 1)
- P0141: O2 sensor heater circuit (bank 1, sensor 2)
- P0137: O2 sensor circuit low voltage (bank 1, sensor 2)
- P0138: O2 sensor circuit high voltage (bank 1, sensor 2)
- P0030: HO2S heater control circuit (bank 1, sensor 1)
- P0031: HO2S heater control circuit low (bank 1, sensor 1)
- P0037: HO2S heater control circuit low (bank 1, sensor 2)
- P0131: O2 sensor circuit low voltage (bank 1, sensor 1)
- P0136: O2 sensor circuit (bank 1, sensor 2)
- P0139: O2 sensor circuit slow response (bank 1, sensor 2)
- P0157: O2 sensor circuit low voltage (bank 2, sensor 2)
Other engine systems 10 symbols
- P0128: Coolant thermostat (coolant temperature below thermostat regulating temperature)
- P0401: Exhaust gas recirculation flow insufficient detected
- P0507: Idle air control system RPM higher than expected
- P0521: Engine oil pressure sensor/switch range/performance
- P0562: System voltage low
- P0117: Engine coolant temperature circuit low
- P0118: Engine coolant temperature circuit high
- P0122: Throttle/pedal position sensor A circuit low input
- P0123: Throttle/pedal position sensor A circuit high input
- P0073: Ambient air temperature sensor circuit high
Camshaft, crankshaft and knock sensors 15 symbols
- P0011: "A" camshaft position timing over-advanced or system performance (bank 1)
- P0014: "B" camshaft position timing over-advanced or system performance (bank 1)
- P0016: Crankshaft position – camshaft position correlation (bank 1, sensor A)
- P0017: Crankshaft position – camshaft position correlation (bank 1, sensor B)
- P0335: Crankshaft position sensor A circuit
- P0340: Camshaft position sensor A circuit (bank 1 or single sensor)
- P0345: Camshaft position sensor A circuit (bank 2)
- P0325: Knock sensor 1 circuit
- P0010: "A" camshaft position actuator circuit (bank 1)
- P0013: "B" camshaft position actuator circuit (bank 1)
- P0332: Knock sensor 2 circuit low input (bank 2)
- P0012: "A" camshaft position timing over-retarded (bank 1)
- P0021: "A" camshaft position timing over-advanced or system performance (bank 2)
- P0341: Camshaft position sensor A circuit range/performance (bank 1 or single sensor)
- P0327: Knock sensor 1 circuit low input
Transmission 4 symbols
Ignition 3 symbols
About oBD-II trouble codes
An OBD-II trouble code is the five-character code a car's on-board diagnostic system stores when it finds a fault, usually as it lights the check engine light. The codes and their names are set by SAE J2012, so a code such as P0420 means the same thing on any car that uses the generic set.
How a code is built
SAE J2012 describes each code as a letter and a digit followed by three more digits. The letter gives the area of the car: B for body, C for chassis, P for powertrain (the engine and transmission) and U for the network that links the car's computers. After P, a 0 marks a code whose name is set by the standard, and a 1 a code whose meaning each manufacturer sets for itself; P2 codes are set by the standard too. A generic list of OBD-II codes sets out the P0 codes the same way.
Where the codes are read
The federal rule on on-board diagnostics requires the stored codes to be available through the car's standardized diagnostic connector, and access to them to be unrestricted: it may not need any code or device that only the manufacturer supplies.
Sources
- SAE J2012: Diagnostic Trouble Code Definitions (2002), SAE J2012, April 2002 (technically equivalent to ISO/DIS 15031-6), SAE International; published by Public.Resource.Org on the Internet Archive, § 5, Format structure
- Generic OBD-II Trouble Codes (scanned reference list), Internet Archive (item generic-and-honda-trouble-codes), Title page
- 40 CFR 86.1806-05, On-board diagnostics (2012 edition), 40 CFR 86.1806-05, US Government Publishing Office (Code of Federal Regulations), § 86.1806-05(h)
Researched, edited and approved by Rory Hansen before publishing. Last reviewed September 27, 2026. How we research
Related products on Amazon
As an Amazon Associate we earn from qualifying purchases made through these links. The pictures are our own drawings of the kind of product, not a particular one, and nothing here is a recommendation.