P0604 on 2012-2016 Subaru Impreza: RAM Error Causes and Fixes
On a 2012-2016 Impreza, P0604 is almost always caused by a weak battery, failing alternator, or poor ground connections, not a bad ECU. Before replacing anything, test the battery and charging system, and clean the main engine ground on the intake manifold. Many owners resolve this code without expensive computer replacement.
- Do not rush to replace the ECM. The P0604 code on a 2012-2016 Impreza is most likely an electrical issue.
- Start your diagnosis with the simplest and most probable causes: test the battery and charging system. Subaru OEM batteries from this era have a reputation for short lifespans.
- Thoroughly clean all major ground connections, especially the one on the intake manifold, before considering any part replacement.
- Driving with this code is risky due to the potential for sudden stalling or a no-start condition.
- If the ECM does need replacement, it must be programmed by a dealer or a properly equipped independent shop; it is not plug-and-play.
What's Unique About the 2012-2016 Subaru Impreza
While P0604 points to an internal computer fault, on this generation of Subaru Impreza and its platform mates (like the XV Crosstrek), the root cause is very frequently external. These vehicles are sensitive to voltage fluctuations, and a weak or failing OEM battery, aging alternator, or corroded ground straps are the most common triggers for this code. The ECU's logic is only as good as the power supplied to it, and unstable voltage during startup or operation can corrupt the RAM self-test, leading to a false P0604 code. Owners often resolve the issue without replacing the expensive ECM by first addressing the vehicle's basic electrical health.
Symptoms You May Notice
- Check Engine Light is on
- Engine may not start or is hard to start
- Intermittent stalling, sometimes after running for a few seconds
- Rough or unstable idle
- Reduced fuel economy
- Transmission may shift harshly or enter a 'limp mode'
- Engine seemingly misfiring or dying when the vehicle stops
- In some rare cases, no noticeable symptoms other than the Check Engine Light
- Replacing the ECM without first testing the battery, alternator, and ground connections. This is a very expensive and common mistake that often fails to fix the problem.
- Clearing the code and assuming it's fixed. If the underlying electrical issue isn't resolved, the code will likely return.
Most Likely Causes
- Weak or Failing Battery 🔴 High Probability → Shop Vehicle Battery Subaru ECMs are sensitive to low voltage during startup. The factory-installed batteries in this era are known to have a relatively short lifespan (2-3 years) and low cold-cranking amps, making them a frequent culprit. A battery that can't maintain stable voltage during cranking can corrupt the ECM's RAM test, triggering a false P0604.
How to confirm: Test the battery with a digital multimeter or electronic tester. A healthy battery should read above 12.4V with the engine off and must not drop below 9.6V during cranking. 🎬 Watch: Troubleshooting a Subaru that won't start but has power. Many auto parts stores will test your battery for free. Be aware that a battery can sometimes test 'good' but still fail under real-world load.
Typical fix: Replace the battery and thoroughly clean the terminal connections with a wire brush. Many owners report success by upgrading to a higher-quality AGM battery.
Est. part cost: $120-$300 - Poor Engine/Chassis Ground Connections 🔴 High Probability Corrosion on ground straps is common. The main ECU ground on many Subarus, including the FB20 engine, is located on the intake manifold. This connection can become corroded or loose, creating high resistance and causing a host of strange electrical issues, including memory codes like P0604. Other critical grounds are from the battery to the chassis and engine block to the chassis.
How to confirm: Visually inspect the main ground straps. Specifically locate, remove, and clean the ground connection on the intake manifold. Use a multimeter to check for resistance between the negative battery terminal and the engine block, and between the negative terminal and the chassis; it should be less than 0.2 ohms. A clean ground should have shiny, bare metal-to-metal contact.
Typical fix: Disconnect the battery. Remove the ground bolts, clean all contact surfaces (the terminal, the chassis/engine block surface, and both sides of the bolt) with a wire brush until they are bright metal, then re-secure them tightly. Apply dielectric grease over the connection (not between the contacts) to prevent future corrosion.
Est. part cost: $0-$20 (for cleaning supplies or a new strap) - Failing Alternator 🟡 Medium Probability → Shop Alternator An alternator producing unstable voltage (either too low, too high, or with excessive AC ripple) can disrupt the ECM's operation and trigger memory errors. Some Subaru charging systems are ECU-controlled and may reduce output under certain load conditions, which can exacerbate issues with an already weak battery.
How to confirm: With the engine running, test the voltage at the battery terminals. A healthy alternator should output a steady voltage, typically between 13.5V and 14.5V. A more advanced test is to check for AC ripple voltage with a multimeter that has this function; more than 0.1 volts AC can indicate failing diodes in the alternator. 🎬 See this guide for testing your alternator the right way. Most auto parts stores can perform a comprehensive alternator test.
Typical fix: Replace the alternator.
Est. part cost: $200-$450
Rare But Worth Checking
- Faulty Engine Control Module (ECM): → Shop Engine Control Module (ECM) This should only be considered after all other electrical causes have been definitively ruled out. It is the least likely cause despite the code's definition. One owner on a forum reported going through two replacement ECMs before discovering the true fault was elsewhere, highlighting the danger of misdiagnosis.
- Software Glitch (Hybrid Models): Subaru TSB 11-169-16R notes that on 2014-2016 XV Crosstrek Hybrids, quickly cycling the ignition can cause a P0604. The fix is a dealer-installed software update for the Drive Motor Control Module. While this is for the hybrid model, it highlights the precedent for software-related issues causing this code. The TSB emphasizes using a stable power supply during the reflash.
- Damaged Wiring Harness or Connectors: Though uncommon, damage to the wiring harness leading to the ECM from corrosion, chafing, or improper repairs can cause voltage drops or shorts, triggering a P0604. A thorough visual inspection of the harness and checking for pin fit at the ECM connector is a valid, albeit advanced, diagnostic step.
Diagnosis Steps
- Check for any other stored trouble codes. Address those first, especially if they relate to the charging system or other modules.
- Clear the P0604 code using a scanner. Turn the ignition off, wait at least one full minute, then start the vehicle and see if the code immediately returns. If it does, proceed with diagnosis.
- Perform a complete battery health test. Check the static voltage (should be >12.4V) and the voltage during engine cranking (should not drop below 9.6V). A load test is essential.
- With the engine running, test the alternator output voltage at the battery terminals. It should be stable, between 13.5V and 14.5V. Check for AC ripple voltage if possible; it should be under 0.1V.
- Turn the vehicle off. Disconnect the battery. Inspect and thoroughly clean the battery terminals and cable ends until they are shiny.
- Locate, disconnect, and clean the main engine and chassis ground straps. On the FB20 engine, a critical ground is bolted to the intake manifold. 🎬 Watch: How to properly install or upgrade Subaru grounding straps. Clean all contact points (strap, bolt, and mounting surface) to bare metal.
- Inspect the wiring harness going to the ECM for any visible damage, corrosion, or loose connections. The ECM is located in the passenger-side footwell, behind the carpet and a protective metal plate.
- If all the above steps check out perfectly and the code still returns immediately after clearing, the issue may be a faulty ECM. This step should be confirmed by a professional.
- If the ECM is replaced, it will require programming to the specific vehicle's VIN and immobilizer system by a dealer or a properly equipped independent shop. It is not a plug-and-play part.
Parts You'll Likely Need
- Battery — A weak or failing battery is the most common trigger for this code on a Subaru.
Trusted brands: Interstate, Deka, Odyssey AGM, Subaru OEM
OEM price range: $150-$200
Aftermarket price range: $120-$300 - Engine Control Module (ECM)
(OEM #22765AC362, 22765AC382, 22765AC422 (Part numbers vary by transmission and emissions. Always match the number on your original unit.))— This is the last resort part to be replaced if all electrical system tests pass and the code persists. It is the part the code directly refers to but is rarely the actual cause.
Trusted brands: Subaru (OEM)
OEM price range: $800-$1150
Related Codes That Often Appear With This One
- U0100 — This code means 'Lost Communication With ECM/PCM'. It can appear with P0604 because the internal RAM error may cause the ECM to stop communicating on the vehicle's network.
- P0300-P0304 — Random or specific cylinder misfire codes can be triggered if the ECM's faulty memory affects its ability to properly control ignition timing or fuel injection.
- P0606 — This code for 'ECM/PCM Processor Fault' is a more severe internal computer error. It is often triggered by the same root causes as P0604, such as a dead or disconnected battery, and forum discussions show they frequently appear together.
Technical Service Bulletins (TSBs) & Recalls
- 11-169-16R: For 2014-2016 XV Crosstrek Hybrid, addresses a P0604 caused by quickly cycling the ignition. The fix is a Drive Motor Control Module software update. This confirms a software pathway for this code on a related platform.
- 07-75-13R: While for a P0606 code on WRX/Forester models, this TSB is highly relevant. It explains that after a battery disconnect or deep discharge, if the ignition is cycled too quickly, the ECM can set a processor fault code. It advises waiting at least one minute after reconnecting power before turning the key. This procedure is a good practice for the Impreza as well to prevent false codes.
Platform-Specific Known Issues
- Owner Experience: Immediate P0604 After Jump Start: A common story on forums involves a 2012-2016 Impreza or WRX with a dead battery. After receiving a jump start, the car runs but the Check Engine Light comes on with code P0604 or P0606. Replacing the weak battery and clearing the codes permanently resolves the issue, confirming the code was triggered by the low voltage event.
- Real-World Fix: Cleaning the Intake Manifold Ground: Multiple Subaru owners across different models (Impreza, Forester, Outback) have successfully eliminated persistent, seemingly random electrical codes, including P0604, by simply locating the main ECU ground wire on the intake manifold, unbolting it, cleaning the contact surfaces to bare metal with a wire brush, and re-securing it. This often solves issues that were previously misdiagnosed as a bad ECM.
- Recall for Engine Valve Springs: Subaru recalled some 2012-2014 Impreza models to replace engine valve springs that could fracture and cause engine stalling. While not directly linked to P0604, this highlights a known engine issue in this generation that could potentially contribute to erratic engine behavior.
Mechanic-Grade Diagnostic Values
- ECM Ground Circuit Resistance — expected: Below 0.1 Ω. Failure: Resistance above 0.1 Ω indicates a poor ground connection that can cause unstable ECM operation and trigger memory codes.
- Voltage at ECM Connector during Cranking — expected: Above 9.0V. Failure: A drop below 9.0V during engine cranking can cause a 'brown-out' condition, corrupting the ECM's RAM self-test.
- Voltage Drop (Negative Battery Post to Engine Block) — expected: Less than 0.2V. Failure: A reading higher than 0.2V indicates excessive resistance in the main engine ground circuit.
- CAN Bus Resistance (at OBD-II Port) — expected: Approximately 60 Ω. Failure: A reading of 120 Ω suggests an open circuit in the CAN network, while near 0 Ω indicates a short. This is relevant if U-codes are present with P0604.
Hidden / Shadow Codes Worth Checking
- Detail Code 0901: This is a Subaru-specific detail code that accompanies P0604 on 2014-2016 XV Crosstrek Hybrid models when the code is triggered by quickly cycling the ignition. (see via Subaru Select Monitor (SSM4) or equivalent dealer-level diagnostic tool.)
Scan Tool Commands That Help
- Subaru Select Monitor (SSM): Clear Memory Mode — This function should be used after any repair or replacement of a faulty part related to the engine control system to clear all learned values and diagnostic codes.
- Subaru Select Monitor (SSM4): FlashWrite Reprogramming — Used to update the module software. For the XV Crosstrek Hybrid, this is the specific fix for P0604 caused by an ignition cycling glitch. It's crucial to use a stable power supply like the Midtronics GR8 during this process.
- Professional Scan Tool: ECU RAM Test / Memory Test — Some advanced scan tools have a specific routine to test the integrity of the ECM's RAM. A failure of this test directly confirms an internal hardware fault, justifying ECM replacement.
- Manual Procedure (No Tool): ECU Idle Relearn Procedure — After disconnecting the battery (a common step in diagnosing P0604), the ECU loses its learned idle values. To perform a relearn, start the engine and let it idle without any accessories on for 10-20 minutes until the radiator fan cycles on and off twice. This helps stabilize the idle and prevent related codes.
Wiring & Ground Locations
- Main Engine Ground — Bolted to the top of the intake manifold. The ECU itself gets its primary ground reference from this point.. This is the most critical ground for the ECU. High resistance here due to corrosion or looseness directly causes unstable ECU operation and can trigger memory faults like P0604.
- Main Fuse & Relay Box — Under the hood, in a black box located behind the battery on the passenger side.. This box contains the main relay and fuses that supply power to the ECM. A faulty relay or poor connection here can interrupt power and cause memory codes.
- Secondary Relay Box — Under the hood, on the front left (driver's) side.. Contains additional critical system relays that could influence ECU operation.
- Interior Fuse Panel — Under the driver's side dashboard, behind a small compartment door above where the driver's left foot rests.. Contains fuses for various control modules. A blown fuse here could cause communication errors or power issues that might accompany a P0604 code.
Real Owner Repair Stories
- Reddit user in r/subaru (2013 Subaru Impreza) — Check engine light, traction control light, and cruise control light flashing. Codes P0604 and P0606 present.
❌ Tried (didn't work) Initially suspected a bad ECM.
✅ What actually fixed it Replacing the battery. The user noted the old battery was weak and replacing it resolved all codes and symptoms.
Diagnostic Flowchart
Used vs. New Parts: Buying Guide for This Vehicle
When a used part is the smart pick: A used Engine Control Module (ECM) from a salvage yard is a cost-effective option, but ONLY if you use a specialized service to clone the data from your original ECM to the used one. It is not a plug-and-play part.
Donor-vehicle mileage cap: roughly under 150000 miles for the part to have meaningful remaining life.
What to inspect on the donor part:
- Ensure the part number on the donor ECM is an exact match to your original unit.
- Inspect the donor ECM's connectors for any signs of corrosion, bent pins, or water damage.
- Source the part from a vehicle that was not involved in a flood or fire.
OEM-only on this vehicle (don't cheap out):
- Engine Control Module (ECM) - While a used OEM unit is viable with cloning, brand-new aftermarket ECMs are generally not available or recommended for this vehicle. The safest options are a new OEM unit from a dealer or a properly cloned used OEM unit.
Aftermarket brands forum-validated for this vehicle:
- Battery: Odyssey (AGM), Deka, Interstate
- Grounding Kit: iWire Services (recommended as an upgrade to prevent future issues)
Brands owners have reported issues with on this vehicle:
- No-name, ultra-cheap online ECMs that claim to be 'plug-and-play' without requiring VIN and key programming.
Real Owner Stories
Aggregated from forums and TSBs cited above. Mileages and costs reflect what owners reported in those sources.
2012-2016 Impreza
Symptoms: After a dead battery and receiving a jump start, the car ran but the Check Engine Light came on with code P0604.
What fixed it: Replacing the weak battery and clearing the codes permanently resolved the issue.
Source hint: Owner Experience: Immediate P0604 After Jump Start
Subaru Impreza (FB20 Engine)
Symptoms: Persistent, seemingly random electrical codes, including P0604, that were previously misdiagnosed.
What fixed it: Locating the main ECU ground wire on the intake manifold, unbolting it, cleaning the contact surfaces to bare metal with a wire brush, and re-securing it.
Source hint: Real-World Fix: Cleaning the Intake Manifold Ground
2016 WRX
Symptoms: Check Engine Light with a P0606 code (a related ECM fault) appeared after having a dead battery.
What fixed it: Following the procedure from TSB 07-75-13R: waiting at least one minute after reconnecting the new battery before turning the key.
Source hint: r/subaru on Reddit: A thread discussing a P0606 code... after a dead battery on a 2016 WRX
Related OBD-II Codes
Frequently Asked Questions
My Check Engine Light came on with P0604 right after I jump-started my 2014 Impreza. Is this a coincidence?
I disconnected my battery to clean the terminals and now I have a P0604 code. What did I do wrong?
I'm getting weird electrical issues and a P0604 code. Where is the most important ground for the ECU on my Impreza?
Is the P0604 code always a sign that my ECM is bad and needs to be replaced?
Can a bad alternator cause a P0604 code on my Subaru?
I have a 2013 Impreza and heard about a recall. Is it related to this P0604 code?
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.
- Subaru Impreza:
- 🧭 Diagnostic Flowchart
- 🎬 Helpful Videos
- 🛍️ Shop This Part
- What's Unique About the 2012-2016 Subaru Impreza
- 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
- Used vs. New Parts: Buying Guide for This Vehicle
- Real Owner Stories
- 2012-2016 Impreza
- Subaru Impreza (FB20 Engine)
- 2016 WRX
- Related OBD-II Codes
- Frequently Asked Questions
- 🎟️ Get 5% Off