Skip to content

P1640

Internal Control Module ROM RAM Error.

  • BMW
  • Powertrain
  • Manufacturer code
  • High severity

How this code is built

P
SystemPowertrain
1
Defined byThe manufacturer
6
AreaComputer and output circuits
40
FaultThe specific fault in that area

What it means

On BMW, P1640 means the engine control unit (DME/DDE) has detected an internal fault in its own memory, specifically a ROM or RAM error. During its self-checks the control unit found that stored data or program memory failed a read, write or checksum test. Exact behaviour and affected control unit vary by model and engine.

Symptoms

  • Engine management warning light on
  • Engine running in limp-home mode with reduced power
  • Hard starting or no start
  • Rough running or intermittent misfires
  • Erratic idle or stalling
  • Other warning lights or multiple unrelated fault codes stored

Possible causes

  • Low or unstable supply voltage to the control unit from a weak battery, poor earth or charging faultlikely
  • Corrupted software or data in the control unit, for example after an interrupted coding or programming sessionpossible
  • Internal failure of the control unit memory or processorlikely
  • Water ingress, corrosion or damaged pins in the control unit connectorspossible
  • Poor power supply or earth connections in the engine bay or relay and fuse box wiringpossible
  • Outdated control unit software where the manufacturer has issued a revised version for this faultrare

How to diagnose

  1. Read all stored codes from every module and note the freeze frame data, then record and clear the codes to see if P1640 returns.
  2. Test battery condition and check charging voltage with the engine running, as low or fluctuating voltage can corrupt memory checks.
  3. Inspect the control unit housing, connectors and pins for moisture, corrosion, green deposits or bent terminals.
  4. Check the control unit power supply and earth connections and the related fuses and relays for voltage drop under load.
  5. Look for recent work such as battery disconnection, jump starting, coding, programming or aftermarket modifications that could explain the fault.
  6. Check whether the software and calibration version is current against manufacturer service information for the specific model and engine.
  7. If the code returns with good power, earths and connectors, test or substitute the control unit following manufacturer procedures.

How to fix

  • Repair or replace the battery, charging system components or poor earth connections to give a stable supply.
  • Clean and repair corroded or damaged connectors and wiring, and fix any source of water ingress.
  • Reprogram the control unit with the latest manufacturer software where the memory data is corrupted or an update is available.
  • Replace or professionally repair the control unit if the internal memory fault persists, then code and adapt it to the vehicle.
  • Replace faulty relays, fuses or supply wiring found during voltage drop testing.

Can I keep driving?

High severity

Avoid driving beyond what is necessary, as the engine may stall, fail to restart or drop into limp mode without warning. Have it diagnosed promptly, especially if the engine runs poorly or the car has stalled.

Guide written by AI from the code's definition. Confirm with a diagnosis before replacing parts.