Diagnostic bay

Common BMW Faults: E90, F30, G20 — DTC Codes and Repair

Catalogue of common faults on BMW 3-Series (E90, F30, G20) and 5-Series (E60, F10, G30): VANOS, timing chain, HPFP, DPF, injectors, electronics.

AI-generated 4 min read

BMW is a brand with a predictable list of issues at 100–200k km. This article is a systematic guide of common faults for 3-Series (E90, F30, G20) and 5-Series (E60, F10, G30) with DTC codes and the OBD-II repair path.

BMW diagnostic specifics

BMW uses the extended UDS (Unified Diagnostic Services) protocol on top of CAN. A classic ELM327 reads base OBD-II PIDs and generic DTCs, but for “BMW-specific” codes (LDS, ISTA-style) you need a UDS-capable adapter: OBDLink MX+, Autel MP808, or K+DCAN cable.

For most diagnoses ELM327 is enough — 80% of common faults appear as standard P-codes.

Top 15 BMW DTC codes by frequency

N53/N54/N55 (petrol) engine

P0300P0308 — random or single-cylinder misfires The number-one problem. On N54 (2007–2011) and N55 (2010–2016) the cause is Bosch ignition coils. Past 60–80k km they weaken. Symptom: cold-start misfire + high consumption.

Fix: coil pack replacement (6 units) + plugs = ~$300. Tip: buy OEM Bosch 12-138-16-16, not “eco” AliExpress clones — they last twice as long.

P1004 / P1005 — VANOS (Variable Valve Timing) Stuck VANOS solenoid. Symptom: mid-range power loss, characteristic cold-start rattle (first 3–5 seconds). Fix: VANOS clean ($100–150) or replace ($400–600).

P0087 — Low fuel-rail pressure Top 3 on N54/N55. Cause: HPFP (High Pressure Fuel Pump) — sub-pump wear. Symptom: shudder, hard start, occasional limp mode. BMW often has a 10-year warranty on this pump — check.

Fix: HPFP replacement $60-200 (US $500-800). Must be re-coded via ISTA.

P0128 — Coolant temp below regulating temp Thermostat stuck open. Symptom: engine temp below 90 °C. Fix: thermostat replace ($150 with labour).

N47/N57 (diesel) engine

P1345 — Timing chain on diesel The nastiest BMW N47 (2007–2015) problem. Timing chain lives on the flywheel side and is nearly unreachable without pulling the transmission. Symptom: cold rattle > 5 seconds. Do not delay — chain break = new engine.

Fix: $1500–2500 with labour (transmission drop). BMW recommendation: monitor from 100k km.

P2453 — DPF differential pressure sensor Soots up. Fix: pipe clean or sensor replace ($150).

P0401 — EGR flow insufficient EGR clogs past 100k km of city driving. Fix: clean ($100) or replace ($400).

ABS and chassis

5DF0 / 5DF1 — DSC (Dynamic Stability Control) sensor fault Steering angle sensor out of calibration. Often after steering repairs or curb impact. Fix: calibration via ISTA or compatible scanner (free at a dealership).

C0034 — Wheel-speed sensor On E90 past 150k km fails due to connector corrosion. Fix: sensor swap ($40) + wiring solder.

Electronics and comfort

A0DA — Air suspension leak (E70 X5, F07 GT) Air-suspension leak. Fix: air-strut replace ($400–600 each) or convert to springs ($1200 kit).

B0089 — Blower motor regulator Heater blower resistor. Symptom: blower dead or only max speed. Fix: resistor swap $50–100.

BMW-specific lights

iDrive faults

Not read by standard ELM327 — need BimmerCode, Carly or a service scanner.

iDrive dashboard faults

All faults are auto-displayed on the iDrive screen under “Vehicle Status”. You do not need an OBD adapter to see the list.

Model-specific typical faults

BMW 3-Series E90 (2005–2012)

  • N54 3.0 twin-turbo: HPFP, coils, Piezo injectors → P0087, P0300+, P0087
  • N46 2.0: VANOS, timing chain → P1004, P0016
  • Rear multi-link: worn joints past 100k km

BMW 3-Series F30 (2011–2019)

  • N20 2.0 turbo: timing chain, VANOS → P0016, P1004
  • B47 2.0 diesel: EGR, DPF, injectors → P0401, P2453
  • ZF 8HP automatic: mechatronics past 100k km

BMW 5-Series E60 (2003–2010)

  • M54, N52: VANOS, VVT solenoids → P1004, P1005
  • N53 (SULEV, Europe): NOx sensors, lambda → P2200–P2270
  • GM 6HP automatic: mechatronics

BMW 5-Series F10 (2009–2017)

  • N63 4.4 V8: oil under valve covers → P0507
  • HPFP on N54/N55 → P0087
  • VANOS retainer → P1004

How to diagnose BMW via the app

  1. Download Car Diagnostics from Google Play
  2. Connect an ELM327 v1.5 (Bluetooth Classic SPP) — BMW supports CAN 500 kbit/s and K-line on older models
  3. Read standard DTCs — engine, ABS, SRS, CAN network
  4. Watch live parameters — MAF, MAP, fuel pressure, temperatures — all standard
  5. For extended BMW functions (coding, adaptation) — you need a K+DCAN cable or BimmerLink/BimmerCode apps

Summary: BMW is a brand with predictable “childhood diseases”. Knowing the model and mileage, you can expect specific issues: N54 — HPFP, N47 diesel — timing chain, VANOS on all petrols. 70% of faults close with a standard $10 OBD-II adapter.

Ready to diagnose your BMW? Download Car Diagnostics — fault database with English explanations.