BMW E90 3-Series DME Engine Control Module Faults Diagnosis
The DME (Digital Motor Electronics) on the BMW E90 3-Series is the brain of the entire engine management system, responsible for fuel injection timing, ignition, variable valve control and a long list of sensor inputs that keep the engine running correctly. When it starts to fail, the symptoms can be subtle at first — an occasional misfire, a stubborn cold-start issue — but they escalate quickly and diagnosis without proper equipment is frustrating.
Quick Answer
The BMW E90 DME is a Bosch MSD80, MSD81 or MSD85 unit depending on the engine variant. Common failure modes include internal processor faults causing random misfires, water ingress through the battery tray leading to corrosion on the DME connector, and flash-memory corruption after a failed software update. A failing DME will typically throw codes in the 29xx and 2Axx range alongside engine-specific misfire and sensor codes.
Which E90 Variants Are Affected?
The E90 platform ran from 2005 to 2012 and covers more than just the saloon body. If you are working on any of the following, the DME architecture is shared and the failure patterns are identical:
- E90 — 3-Series Saloon (2005–2011)
- E91 — 3-Series Touring estate (2005–2012)
- E92 — 3-Series Coupe (2006–2013)
- E93 — 3-Series Convertible (2007–2013)
The most problematic engine/DME combinations in workshops are the N46B20 paired with MSD80, the N52B30 with MSD80, and the turbocharged N54B30 with MSD85. The N47 diesel uses a separate Bosch EDC17 unit which has its own failure set — that is a different article. For comparison, see BMW E90 3-Series DME Engine Control Module Faults and Repair.
Common Symptoms of a Failing E90 DME
No two failing DMEs behave exactly the same, but after seeing enough of them on the bench you start to recognise the patterns. The most consistent complaints from owners and workshops are:
- Engine cranks but will not start — often after sitting overnight in cold weather
- Random misfires on one or multiple cylinders with no obvious ignition or injector cause
- Intermittent stalling at idle, particularly when the engine is warm
- VANOS and Valvetronic errors stored even after solenoid replacement
- EWS/CAS immobilizer communication failure — car cranks but fuel is cut
- Throttle response dropping out under load, sometimes accompanied by a yellow engine warning lamp
- Unexplained battery drain traced back to the DME remaining partially active
One pattern that catches people out: the car drives fine for weeks, then on a cold morning it refuses to start. They replace the battery, maybe the CAS module. Still the same fault. The DME had been masking an internal memory fault until temperatures dropped enough to make it permanent. That is a classic MSD80 behaviour.
Common Fault Codes
These are the codes most frequently stored in the DME fault memory on E90 models with a failing or corrupted control unit:
| Fault Code | Description |
|---|---|
| 29D0 | DME: Internal control unit fault — processor communication error |
| 29D6 | DME: Flash memory checksum fault |
| 2A82 | VANOS intake: Regulation deviation — often DME output stage fault |
| 2A87 | VANOS exhaust: Regulation deviation |
| 2AAF | Valvetronic: Motor position sensor — DME internal signal fault |
| 2774 | EWS/CAS: Communication fault — DME cannot authenticate immobilizer |
| 2B30 | Cylinder 1 misfire — multiple cylinders if DME output stage is failing |
| 2F00 | DME: Voltage supply fault at terminal 30 |
Finding 29D0 or 29D6 alongside misfire codes is almost conclusive. If only 2774 is stored, always check wiring and CAS first before condemning the DME — but if the CAS tests clean, the DME is next.
Why Does the E90 DME Fail?
Water is the number one cause. The battery tray on the E90 sits directly above a drainage channel that regularly blocks with leaf debris. When it overflows, water tracks along the wiring loom and into the DME connector which sits in the engine bay on the right side of the bulkhead. It does not take much — even condensation penetrating the connector seal over years is enough to corrode the pins and cause intermittent ground and signal faults.
The second cause is failed software flashing. Dealerships and independent shops have occasionally left E90 DMEs in a partially programmed state after a power interruption during an update. The unit will power on but the application layer is corrupted. This is recoverable with specialist equipment but many workshops simply fit a replacement. A related diagnostic guide is BMW E90 3-Series CAS Module Failure: Symptoms and Repair Guide.
Internal solder joint failure on the power stage board is the third cause, typically on higher-mileage units over 150,000 km. The N54 engine runs higher injection pressures and the MSD85 DME works harder as a result — thermal cycling eventually cracks solder joints on the main processor board.
OEM Part Numbers
Always match the part number from the original unit label before ordering. The DME must match the engine code, gearbox type and emission standard. These are the most common OEM references:
| OEM Part Number | Application |
|---|---|
| 7 562 216 | N46B20B — MSD80 — E90 318i/320i (2005–2007) |
| 7 597 306 | N52B25A — MSD80 — E90 325i (2005–2007) |
| 7 599 218 | N52B30A — MSD80 — E90 330i (2006–2008) |
| 7 601 453 | N54B30A — MSD85 — E90 335i (2006–2010) |
| 7 638 773 | N52B30O0 — MSD81 — E90 330i LCI (2008–2011) |
| 7 647 048 | N54B30O0 — MSD85 — E90/E92 335i LCI (2010–2012) |
A tested used OEM unit with a matching part number is a practical option here. New DMEs from BMW are expensive and still require dealer coding and CAS synchronisation regardless, so a genuine tested unit sourced from a known-good donor car offers good value when properly matched and programmed.
Diagnostic Steps Before Replacement
Do not replace the DME on fault codes alone. Work through this sequence first:
- Check battery voltage — below 11.5V at rest causes false DME faults on E90s. Always test the battery and charging system before anything else.
- Inspect the DME connector for pin corrosion and water staining. Remove it, dry it, treat with contact cleaner and reseat.
- Clear fault codes and road test. If 29D0 or 29D6 return immediately, the unit is internally faulty.
- Verify CAS communication with ISTA or equivalent — code 2774 with a clean CAS usually points to the DME side.
- Check for software version — a known-good workshop can attempt a reflash before condemning the hardware.
Frequently Asked Questions
Can I fit a used DME from another E90 without reprogramming?
No. The DME must be synchronised with the vehicle’s CAS module to allow the immobilizer to release fuel. A used DME from a donor car will crank the engine but will not allow it to start until it is properly coded and the CAS/DME ISN is aligned. This requires ISTA+ or an authorised programming tool.
What is the difference between MSD80 and MSD85?
MSD80 is used on naturally aspirated petrol engines in the E90 family — the N46, N52 and N53. MSD85 is fitted to the turbocharged N54 and handles the additional demands of high-pressure direct injection and twin-turbo boost control. They are not interchangeable and the part numbers differ significantly. For additional context, read BMW E90 3-Series ABS Control Module Failure: Symptoms and Repair.
How much does an E90 DME replacement cost at a dealership?
A new OEM DME unit from BMW typically costs between €800 and €1,400 depending on the engine variant, before labour and programming fees. A tested used OEM unit from a reputable supplier like GiantParts.eu with part-number matching and worldwide shipping offers a realistic alternative at a fraction of that cost, while still being a genuine Bosch unit.
Will a bad DME always throw a warning light?
Not always, especially early in the failure cycle. Some internal processor faults on the MSD80 cause intermittent no-start conditions or misfires without storing a persistent code — they appear as pending faults only. This is why a full fault code read with a proper BMW-compatible tool rather than a generic OBD reader is essential.
Is the E90 DME repairable or should it be replaced?
It depends on the fault. Pin corrosion and connector damage are repairable. Flash memory corruption can sometimes be recovered by a specialist with bench programming equipment. Cracked solder joints on the processor board can be reflowed. However, internal processor failure — indicated by persistent 29D0 — is rarely economically repairable and replacement with a tested used OEM unit is the practical route.
Final Thoughts
The E90 DME is a reliable unit in normal conditions, but it is not indestructible. Water ingress and electrical stress are the main enemies. If the battery tray drain on your E90 has never been cleaned out, do it now before it becomes a much more expensive job. For workshops sourcing replacement units, part-number matching is non-negotiable — fitting the wrong variant wastes time and creates new problems.
Find tested OEM electronic parts and modules at:
https://giantparts.eu/
