What is the difference between P, B, C, and U codes?

Updated October 2026 · How we answer

Short answerP codes are powertrain (engine, transmission), B codes are body (airbags, windows), C codes are chassis (brakes, suspension), and U codes are network (communication between modules). The letter tells you which system the fault is in.

The four code families

OBD-II codes start with a letter that indicates the vehicle system. P = Powertrain, covering engine, transmission, and emissions controls. B = Body, covering airbags, seat belts, power windows, and climate control. C = Chassis, covering brakes, suspension, steering, and ABS. U = Network, covering communication buses like CAN, and module-to-module data transfer.

The letter is followed by four digits. The first digit (0 or 1) tells if it's a generic code (same across all makes) or manufacturer-specific. The second digit narrows the subsystem. For example, P0301 is a generic powertrain misfire on cylinder 1, while B1234 might be a body code specific to one brand.

Why the distinction matters

Knowing the letter helps you know where to look. A P code means you'll be checking engine sensors, fuel delivery, or transmission solenoids. A B code might send you to the airbag system or a window motor. A C code points to brakes or suspension. A U code means modules aren't talking—often due to a wiring issue or a failed control module.

Not all scanners can read B, C, and U codes. Many inexpensive code readers only access powertrain codes. To read body, chassis, and network codes, you often need a more advanced scan tool or a professional-grade one. Some cars also require specific software to access certain modules.

  • P = Powertrain (engine, transmission, emissions)
  • B = Body (airbags, windows, lights, climate)
  • C = Chassis (brakes, suspension, steering)
  • U = Network (communication between modules)
  • Generic codes start with 0; manufacturer-specific start with 1.
  • Cheap scanners may only read P codes; advanced tools read all.

Common mistakes

  • Thinking all codes are engine-related—B, C, and U codes cover other systems.
  • Assuming a U code means a dead battery; it often indicates a wiring or module fault.
  • Using a basic scanner that can't read B, C, or U codes and missing the real issue.
From our shopsTitan Case: Premium MagSafe iPhone cases with a precision fit.