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.
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
P0300–P0308 — 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
- Download Car Diagnostics from Google Play
- Connect an ELM327 v1.5 (Bluetooth Classic SPP) — BMW supports CAN 500 kbit/s and K-line on older models
- Read standard DTCs — engine, ABS, SRS, CAN network
- Watch live parameters — MAF, MAP, fuel pressure, temperatures — all standard
- 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.