01 Why Cars That Take Longer To Start In The Morning Are Often… • 02 How To Remove Paint On Car Windows After A Repaint • 03 Car Runs Worse After an Oil Change This Is How to Fix It • 04 B1700 – Body Network Communication Fault: Module Data Loss • 05 How do driverless cars navigate without road markings? • 06 Optimizing Engine Performance: The Critical Need for Oil Fi… • 07 Engineers Reveal Why Most Car Doors Are Designed To Rip Apa… • 08 Valve Adjustment: The Essential Tune-up for a Healthy and H… • 09 Toyota Hilux Spare Parts List and Part Numbers • 10 Why Does Your Car Lose Power While Driving and Now Won’t St… •

DTC codes / BMW codes / P1604

P1604 · BMWControl Module Self Test Speed Monitoring

P1604 on BMW vehicles indicates that the engine control module (DME) detected an implausible speed signal during its internal self-test, meaning the processor's speed monitoring circuit did not see the expected clock or speed reference within the allowed window. The module runs this self-check at key-on and during running, and when the monitored speed falls outside the expected range it stores this code and may illuminate the check engine light.

SystemPowertrain
Code typeBMW specific
SeverityMedium
Fix difficultyProfessional
AreaComputer and output circuits

Symptoms you may notice

  • Check engine light (service engine soon) illuminated, often with no other noticeable symptoms
  • Intermittent no-start or crank-no-start condition, especially after the vehicle sits overnight
  • Rough running or reduced engine power if the DME limits operation due to the self-test fault
  • Random stalling or hesitation that may not be reproducible at the shop
  • Other unrelated fault codes stored in multiple modules because the DME self-test failure can affect communication
  • Battery drain or repeated jump-start needs if the DME remains awake due to the fault

Common causes, most likely first

  1. Weak or failing vehicle battery causing low voltage during the DME self-test at key-on
  2. Poor ground connection at the DME mounting points or engine ground strap, leading to voltage drops during the speed monitor check
  3. Corroded or loose pins in the DME connector, interrupting the internal speed reference signal
  4. Internal fault in the DME (engine control module) speed monitoring circuit or processor
  5. Voltage supply issue to the DME, such as a faulty main relay or blown fuse that causes intermittent power loss during self-test
  6. Aftermarket tuning or coding changes that alter the DME self-test parameters and trigger a false speed monitoring fault

How to diagnose and fix it

  1. Perform a battery load test and check charging system voltage; replace the battery if it fails or is marginal
  2. Inspect and clean all DME ground points, engine ground straps, and battery terminals, then clear the code and retest
  3. Check DME connector pins for corrosion, tightness, and proper seating; repair any damaged terminals
  4. Verify DME power and ground supplies with a multimeter under load, including the main relay and fuses, and repair any voltage drop
  5. Clear the fault and perform a DME self-test or adaptation reset with a BMW-capable scan tool; road test to see if the code returns
  6. If the code persists after electrical checks, substitute a known-good DME or send the unit for bench testing to confirm internal failure
  7. Replace and code the DME only after all wiring and power supply issues are ruled out, then perform necessary immobilizer and coding procedures

Why a weak battery fakes a DME failure

  • A battery that drops below about 10.5 volts during cranking can cause the DME self-test to fail its speed monitoring check, setting P1604 even though the module is healthy.
  • Technicians often replace the DME prematurely because the code points to an internal module fault, but corroded ground straps on BMW engines are a far more common root cause.
  • Aftermarket software flashes or piggyback tuners can alter the DME's self-test timing and trigger P1604 without any hardware failure, so always check for non-stock coding before condemning the module.
  • P1604 can appear alongside communication codes like U0100 or U0121 when the DME resets during the self-test, leading some to chase CAN bus faults instead of the power supply.
  • The DME self-test runs at key-on before the starter engages, so a fault that only appears after a cold soak often points to a battery or ground issue rather than a failing DME.

Can I keep driving with P1604?

You can usually drive the vehicle short distances to a repair shop, but avoid long trips or heavy load because the DME may enter a reduced-power mode or stall unexpectedly. If the engine cranks but does not start, do not continue cranking; have the vehicle towed for diagnosis.

Guidance is general and written for BMW vehicles. Exact tests and values vary by model, so confirm the fault before replacing parts.

Running on fumes Free guides aren't free to make. Top up the tank. Any amount, one time. Fuel the Garage