Go-Parts
Cart 0
Your cart is empty
Add an item to see it appear here.
Wrenchy
Go-Parts Garage
Expert guides for diagnosing, troubleshooting, and replacing auto parts Expert guides for diagnosing and replacing auto parts
Browse All Articles →
🧭 Diagnostic Flowchart 🎬 Helpful Videos 🛍️ Shop This Part

P1604 on 1996-2004 BMW 5-Series: DME Self-Test Failure Causes and Fixes

P1604 on a BMW 5-Series (E39/E60) indicates a fatal internal error in the engine control module (DME). Before condemning the expensive DME, it is critical to first rule out a weak battery, corroded grounds, or water damage in the electronics box, which are extremely common issues on the E39 platform that can trigger this code.

19 minutes to read 1996-2004 BMW 5-Series
Most Likely Cause
DME Internal Failure
Difficulty
5/5
Est. Time
2.8 hrs
DIY Doable?
🔧 Shop
Shop Labor
$350 – $2500
Parts Price
$150 – $1800
🚫 Do not drive — Driving is not recommended. The engine computer is compromised and could cause the engine to stall unexpectedly at any time, leading to a complete loss of power and a serious safety risk. In many cases, the vehicle will not start at all, presenting a crank-no-start condition.
Key Takeaways
  • P1604 is a critical code on a BMW, pointing directly to a problem with the main engine computer (DME).
  • Before spending money on a new DME, ALWAYS check for the three most common external causes: a weak battery, water damage in the E-box, and bad ground connections.
  • On an E39 (1996-2003), clogged drains under the passenger cabin filter are the #1 cause of water damage to the DME. Cleaning them is essential maintenance.
  • Replacing a DME is a job for a professional or an advanced DIYer with the correct programming tools, as it must be synchronized with the car's anti-theft system.
For a BMW, the P1604 trouble code translates to "Internal Control Module Driver Error" or "Control Module Self-Test Error". This is a manufacturer-specific fault indicating that the Digital Motor Electronics (DME), which is BMW's term for the Engine Control Unit (ECU), has detected a critical internal malfunction during a self-test. The DME continuously checks its own processors and memory, and this code is set when an unrecoverable error is found. It is important to note that on many other vehicle brands, P1604 means a more generic "Startability Malfunction," but on a BMW, it points specifically to the DME itself.
Heads up: The manufacturer-specific definition of this code could not be fully verified — treat the guidance below as general.

What's Unique About the 1996-2004 BMW 5-Series

On the E39 generation (1996-2003), the DME is located in a compartment under the passenger-side cabin air filter known as the 'E-box'. This box has drains that are notoriously prone to clogging with leaves and debris. 🎬 Watch: How to locate and clear the E-box drains When clogged, the E-box can fill with rainwater, submerging and destroying the DME, making water intrusion a very common cause of P1604 on these specific cars. Videos and forum posts extensively document this failure mode.

Generation note: This year range covers two generations: the E39 (1996-2003) and the first year of the E60 (2004). The E39 is particularly susceptible to DME failure from water damage due to the design of its electronics box and its drains. While the code's meaning is the same for the early E60, the specific location and failure modes of its DME may differ. The E39 used various DMEs, including Siemens MS41/MS42/MS43 for 6-cylinder engines and Bosch ME7.2 for V8 engines.

Professional service recommended: Replacing the DME is not a plug-and-play job. It requires specialized software to align the replacement module with the vehicle's immobilizer system (EWS/CAS). This process, known as cloning or programming, ensures the car recognizes the new DME and allows the engine to start. While DIY is possible with advanced tools, it's typically a job for a specialist or dealer.

Symptoms You May Notice

  • Engine cranks but will not start.
  • Engine stalls unexpectedly while driving.
  • No communication with the DME via a scan tool.
  • Check Engine Light is on.
  • Other warning lights may be on, such as 'ENGINE FAILSAFE PROG' (on E39 models).
  • Coolant temperature gauge may immediately go to maximum (red) when the key is turned on, even with a cold engine. This is a classic sign of a non-communicating DME.
  • 🎬 See this video on diagnosing a water-damaged, non-communicating DME
  • Cooling fan runs at maximum speed as soon as the key is turned on (failsafe mode).
  • No fuel pump priming sound when the key is turned to the 'on' position.
  • DME main relay clicking erratically in the E-box.
⚠️ Don't Waste Money on the Wrong Fix
  • Replacing the fuel pump, crankshaft position sensor, or ignition coils. If the DME is dead or not powered correctly, it cannot control these components, making them appear faulty. Always confirm the DME is powered, grounded, and communicating before replacing other parts. The lack of fuel pump priming is a key symptom pointing towards the DME, not the pump itself.

Most Likely Causes

  1. DME Internal Failure 🔴 High Probability Can be caused by age, heat cycles, or voltage spikes from other failing components. On other BMW platforms, failing ignition coils or injectors are known to back-feed voltage and destroy DME driver circuits, which can also happen on the E39. Improper jump-starting is another known cause of DME damage.
    How to confirm: This is a diagnosis of exclusion. If all other potential causes (power, ground, water damage) are ruled out and the code persists, the DME itself has failed. A specialist can also bench-test the DME.
    Typical fix: The DME must be replaced or sent to a specialist for repair. The replacement unit must be programmed to the car's immobilizer system (EWS). Services exist to 'clone' your original DME's data to a used, matching donor unit.
    Est. part cost: $200-$1800
  2. Water Damage to DME 🔴 High Probability A well-documented issue on the E39 platform where clogged drains for the electronics box cause it to fill with water, destroying the DME. The seal on the E-box lid can also fail, allowing water ingress even if drains are clear.
    How to confirm: Open the electronics box (passenger side, under the cabin air filter housing) and visually inspect for any signs of moisture, standing water, rust stains, or corrosion on the DME and its connectors. The bottom of the DME case may show tell-tale signs of dried water marks.
    Typical fix: Replace the damaged DME and clear the clogged drains to prevent recurrence. The connectors and wiring may also need repair. In some cases, if the damage is minor, opening the DME case and cleaning the circuit board with electronics cleaner may work, but often the damage is permanent.
    Est. part cost: $250-$1800
  3. Low Battery Voltage or Failing Battery 🟡 Medium Probability → Shop Vehicle Battery These vehicles are highly sensitive to low voltage. During cranking, a weak battery's voltage can drop below the required threshold for the DME to operate correctly, causing it to fail its self-test and set a false P1604 code.
    How to confirm: Test the battery with a multimeter and a load tester. A healthy battery should show above 12.4V at rest and maintain voltage above 10V during cranking. If the battery is several years old, it's a primary suspect.
    Typical fix: Replace the vehicle's battery. Ensure the new battery meets the vehicle's specifications for type (AGM/lead-acid) and capacity.
    Est. part cost: $150-$300
  4. Poor Power or Ground Connections ⚪ Low Probability Over 20+ years, corrosion can build up on main ground straps (engine-to-chassis, battery-to-chassis) or the DME's power supply connections, creating high resistance.
    How to confirm: Visually inspect the main engine-to-chassis ground strap for fraying and corrosion. Check the DME connectors for corroded pins. Perform a voltage drop test on the main power and ground wires at the DME connector to ensure it's receiving full battery voltage.
    Typical fix: Clean all corroded connection points with a wire brush and contact cleaner. Replace damaged ground straps or connector pins.
    Est. part cost: $20-$100

Rare But Worth Checking

  • Failing Alternator: → Shop Alternator A faulty voltage regulator in the alternator can produce voltage spikes or AC ripple voltage that can damage sensitive electronics, including the DME, or cause it to malfunction and corrupt its own data.
  • Faulty DME Main Relay: → Shop Wiring Relay The main relay (typically a blue relay in the E-box) supplies power to the DME. An internally failing relay can cause intermittent power loss, erratic clicking, and prevent the DME from booting up, sometimes mimicking a failed DME.

Diagnosis Steps

  1. Attempt to connect to the DME with a BMW-compatible scan tool. If there is no communication, this points strongly to a DME power/ground issue or a completely failed unit.
  2. Perform a full battery and charging system test. A weak battery is a common cause of spurious electronic faults and can trigger a false P1604. Check for AC ripple from the alternator, which can corrupt the DME.
  3. Locate the electronics box (E-box) on the passenger side of the engine bay, underneath the cabin air filter housing.
  4. Open the E-box and inspect thoroughly for any signs of water intrusion, condensation, or corrosion on the DME, connectors, and wiring. Check if the drains are clogged with leaves or debris.
  5. If no water is present, disconnect the battery. Then, disconnect the DME connectors and inspect the pins on both the module and the harness for any green or white corrosion.
  6. Inspect the main engine-to-chassis ground strap for tightness and corrosion. It is located on the passenger side of the engine in many E39 models.
  7. Using a multimeter and a wiring diagram for your specific model/DME, verify that the DME is receiving constant battery voltage (Terminal 30) and switched ignition voltage (Terminal 15) on the correct pins. Check for continuity to ground on the specified ground pins.
  8. If all wiring, power, grounds, and the DME environment appear perfect, and the code returns immediately after being cleared, the DME has suffered an internal failure and must be replaced or repaired.

Parts You'll Likely Need

  • Engine Control Module (DME) (OEM #Varies widely. e.g., Siemens MS43: 12147551616; Bosch ME7.2: 12147512912. Must match original part number.) — This is the most common fix when the code is caused by an actual internal fault or irreparable water damage.
    Trusted brands: Bosch (for V8 models), Siemens (for I6 models)
    OEM price range: $1200-$2000+
    Aftermarket price range: $200-$800 (Used/Remanufactured + Cloning Service). Cloning services typically cost $200-$400.
  • Battery — A weak battery can cause incorrect voltage during startup, falsely triggering this code.
    Trusted brands: Varta, Bosch, Interstate, Duralast
    OEM price range: $250-$400
    Aftermarket price range: $150-$300

Technical Service Bulletins (TSBs) & Recalls

  • While no specific TSB for P1604 was found, BMW has issued service bulletins for similar platforms (like SI B12 03 04 for E46) regarding DME failures and programming, indicating a history of control unit issues.

Platform-Specific Known Issues

  • The E39 5-Series is highly susceptible to P1604 caused by water damage. The drains for the electronics box that houses the DME frequently clog with leaves, allowing rainwater to flood the compartment and destroy the module. Regular cleaning of these drains is critical preventative maintenance.
  • The sunroof drains can also clog, and on some models, this can lead to water entering the cabin and potentially affecting other electronics, though the DME E-box is the primary concern for P1604.

Mechanic-Grade Diagnostic Values

  • DME Main Power Supply (Terminal 30) — expected: Constant 12V+ (Battery Voltage). Failure: 0V or significantly less than battery voltage indicates a blown fuse, bad main relay, or wiring issue.
  • DME Switched Power Supply (Terminal 15) — expected: 12V+ when ignition is in 'ON' position. Failure: 0V when key is on points to an ignition switch or fuse problem.
  • DME Ground Pins — expected: < 1.0 Ohm resistance to chassis ground. Failure: High resistance (OL) indicates a broken or corroded ground wire/strap.
  • Alternator AC Ripple Voltage — expected: < 0.5V AC with engine running. Failure: AC voltage greater than 0.5V indicates failing alternator diodes, which can corrupt or damage the DME.

Scan Tool Commands That Help

  • INPA: DME-EWS Synchronization (Abgleich/Sync) — Required after installing a used or new DME to align the rolling security code (ISN) between the DME and the EWS (immobilizer) module. Without this, the car will crank but not start.
  • ISTA/D: Ablauf: DME-Steuergerät tauschen (Procedure: Replace DME control unit) — This is the guided dealer-level procedure for replacing and programming a new DME, which includes encoding the module to the vehicle's options and performing the EWS alignment.
  • JMGarage Flasher / MS4X Flasher: Read/Write Full 512kb Flash — Advanced function used by specialists to 'clone' a DME. It involves reading the entire memory content (including VIN, ISN, and programming) from the original DME and writing it to an identical used DME, creating a plug-and-play replacement.

Wiring & Ground Locations

  • Engine-to-Chassis Ground Strap — On many E39 models, this braided strap is located on the passenger side of the engine, connecting the engine block or engine mount arm to the chassis rail.. A corroded or broken main ground strap can cause a host of electrical issues, including no-start conditions and communication errors with the DME that can mimic an internal DME failure.
  • DME Ground Pins (e.g., X60001) — The DME has multiple ground pins across its connectors. For MS43, pins 4, 5, and 6 on connector X60001 are grounds. For ME7.2, pins 4, 5, and 6 on connector X60001 are also grounds.. The DME requires a solid ground connection to function. Verifying continuity at these specific pins is a key step in ruling out a wiring problem before condemning the module.
  • Battery Ground Cable — In the trunk, connected to the negative battery terminal and bolted to the chassis on the right side.. While less common to fail than the engine strap, corrosion at the main battery ground point can cause system-wide low voltage issues.
  • DME Main Relay — Located inside the E-box in the engine bay, typically a blue 5-pin relay.. This relay provides the main power to the DME. If it fails, the DME will not power on, leading to a no-start and no-communication symptom identical to a dead DME.

Real Owner Repair Stories

  • Reddit user on r/e39 (2000 BMW 540i 6-speed, 90k miles) — Crank-no-start, temp gauge pegs to red immediately, no communication with DME via scan tool, 'ENGINE FAILSAFE PROG' warning.
    ❌ Tried (didn't work) Initially, removing and reinstalling the EF1-5 fuse pack would temporarily fix it., Sent DME for repair; they re-flashed it, and it worked for 200 miles before failing again., Verified all fuses and relays were good., Confirmed no water intrusion in the E-box.
    ✅ What actually fixed it The final resolution was not posted by the original author, but a highly-rated comment suggested the cause was a failing alternator producing AC ripple voltage, which is known to corrupt DME data without causing physical damage. The symptoms described (data corruption, temporary fixes) align with this diagnosis.
  • YouTube channel BAVHAUSTV (2003 BMW 530i (E39)) — Intermittent crank-no-start, no fuel pump priming sound, parasitic draw, unable to connect with any scan tool (INPA, ISTA, Snap-On, etc.), DME main relay clicking erratically.
    ❌ Tried (didn't work) Replacing the fuel pump., Swap-testing the DME main relay.
    ✅ What actually fixed it The DME itself had failed due to water damage. The video shows visible corrosion and water marks on the DME case and internal circuit board after removal from the E-box. The final fix was to replace the DME and have it programmed to the car.

Model Year Variations Within This Range

  • 1999-2000 vs 2001+: Inline-6 cylinder models from 1999-2000 used the Siemens MS42 DME, which has a partially cable-actuated throttle body. Models from 2001+ used the Siemens MS43 DME with a fully electronic throttle-by-wire system. While the P1604 code has the same meaning, swapping between these DMEs is not plug-and-play and requires significant wiring and component changes (throttle body, pedal assembly).
  • 2003: For the M54 engine, there was a mid-year change around 2/2003 from the MS43 DME to the MS45.1 DME. While this primarily affected the E46 3-series, some late-production E39s could be affected. The systems are not directly compatible and have different wiring harnesses and components.

Diagnostic Flowchart

Other Known Issues on This Vehicle

Issues unrelated to this code that are worth knowing about as an owner of this generation:

  • Cooling System Failure 🔴 High — Extremely common. Plastic components like the radiator, expansion tank, thermostat housing, and water pump impeller become brittle and fail, typically between 60,000-100,000 miles. A full overhaul is considered essential preventative maintenance.
  • Timing Chain Guide Failure (V8 M62TU) 🔴 High — Very common on the 540i V8 engine, typically after 100,000 miles. The plastic guides become brittle and break apart, which can lead to chain rattle, timing jump, and catastrophic engine failure if ignored.
  • VANOS Seal & Unit Failure 🟠 Medium — Common on all engines after 70,000-100,000 miles. The original Buna rubber seals in the VANOS units degrade, causing loss of low-end torque, rough idle, and rattling noises.
  • Instrument Cluster & MID Pixel Failure 🟡 Low — Almost guaranteed to happen on all E39s. The ribbon cable connecting the LCD screens to the circuit boards fails, causing pixels to disappear and making the displays unreadable.
  • Window Regulator Failure 🟠 Medium — Very common. The plastic clips that hold the window glass to the regulator break, causing the window to fall into the door. Affects both front and rear windows.
  • Valve Cover Gasket & Oil Leaks 🟠 Medium — Frequent source of oil leaks on both inline-6 and V8 engines. The gaskets become hard and brittle, allowing oil to leak onto the exhaust manifolds, creating a burning smell.

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/programming service. Buying a used DME from a junkyard or eBay for a few hundred dollars and paying a specialist to clone your original data onto it can save over a thousand dollars compared to a new DME from a dealer.

Donor-vehicle mileage cap: roughly under 150000 miles for the part to have meaningful remaining life.

What to inspect on the donor part:

  • MUST have the exact same Bosch or Siemens part number as your original DME.
  • Source the part from a dry-climate state if possible to minimize the risk of prior water damage.
  • Inspect the connectors on the donor unit for any signs of green or white corrosion before purchasing.
  • Ask the seller if the donor car was running before it was dismantled.

OEM-only on this vehicle (don't cheap out):

  • Engine Control Module (DME) - While a used OEM unit is fine, avoid no-name aftermarket 'rebuilt' DMEs from unknown vendors. Stick to used OEM (Bosch/Siemens) or professional repair/cloning of your original unit.

Aftermarket brands forum-validated for this vehicle:

  • For DME Repair/Cloning Services: RPM Motorsport, The ECU Pro, Circuit Board Medics, DUDMD Tuning, SIA Electronics.

Brands owners have reported issues with on this vehicle:

  • Unbranded or generic DME/ECU units sold on marketplaces without a warranty or clear programming/cloning service attached.

Real Owner Stories

Aggregated from forums and TSBs cited above. Mileages and costs reflect what owners reported in those sources.

2003 BMW E39 5-Series

Symptoms: The vehicle experienced stalling immediately after a car wash.

What fixed it: The owner opened the electronics box and confirmed the DME was wet; the issue was resolved by addressing the water in the DME compartment.

Source hint: Pelican Parts Forum - 'DME water damage'

Frequently Asked Questions

Why does my E39 temperature gauge go straight to the red zone as soon as I turn the key, even though the engine is cold?
This is a classic sign of a non-communicating DME (Engine Control Module). When the DME fails to communicate due to internal failure or power loss, the instrument cluster defaults the gauge to maximum as a failsafe.
My 5-Series won't start and the cooling fan is running at full speed. Is this related to P1604?
Yes. When the DME fails its self-test or loses communication, the vehicle enters a failsafe mode that triggers the cooling fan to run at maximum speed and prevents the engine from starting.
Can a car wash cause a P1604 code on my 1996-2004 BMW 5-Series?
Yes. The E39 platform is highly susceptible to water damage in the electronics box (E-box) located under the passenger-side cabin air filter. If the drains are clogged, water from a car wash or rain can flood the box and destroy the DME.
Is there a TSB for DME failures on this platform?
While no specific TSB for P1604 was found for the E39, BMW issued SI B12 03 04 for the related E46 platform regarding DME failures and programming issues. [TSB SI B12 03 04]
Can I just buy a used DME from another 540i or 525i to fix this?
A used unit can be used, but it is not 'plug-and-play.' The replacement DME must be programmed to your car's immobilizer system (EWS). Services exist to 'clone' your original data to a matching donor unit.
I hear a clicking sound coming from the passenger side engine bay when I try to start the car. What is that?
This is likely the DME main relay clicking erratically in the E-box, which is a known symptom associated with DME power issues or internal failure on the E39.
E39 530i DME Failure (How to diagnose a faulty or water damaged DME as the cause of crank no start)
E39 530i DME Failure (How to diagnose a faulty or water damaged DME as the cause of crank no start)
bmw e39 5-series ecu box water drain part 1
bmw e39 5-series ecu box water drain part 1
Bmw e38/e39 DME COMPLETE REPAIR GUIDE
Bmw e38/e39 DME COMPLETE REPAIR GUIDE
How To Guide DIY  BMW E39 M5 Sunroof Drain Unblocking (Moonroof)
How To Guide DIY BMW E39 M5 Sunroof Drain Unblocking (Moonroof)
Wrenchy
Article researched & written by
Go-Parts' AI research assistant. Every article is backed by live web research, verified OEM data, and real technician knowledge — so you get accurate, up-to-date information you can trust.
Meet Wrenchy → Updated May 30, 2026

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.

Year Coverage
This article covers the OBD-II Code P1604 for:
  • BMW 5-Series: 199619971998199920002001200220032004
In this article
🧭 Diagnostic Flowchart
Jump to ▴

Email This Guide

We'll send you a link to this article so you can read it later or share it.

Added to cart · Part