Werbebanner

OBD fault codes: the complete guide

When the engine warning light comes on, your vehicle is not failing silently, it is sending you a message. That message takes the form of an OBD fault code (On-Board Diagnostics), logged by the ECU as soon as a sensor or circuit moves outside its normal values.

Since 1996 in North America (OBD-II standard) and 2001 in Europe for petrol vehicles (2004 for diesel, EOBD standard), every vehicle shares a common language for reporting these faults. Understanding this language means taking back control of your vehicle's diagnostics.

How to decode a fault code

A fault code is always made up of five characters, a letter followed by four digits, such as P0301 or C0040. Each position tells you something about the nature and location of the problem.

P

1. System concerned

  • P = Powertrain (engine, injection, gearbox)
  • B = Body (airbags, air conditioning, seats)
  • C = Chassis (ABS, steering, suspension)
  • U = Network (CAN bus, communication between ECUs)
0

2. Type of code

  • 0 = Generic (identical on every vehicle)
  • 1 = Manufacturer (specific to the make)
  • 2 = Additional ranges (network/reserved)
  • 3 = Additional ranges (varies by system)

Remember: P0xxx codes are always generic. P1xxx codes are always manufacturer-specific.

3

3. Sub-system

For engine (P) codes:

  • 0 = Fuel/air metering (base)
  • 1 = Fuel/air metering (advanced)
  • 2 = Injection system
  • 3 = Ignition / misfires
  • 4 = Emissions control
  • 7 = Transmission (mechanical)
  • 8 = Transmission (electronic)
03

4-5. The precise fault

Example: P0303

  • P = Powertrain
  • 0 = Generic code
  • 3 = Ignition / misfire
  • 03 = Misfire detected on cylinder 3

Using fault codes well

🔍

A code points to a lead, not a part

P0171 - System too lean does not mean "replace the lambda sensor". It means "the mixture is too lean: look for an air leak, low fuel pressure, a fouled mass-airflow sensor, then the sensors".

⚙️

Always start with the basics

Before any in-depth diagnosis: check the fuses, loose connections, cracked hoses, fluid levels and any recent work that might have disturbed something.

📋

Note everything before clearing the codes

The right method: 1) Read the codes and the freeze-frame data, 2) Diagnose and repair, 3) Clear the codes and test on the road, 4) Re-scan to confirm the fault has gone.

🏭

Manufacturer codes: check the documentation

Faced with a P1xxx or similar code, avoid guesswork. These codes are defined by each manufacturer, their meaning varies from one make to another and they need reliable technical documentation.

Generic codes and manufacturer codes

P0xxx

Always generic

  • Defined by the OBD-II / EOBD standards
  • Identical meaning whatever the manufacturer
  • Examples: P0420 (catalyst efficiency), P0300 (random misfires)
  • Readable with any generic database
P1xxx

Always manufacturer-specific

  • Defined by each manufacturer independently
  • Cover faults specific to the make's architecture
  • Need dedicated documentation or a diagnostic tool
  • Do not interpret from generic lists
P2xxx, P3xxx

Mixed

  • Some codes are generic (OBD-standardised)
  • Other ranges are reserved for manufacturers
  • If the code is in the standard lists, use the generic definition
  • Otherwise, treat it as a manufacturer code