P1604 on 2005-2013 BMW 3 Series: Internal DME/ECU Failure Causes and Fixes
On a 2005-2013 BMW 3 Series, P1604 means there is an internal failure within the engine control unit (DME). This is not a generic starting problem. The most common fix is to repair the DME by replacing internal components like MOSFETs, or replacing the entire DME, which requires professional programming. This is often caused by a failing external component like an ignition coil or fuel injector.
- P1604 on a BMW is a critical code indicating an internal failure of the engine computer (DME).
- On the E9x 3-Series, especially the 335i with the N54 engine, this is commonly caused by a failed ignition coil or fuel injector destroying a MOSFET driver inside the Siemens MSD80 DME.
- Water damage from clogged cowl drains is another frequent cause of DME failure on this platform.
- Repair almost always involves either specialist micro-soldering on the DME board or a complete, programmed replacement of the unit. Simply replacing a fuse will not fix it.
- The root cause (e.g., the bad coil/injector) must be fixed, or the repaired/new DME will fail again immediately.
What's Unique About the 2005-2013 BMW 3 Series
The E9x generation 3 Series, particularly models with the N54 engine (like the 335i), is known for DME failures related to its ignition and injection systems. The Siemens MSD80 DME used in early N54 models is especially vulnerable. A common scenario is a failing ignition coil or fuel injector shorting out, which in turn damages the corresponding driver circuit (specifically a MOSFET transistor) inside the DME. This creates a chain reaction where a relatively minor external component failure leads to a critical internal ECU fault, setting the P1604 and often a 30BA/30BB code. Water intrusion into the DME housing, often due to clogged cowl drains, is also a known vulnerability on this platform that can corrode the circuit board and pins.
Generation note: The 2005-2013 range primarily covers the E90, E91, E92, and E93 generation (often collectively called E9x). However, the next generation, the F30 sedan, was introduced in 2012. While the DME architecture differs (e.g., N55 engines use MEVD172), an internal control module fault remains a critical issue for both generations. The specific failure mode of MOSFETs is most famous on the Siemens MSD80 DME in 2007-2010 N54 models. Later N54s received the more robust MSD81, and N52 engines used the MSV70 or MSV80, which can also fail but have different common failure points.
Symptoms You May Notice
- Engine cranks but does not start
- Complete loss of throttle response (car starts but won't accelerate)
- Engine starts and immediately stalls
- Engine runs very rough, as if on half its cylinders (limp mode)
- Multiple, seemingly unrelated fault codes appearing at once
- Check engine light is on (may be flashing)
- Inability to communicate with the DME using a scan tool
- Cooling fan running at maximum speed immediately after startup attempt
- Wipers or other electronics acting erratically on startup attempt
- Replacing the battery or fuel pump. While these can cause a no-start, P1604 on a BMW specifically points to an internal DME fault, not a general 'startability' issue as on other car brands.
Most Likely Causes
- Failed MOSFETs in the DME 🔴 High Probability The Siemens MSD80 DME in N54-powered 335i models is particularly susceptible. Voltage spikes from failing external components like fuel injectors or ignition coils can short the internal MOSFETs that control them.
How to confirm: This requires removing the DME, opening it, and testing the individual MOSFETs 🎬 Watch: How to test and replace failed DME MOSFETs on the circuit board with a multimeter in continuity or diode mode. Often accompanied by codes 30BA or 30BB. This is a task for an electronics specialist.
Typical fix: De-solder and replace the failed MOSFETs on the DME board. A common upgraded replacement part is the FDB14N30TM. The external component (e.g., bad ignition coil or injector) that caused the failure must also be replaced to prevent a repeat failure.
Est. part cost: $5-$30 for a set of MOSFETs, plus the cost of the failed external part (e.g., $50-$100 for an ignition coil). - Water Intrusion into DME Housing 🟡 Medium Probability The DME is located in a plastic electronics box in the engine bay. Clogged cowl drains or a degraded cover seal can allow water to leak in, corroding the DME board and connectors.
How to confirm: Open the electronics box and visually inspect the DME, its connectors, and the bottom of the box for any signs of moisture, white/green corrosion, or a water line.
Typical fix: If corrosion is minor, cleaning the board and pins with electronics cleaner may work. If the damage is severe, the DME will need to be sent for professional repair or be replaced. The source of the water leak (e.g., clogged drains) must be fixed.
Est. part cost: $10 for cleaner, or $300-$1500 for DME repair/replacement. - Internal DME Component Failure ⚪ Low Probability Electronic components can fail over time due to heat cycles, vibration, and age. The DME is located in the hot engine bay, which accelerates this process.
How to confirm: This is diagnosed by exclusion. If power and ground to the DME are good (checked at the main relay and fuses), there are no external shorts, and no signs of water damage, the unit itself is condemned.
Typical fix: The DME must be sent to a specialist for repair or be replaced entirely and programmed to the car.
Est. part cost: $300-$800 for a repair service, or $1000-$2000 for a new, programmed DME.
Rare But Worth Checking
- Power or Ground Supply Issue to DME: Always check the basics first. A blown fuse in the E-box or a faulty main DME relay (often a light blue color) can mimic a complete DME failure and is much cheaper to fix. A corroded main engine ground strap is also a known cause of erratic electrical issues.
- Failed DME Programming/Coding: If the error appeared immediately after a software flash or update, the programming may have failed, corrupting the DME's software. This can sometimes be fixed by re-flashing with appropriate tools like ISTA/P, but can also permanently brick the module.
Diagnosis Steps
- Scan for all fault codes in all modules. Pay close attention to codes like 30BA or 30BB, which are a smoking gun for MOSFET failure in N54 models.
- Check for communication with the DME. If the scan tool cannot connect, this strongly suggests a major DME power issue (check main relay/fuses) or a catastrophic internal failure.
- Inspect the main power and ground connections to the DME. In the engine bay E-box, check the large fuses and the main DME relay (typically blue). Check the main engine-to-chassis ground strap for corrosion or looseness.
- Open the electronics box in the engine bay and inspect the DME and its wiring harness for any signs of water intrusion, corrosion, or physical damage. Check if the cowl drains above the box 🎬 See how to find and fix common DME water leaks are clogged with leaves or debris.
- If codes 30BA/30BB are present, the next step is to remove the DME for bench testing of the injector driver MOSFETs. This is a specialized task.
- Crucially, if a failed MOSFET is found, the corresponding external part (ignition coil, injector) MUST be identified and replaced along with the DME repair to prevent immediate repeat failure. Many technicians recommend replacing all six coils or injectors as a precaution.
Parts You'll Likely Need
- Digital Motor Electronics (DME)
(OEM #12147594484 (Example for N52 MSV80), 12147583332 (Example for N54 MSD80))— This code indicates an internal failure of this module. It will either need to be repaired or replaced.
Trusted brands: Siemens (MSD80/MSV80), Bosch
OEM price range: $1200-$2000
Aftermarket price range: $250-$800 (for repair/cloning service) - Ignition Coil
(OEM #12138657273 (Bosch))— A failing ignition coil is a common cause of the DME failure, as it can short and damage the internal driver circuit. It's wise to replace all coils if one has caused this issue.
Trusted brands: Bosch, Delphi, Eldor
OEM price range: $60-$90 per coil
Aftermarket price range: $30-$50 per coil - Fuel Injector (Index 12)
(OEM #13538616079)— Similar to the ignition coil, a shorted fuel injector on N54 engines can damage the DME's internal circuitry. Index 12 is the latest, most reliable version.
Trusted brands: Bosch/BMW
OEM price range: $200-$350 per injector
Aftermarket price range: $150-$250 per injector - MOSFET Transistor
(OEM #FDB14N30TM)— For DIY or specialist repair of the DME board, these specific transistors are needed to replace the burned-out injector/ignition drivers.
Trusted brands: onsemi
OEM price range: N/A
Aftermarket price range: $2-$5 per unit
Related Codes That Often Appear With This One
- 30BA, 30BB — These are BMW-specific codes for 'DME digital motor electronics, internal failure' or 'Injectors 1, 2, 3 (or 4, 5, 6) or ignition, internal fault'. They directly point to the MOSFET failure on MSD80 DMEs.
- 29CC, 29CD, 29CE, etc. — Codes for misfires on specific cylinders often accompany P1604, as a failing coil or injector can be the root cause of the DME damage.
- A0B4 (CAS Engine Start Malfunction) — Communication errors with the CAS (Car Access System) are common when the DME is failing, not communicating, or has an internal sync issue.
Technical Service Bulletins (TSBs) & Recalls
- SI B12 09 12: While not for P1604 directly, this TSB addresses an issue on N55 engines where the engine may stall or idle erratically during low-speed maneuvers. The fix is a DME software update, highlighting that DME software can be a source of drivability problems and that updates are sometimes required.
Platform-Specific Known Issues
- Real-World Failure: 30BA Code after Track Day: A user on e90post.com reported their 2007 335i went into limp mode and stalled after a track session. The JB4 tuner read fault code 30BA, indicating a DME diode failure for injectors 1, 2, and 3. The owner planned to have their
Mechanic-Grade Diagnostic Values
- N54 Ignition Coil Primary Resistance — expected: ~0.50 Ohms. Failure: A significant deviation from this value or an open circuit (infinite resistance) indicates a failed coil. It's best to compare all six coils; a single outlier is suspect.
- MSD80 MOSFET Continuity Check — expected: Using a multimeter in continuity/diode mode, there should be NO continuity between the center leg (drain) and the outer legs (gate, source) of the MOSFET when the circuit is not powered.. Failure: If the multimeter beeps, indicating continuity between the center leg and an outer leg, the MOSFET has shorted internally and is bad.
- DME Power Supply at Connector — expected: With the key on, specific pins on the main DME connectors (e.g., X60001, X60002) should show battery voltage (approx. 12.6V).. Failure: No voltage at the main power supply pins points to a problem upstream, such as the main DME relay, a fuse, or wiring, rather than an internal DME failure.
Hidden / Shadow Codes Worth Checking
- 30BA: DME digital motor electronics, internal failure. This code specifically points to a fault in the driver circuits for injectors on Bank 1 (Cylinders 1-3 on a 6-cylinder engine). It is a 'smoking gun' for MOSFET failure in the MSD80 DME. (see via BMW-specific scan tools like ISTA, INPA, or advanced aftermarket scanners (e.g., Foxwell, Autel) and tuning platforms (e.g., MHD, JB4).)
- 30BB: DME digital motor electronics, internal failure. This code specifically points to a fault in the driver circuits for injectors on Bank 2 (Cylinders 4-6 on a 6-cylinder engine). It is also a primary indicator of MOSFET failure in the MSD80 DME. (see via BMW-specific scan tools like ISTA, INPA, or advanced aftermarket scanners (e.g., Foxwell, Autel) and tuning platforms (e.g., MHD, JB4).)
Scan Tool Commands That Help
- ISTA/P: Replace Control Unit (DME) — This service function is used when installing a NEW, virgin DME from BMW. It guides the technician through the process of programming the new module with the correct vehicle software and coding it with the vehicle order (VO) and immobilizer synchronization (ISN).
- ISTA/P: DME Programming/Encoding — After a new DME is installed, it must be programmed with the latest software (I-Level) and encoded to match the car's features. ISTA/P handles this process, but it will not program a used DME that already has a VIN and ISN from another car.
- Specialized Cloning Tools (e.g., KTAG, Autohex, CGDI): DME Cloning / ISN Read/Write — When using a second-hand DME, these tools are required to read the full software image (including the immobilizer data) from the original failed DME and write it to the replacement used DME. This makes the used DME a 'clone' of the original, allowing for a plug-and-play solution without needing dealer tools.
Wiring & Ground Locations
- X6454 — A ground distribution stud on the passenger side of the engine bay, near the firewall and the electronics box (E-box).. This is a critical grounding point for the DME. According to wiring diagrams, multiple DME ground wires terminate here. Corrosion or a loose connection at this stud can cause a no-communication or no-power situation for the DME, mimicking an internal failure.
- Main Engine Ground Strap — On the driver's side (LHD models), this braided copper strap connects from the engine block/motor mount area to the chassis frame rail.. This is the primary ground path for the entire engine. A corroded or broken strap can cause a host of severe electrical problems, including slow cranking, misfires, and erratic behavior from control modules like the DME, as they struggle to find a stable ground path.
- DME Connectors (X60001 - X60007) — Located on the DME module itself, inside the white plastic electronics box (E-box) in the engine bay, typically on the passenger side near the firewall.. These are the direct interface to the DME. Checking for power, ground, and CAN bus signals at these connector pins is the final step before condemning the DME. Water intrusion often corrodes these specific pins.
Real Owner Repair Stories
- Bimmerpost user (2007 BMW 335i (E92)) — Car experienced stuttering, misfire codes, and eventually a no-start condition with codes 30BB and P1604.
❌ Tried (didn't work) Initial diagnosis pointed towards injectors or coils, but the persistence of the 30BB code suggested a deeper issue.
✅ What actually fixed it The owner removed the MSD80 DME, opened it, and performed a continuity test on the six injector MOSFETs. The test revealed a shorted MOSFET for injector #5. The owner ordered replacement MOSFETs (FDB14N30TM) from an electronics supplier to de-solder the old ones and solder the new set in place, resolving the internal DME fault. - Bimmerpost user (2009 BMW 328xi (E90) N52) — Misfires in multiple cylinders, no throttle response, intermittent crank-no-start, and numerous fault codes. Water was found in the DME box.
❌ Tried (didn't work) Replacing all ignition coils and spark plugs., Replacing camshaft sensors., Cleaning VANOS solenoids and throttle body., Replacing crankshaft sensor.
✅ What actually fixed it The original DME had severe corrosion on the pins from water damage. The owner purchased a used DME (MSV80.1) from a junkyard and had it sent to a specialist service along with the original CAS module and key. The specialist cloned the original DME's information to the used one, making it plug-and-play. The car started and ran correctly after installing the cloned DME.
OEM Part Supersession History
Various (e.g., 12147583332)→Various (e.g., 12147640174)— The Siemens MSD80 DME, used in early N54 models (approx. 2007-2008), was prone to MOSFET failure. BMW superseded it with the Siemens MSD81, which has more robust internal components.
Heads up: While an MSD81 is a direct physical replacement for an MSD80, it is not plug-and-play. The vehicle's immobilizer system (CAS) must be synchronized with the new DME. A dealer can do this with a new MSD81 using ISTA/P. A used MSD81 requires specialized cloning tools to either transfer the original car's ISN to the used DME or clone the entire original DME.
Model Year Variations Within This Range
- 2007 - Mid-2008 (N54 Engine): These models were typically equipped with the Siemens MSD80 DME, which is highly susceptible to the MOSFET failure that causes P1604 and 30BA/30BB codes.
- Mid-2008 - 2010 (N54 Engine): These models received the upgraded Siemens MSD81 DME. While not immune to failure, it is significantly more robust and does not have the widespread MOSFET failure issue of the MSD80. An upgrade from a failed MSD80 to a used MSD81 is a common and recommended repair path.
- 2006-2013 (N52 Engine): Non-turbo 3-series models (e.g., 325i, 328i, 330i) use the MSV70 or MSV80 DME. While P1604 can still occur on these DMEs, the common failure mode is not the N54's specific MOSFET burnout. Failures on these are more often related to general component aging, software corruption, or water damage.
Diagnostic Flowchart
Other Known Issues on This Vehicle
Issues unrelated to this code that are worth knowing about as an owner of this generation:
- Electric Water Pump and Thermostat Failure 🔴 High — Very common, typically fails between 60,000 and 100,000 miles, often without warning.
- Oil Filter Housing Gasket (OFHG) Leak 🔴 High — Extremely common on N52, N54, and N55 engines. If left unfixed, the leaking oil can drip onto the serpentine belt, causing it to slip off and get ingested by the front main seal, leading to catastrophic engine damage.
- Valve Cover and Gasket Leak 🟠 Medium — Common issue due to the plastic valve cover warping from heat cycles and the gasket hardening over time.
- N54 High-Pressure Fuel Pump (HPFP) Failure 🔴 High → Shop Fuel Pump — A notorious issue on early N54 engines (2007-2010), causing long cranks, limp mode, and stalling. It led to a recall and extended warranty. (Ref: NHTSA Campaign ID: 10V446000 (Recall) and extended warranty.)
- N54 Turbo Wastegate Rattle 🟠 Medium — Very common on N54 engines. Wear in the wastegate actuator rod and linkage causes a metallic rattling sound, especially on deceleration. It doesn't typically cause turbo failure but is a significant annoyance.
- N54 Fuel Injector Failure 🔴 High → Shop Fuel Injector — Piezoelectric injectors on N54 engines are prone to failure, leading to misfires, rough idle, and smoking. This was also subject to an extended warranty/recall program. Failing injectors are a primary cause of DME MOSFET failure. (Ref: Extended warranty program by BMW.)
- N52 Hydraulic Valve Lifter (HVA) Ticking 🟡 Low — Common on earlier N52 engines, especially in cold weather or on short trips. A ticking noise develops from the valvetrain. BMW later released an updated cylinder head design to fix this. (Ref: SI B11 09 07)
Used vs. New Parts: Buying Guide for This Vehicle
When a used part is the smart pick: A used DME is a very common and cost-effective solution for this repair, BUT only if you use a reputable cloning service. Buying a used DME from a junkyard and having your original DME's data cloned onto it can save over $1000 compared to a new unit from the dealer.
Donor-vehicle mileage cap: roughly under 120000 miles for the part to have meaningful remaining life.
What to inspect on the donor part:
- Match the hardware part number exactly. Do not rely on the model year alone.
- Source the DME from a vehicle that was not involved in a flood or front-end collision.
- Visually inspect the pins on the used DME for any signs of corrosion or physical damage before purchasing.
- If possible, get the VIN of the donor car to check its history.
OEM-only on this vehicle (don't cheap out):
- Digital Motor Electronics (DME) - While a used OEM unit is fine, avoid any non-brand, no-name 'remanufactured' DMEs from unknown sellers. Stick to original Siemens/Bosch units, whether new or used and cloned.
Aftermarket brands forum-validated for this vehicle:
- For Ignition Coils: Bosch, Delphi, Eldor are OEM suppliers and considered reliable replacements.
- For MOSFETs (DIY Repair): onsemi (formerly Fairchild) FDB14N30TM is a widely documented and successful upgrade for MSD80 repair.
Brands owners have reported issues with on this vehicle:
- Generic, unbranded ignition coils and fuel injectors from online marketplaces. A cheap coil/injector failing is the primary cause of this expensive DME failure, so using quality parts is critical to prevent a recurrence.
Real Owner Stories
Aggregated from forums and TSBs cited above. Mileages and costs reflect what owners reported in those sources.
2007 BMW 335i N54
Symptoms: The car went into limp mode and stalled immediately after a track session. A JB4 tuner identified a fault indicating a DME diode failure for injectors 1, 2, and 3.
What fixed it: The owner identified the issue as a DME failure (code 30BA) requiring MOSFET repair or DME replacement.
Source hint: e90post.com - 'DME failure :('
2008 BMW 3 Series N54
Symptoms: The car sat outside and subsequently suffered from a damaged DME. Visual inspection showed corrosion on the unit.
What fixed it: The owner had to address water damage caused by clogged cowl drains; fixes discussed included cleaning pins or full DME replacement.
Source hint: e90post.com - 'Water damaged DME now with pics'
Related OBD-II Codes
Frequently Asked Questions
My 2007 335i has code 30BA and P1604; do I need to replace my fuel injectors too?
Can I fix the P1604 code on my N54-powered 3 Series by just cleaning the DME?
Does BMW TSB SI B12 09 12 apply to my P1604 fault?
Why is my cooling fan running at max speed when I try to start my 335i?
Is the P1604 code related to the N54 High-Pressure Fuel Pump (HPFP) recall?
Helpful Videos
Used OEM Parts in Stock
New Aftermarket Parts Available
The information in this article is provided for general reference and educational purposes only. Vehicle specifications, procedures, and part compatibility can vary by production date, trim level, and region. Always consult your vehicle's factory service manual and verify part numbers before purchasing or performing repairs. Safety-critical components such as airbags, seat belts, and braking systems should be installed by a qualified professional.
- BMW 3 Series:
- 🧭 Diagnostic Flowchart
- 🎬 Helpful Videos
- 🛍️ Shop This Part
- What's Unique About the 2005-2013 BMW 3 Series
- Symptoms You May Notice
- Most Likely Causes
- Rare But Worth Checking
- Diagnosis Steps
- Parts You'll Likely Need
- Related Codes That Often Appear With This One
- Technical Service Bulletins (TSBs) & Recalls
- Platform-Specific Known Issues
- Mechanic-Grade Diagnostic Values
- Hidden / Shadow Codes Worth Checking
- Scan Tool Commands That Help
- Wiring & Ground Locations
- Real Owner Repair Stories
- OEM Part Supersession History
- Model Year Variations Within This Range
- Other Known Issues on This Vehicle
- Used vs. New Parts: Buying Guide for This Vehicle
- Real Owner Stories
- 2007 BMW 335i N54
- 2008 BMW 3 Series N54
- Related OBD-II Codes
- Frequently Asked Questions
- 🎟️ Get 5% Off