Cross-section

Codes by engine.

The most common BMW fault codes, grouped by engine family. Each engine has a typical fault-code fingerprint based on its known mechanical and electrical failure modes. Use this to narrow down what you’re looking at when a fault memory scan returns a familiar code on an unfamiliar engine.

10 enginesUpdated August 2026Observed patterns

Inline-4 engines

N20 / N26 — F-series 2.0L turbo (2011–2016)

The N20’s signature failures are timing-chain stretch (on high-mileage cars) and high-pressure fuel-pump issues on early production. Inline-4 misfire codes map directly to cylinder 1–4.

CodeWhy it appears
P0301Cylinder 1 misfire (coil, plug, injector)
P0302Cylinder 2 misfire
P0303Cylinder 3 misfire
P0304Cylinder 4 misfire
P0011Camshaft timing over-advanced — stretched timing chain
P0171System too lean — vacuum leak or tired MAF

B48 / B46 — F/G-series 2.0L turbo (2015+)

The B48 inherits the N20’s timing-chain wear pattern but is otherwise more reliable. Failure modes trend toward valve-cover oil seals and early-production B46 SULEV high-pressure fuel-pump issues.

CodeWhy it appears
P0301Cylinder 1 misfire
P0302Cylinder 2 misfire
P0303Cylinder 3 misfire
P0304Cylinder 4 misfire
P0011Camshaft timing over-advanced — chain stretch or VANOS
P0128Coolant temp below thermostat — stuck thermostat

Inline-6 engines

N52 — E9x/E60 2.5/3.0L NA (2004–2013)

Reliable engine, but the intake manifold flap motor and the oil-filter housing gasket are known failure points. Valve-cover gasket oil leaks (the valley pan area) are the most common ownership complaint.

CodeWhy it appears
P0301Cylinder 1 misfire
P0303Cylinder 3 misfire
P0305Cylinder 5 misfire
P0171System too lean — intake manifold gasket, vacuum leak
P0128Coolant temp below thermostat

N54 — E8x/E9x 3.0L twin-turbo (2006–2013)

The N54’s HPFP is the headline failure mode: 29E0/29E1/29E2 codes are the early indicator. Add the well-known injector-failure problem (high-pressure direct injection) and the result is a high rate of fuel-system codes. Boost codes (30FF) come from charge-pipe blow-off, which the N54 is famous for.

CodeWhy it appears
29E0Fuel injection rail, pressure sensor signal
29E1Fuel pressure sensor signal (low / implausible)
29E2Fuel pressure sensor signal (high)
2A82VANOS intake solenoid — clogged solenoid screen
30FFCharge-air pressure too low — charge-pipe blow-off
P0300Random/multiple misfire — coil or injector failure
P0301P0306Per-cylinder misfire codes (1–6)
P0171System too lean — vacuum leak on a tired engine

N55 — E9x/F-series 3.0L single twin-scroll turbo (2009–2017)

Replaced the N54 with a more reliable HPFP, but the N55 still has VANOS solenoid clogging and charge-pipe separation as common failures. On F-series N55 the early coil-pack failures produced a wave of per-cylinder misfire codes.

CodeWhy it appears
29E0Fuel injection rail, pressure sensor signal
2A82VANOS intake solenoid
30FFCharge-air pressure too low
120308B58-equivalent charging pressure code (later N55 firmware)
P0300P0306Per-cylinder misfire — coil or injector

B58 — F/G-series 3.0L turbo (2015+)

The current 3.0L turbo inline-6. More reliable than the N54/N55 but still direct-injection. The headline failure mode is the plastic-to-metal joint on the early charge pipe, which produces boost codes under load.

CodeWhy it appears
120308Charging pressure too low (B58-specific)
30FFCharge-air pressure too low — charge-pipe joint
2A82VANOS intake — clogging on higher-mileage cars
P0128Coolant temp below thermostat
P0301P0306Per-cylinder misfire

V8 engines

N62 — E60/E63/E65/E53/E70 4.0/4.4/4.8L NA (2001–2010)

The N62’s slow-coolant valley-pan oil-leak problem shows up as a low coolant level over time. The OBD-II P-codes are typical NA inline issues; the BMW-specific N62 valley-pan fault family is the headline maintenance item.

CodeWhy it appears
P0301P0308Per-cylinder misfire on any of the 8 cylinders
P0171System too lean (Bank 1)
P0174System too lean (Bank 2)
P0420Catalyst Bank 1
P0430Catalyst Bank 2
P0128Coolant temp below thermostat

Diesel

N57 — F-series 3.0L turbo diesel I6 (2008–2019)

The first diesel profile in the project. DPF state and EGR cooler behaviour are the unique diagnostic surface for the N57. Short-trip driving that prevents DPF regeneration produces the most common diesel-specific codes.

CodeWhy it appears
P0301P0306Per-cylinder misfire — injector failure on diesel
P0171System too lean — rare on diesel, indicates intake/EGR issue
U0100Lost communication with ECM — DDE bus issue

For DPF-specific codes (P2002, P2454, etc.) and EGR-specific codes (P0401, P0402), the DTC lookup tool surfaces them once they’re added to the catalog. Use /lookup.html for any code not listed here.

M variants

S55 — F80/F82/F87 M3/M4/M2 Competition 3.0L twin-turbo (2014–2021)

Built for track duty. The headline failure mode is the crank hub — a known problem across M3/M4 model years that throws cam-timing and crank-position codes. Rod-bearing failures on cold-driven cars produce metal-in-oil codes and low oil pressure warnings.

CodeWhy it appears
P0011Camshaft A timing over-advanced — crank hub or VANOS
P0014Camshaft B timing over-advanced — crank hub
30FFCharge-air pressure too low — charge-pipe blow-off under hard use
P0300P0306Per-cylinder misfire (S55 fires 1-6, V8 S65 fires 1-8)

S58 — G80/G82/F97/F98 M3/M4/X3M/X4M 3.0L twin-turbo (2019+)

M-tuned B58 architecture (not an N55 derivative). Crank-hub concerns similar to S55 but less common; VANOS solenoid clogging inherited from B58. Higher-mileage oil consumption on track-driven cars is the late-life pattern.

CodeWhy it appears
P0011Camshaft A timing over-advanced — VANOS or chain
2A82VANOS intake solenoid
120308Charging pressure too low (B58 inheritance)
P0301P0306Per-cylinder misfire
Observed patterns, not BMW specifications

The code/engine mappings above are derived from owner reports and the project’s community opinions. They describe what people actually see in the field, not what BMW’s diagnostic documentation prescribes. Use them to narrow your search, not as a parts-ordering shortcut. Always read the freeze frame, compare related codes, and inspect live data before changing parts.

Cross-section questions

What codes does an N54 typically throw?

29E0/29E1/29E2 (HPFP family), 2A82 (VANOS intake), 30FF (boost), and P0300-P0308 (per-cylinder misfire) when an injector or coil fails.

What’s different on a B58?

Inherits the VANOS and fuel-pressure patterns from the N55 but adds the charge-pipe boost-leak failure mode (30FF / 120308). Misfires are rarer because the B58’s HPFP is more reliable.

How are these mappings determined?

From community opinions, owner reports, and Beemuu’s verification reports. Observed-pattern guidance, not a BMW specification.

Read the codes your car is reporting.

Beemuu reads fault memory over K+DCAN or ENET/DoIP and saves it before you clear anything.

Download BeemuuBack to DTC index

Last updated: 2026-08-02 ยท Beemuu contributors