Getting started

Generic and manufacturer-specific codes: P0, P1, P2, P3, B, C and U

How to tell whether a code means the same on every make or depends on the manufacturer, and what to do when your scanner shows a manufacturer-specific code.

2 min read Updated November 14, 2026 Reviewed by Renzo Chacca

Guide contents

In short

  • The second character decides: 0 and 2 are generic, 1 is manufacturer-specific (in P codes).
  • A generic code means the same on every make, but its most common cause still varies by engine.
  • The two-character suffix (failure type) narrows the diagnosis a lot.
  • For manufacturer codes, use a scan tool that knows the make and the factory documentation.

The SAE J2012 standard and its equivalent ISO 15031-6 split diagnostic trouble codes into blocks. Some have a fixed meaning on every vehicle and others are defined by each manufacturer. Telling them apart avoids the most common mistake when looking up a code: reading another make's explanation and replacing a part that has nothing to do with it.

The second character decides

RangeTypeWhat it means in practice
P0xxxGenericSame meaning on every make. Most engine codes are in this range.
P1xxxManufacturerThe meaning changes between makes. P1135 on a Toyota is not the same as on a Ford.
P2xxxGenericAn extension of the P0 codes once the numbers ran out. Same meaning on every make.
P3000 to P3399ManufacturerReserved for each make.
P3400 to P3999GenericFor example, cylinder deactivation.
B0, C0, U0GenericBody, chassis and network codes with a common meaning.
B1, B2, C1, C2, U1, U2ManufacturerThey depend on the make and sometimes on the model.
B3, C3, U3ReservedReserved by the standard for future use.

Why a generic code still varies between makes

P0171 means the same on any vehicle: a lean mixture on bank 1. But the most common cause changes from one engine to another. On one engine it may typically be a dirty mass airflow sensor and on another an intake gasket that hardens with age. That is why the code pages on this site include make-specific notes when there are known common failures, and you can also browse them from the makes section.

The failure type at the end of the code

Modern scan tools sometimes show a code with two extra characters, for example U0100-00 or C1234-1C. That suffix, called the failure type, specifies what was detected: an open circuit, a short to ground, a signal out of range or an implausible signal. If your scan tool shows it, write it down: it narrows the diagnosis a lot.

What to do with a manufacturer-specific code

  1. Confirm the make, model, year and engine. With manufacturer codes, the same number can mean different things even between engines from the same make.
  2. Read it with a scan tool that knows the make. Generic readers sometimes show the number but not the description, or show the wrong description.
  3. Check the manufacturer's documentation or a technical service bulletin. They are the reliable source for these codes.
  4. Look for generic codes that come with it. They often appear together, and the generic code gives you a safe starting point.

Keep reading

All diagnostic guides