P0604
Internal Control Module Random Access Memory (RAM) ErrorP0604 is a generic OBD-II powertrain diagnostic trouble code: Internal Control Module Random Access Memory (RAM) Error. It is logged by the engine control unit when the powertrain monitor detects that a specific fault threshold has been exceeded — typically resulting in the malfunction-indicator lamp (MIL / check-engine light) being illuminated.
What P0604 means
P0604 is set when the ECM/PCM detects a failure in its own internal Random Access Memory (RAM) self-test. During power-up, the control module writes a test pattern to its RAM, reads it back, and compares the result; a mismatch sets P0604. RAM is the module's working memory — it holds live sensor data, calculated values, adaptive fuel trims, and operating flags while the engine is running. A confirmed RAM failure means the module cannot reliably process real-time engine management data.
True hardware RAM failures are relatively uncommon. The most frequent triggers for P0604 are supply-voltage events: a weak or discharged battery causing the module to brown-out during cranking, a poor ECM ground connection, or a voltage spike during a jump-start. An interrupted or incomplete ECU reflash can also corrupt RAM or leave the module in a state that fails self-test on next start. These should be eliminated before suspecting hardware failure. P0604 should be distinguished from P062F (EEPROM / non-volatile memory error, which affects stored calibration data) and P0605 (ROM checksum failure, which affects the module's fixed program code); they have different causes and repair paths.
Diagnostic procedure starts with clearing the code after confirming battery and ground integrity. If the code does not return after a complete drive cycle, an intermittent voltage fault was the cause. If it returns immediately or consistently, the module itself may require reprogramming or replacement.
Common causes
Most-frequently reported root causes when P0604 is logged.
-
1
Low or discharged battery causing module brown-out during cranking, triggering a RAM self-test failure.
-
2
Poor or corroded ECM/PCM ground connection causing voltage fluctuations that corrupt RAM contents.
-
3
Voltage spike during a jump-start or charging session disrupting module power supply.
-
4
Interrupted or incomplete ECU reflash leaving the module in an inconsistent state.
-
5
Blown or intermittent fuse in the ECM/PCM power supply circuit.
-
6
Internally failed ECM/PCM RAM hardware (genuine hardware fault, relatively rare).
-
7
Faulty main relay or ignition power supply delivering unstable voltage to the control module.
Symptoms drivers notice
How to diagnose P0604
A typical diagnostic flow when this code is present.
-
1
Connect an OBD-II scanner, record all stored codes and freeze frame data, noting whether P0604 appeared alongside many other unrelated codes (a pattern suggesting voltage loss or module reset rather than targeted system failure).
-
2
Test battery voltage and cold-cranking amperage with a battery load tester; a weak battery is the single most common trigger for P0604 and must be ruled out first.
-
3
Inspect all ECM/PCM ground connections at the module and at the chassis/engine block ground points for corrosion, looseness, or damage; clean and re-torque as needed.
-
4
Check the ECM/PCM main power supply fuse and relay for continuity and correct voltage under crank; repair any open or intermittent supply circuit.
-
5
Clear the code, disconnect and reconnect the battery to fully reset the module, and perform a complete drive cycle; if P0604 does not return, an intermittent voltage event (weak battery, bad ground) was the root cause.
-
6
If the code returns immediately after reset, verify whether the ECU has had a recent reflash; if so, attempt a fresh reflash with a known-good calibration file before condemning the module.
-
7
If all power supply, ground, and programming checks pass and P0604 continues to return, the ECM/PCM has a genuine internal hardware failure and requires replacement and programming.
Related powertrain codes
Frequently asked questions
How is P0604 different from P062F and P0605?
P0604 is a RAM (volatile working memory) self-test failure. P062F is an EEPROM (non-volatile memory) error affecting stored calibration and adaptive data that persists after power-off. P0605 is a ROM checksum failure affecting the module's fixed program code. Each points to a different memory subsystem and has a different repair path.
Can a dead battery really cause P0604?
Yes, and it is the most common cause. When battery voltage drops below the module's minimum operating threshold during cranking, the RAM loses power or receives unstable supply voltage, causing the self-test pattern written at startup to be corrupted or unreadable. Replacing or fully charging the battery and clearing the code often resolves it permanently.
Will reprogramming/reflashing the ECM fix P0604?
Sometimes. If the code appeared after an interrupted reflash or incomplete programming session, a fresh complete reflash can restore the module to a working state. However, if the underlying RAM hardware has failed, reflashing cannot repair physical memory damage and module replacement will be required.
Is P0604 always a sign the ECM needs to be replaced?
No. True ECM hardware failure is relatively uncommon. The majority of P0604 cases are caused by external voltage issues — weak battery, bad ground, or power supply faults — that are inexpensive to fix. Exhaust all power supply and ground checks, and attempt a module reset, before concluding the ECM itself is faulty.
Disabling P0604 in software
RaceTune can permanently disable P0604 — and any other OBD-II diagnostic trouble code — on every ECU family we support. The monitor is disabled inside the ECU itself, so the fault stops being logged: the warning light stays off and the engine never enters limp mode for this code. The change is tied to your exact software version.
Software modifications affect emissions compliance and are not road-legal in many jurisdictions. RaceTune service files are intended for motorsport, off-road, and export use.
Got P0604 in your scan?
Upload your ECU file — we'll identify the exact software version and confirm whether a disable is available for your car.
Upload your file