Short answer: an "ECM code" is a diagnostic trouble code that your vehicle's engine computer (ECM or PCM) stored when it found a problem, often with the check engine light on. Most codes point at a sensor, a wire or another part, not at the computer. A small family of codes, P0600 to P0607 and their relatives, does point at the computer itself, and even then the carmakers' own bulletins tell technicians to check power, grounds, the battery, a sensor or the software first. Below is how to read a code, which ones point at the computer, and what GM, Ford, Chrysler, Toyota, Honda, Subaru and Hyundai say to check before you replace it.
Every source is a maker's service bulletin or a government document, linked at the end. Codes and fixes are specific to the vehicles each bulletin covers, so use them as a guide to what to check, not as a diagnosis for your vehicle.
What an ECM code is
The U.S. Environmental Protection Agency explains that on-board diagnostics (OBD) is a computer-based system built into all 1996 and newer cars and light trucks. It watches the engine's major parts and the emission controls, warns the driver with the "Check Engine" light (also called the malfunction indicator light, or MIL), and stores information about the fault that helps a technician find and fix it. The EPA adds that this information has been standardized since the 1996 model year, and that technicians read it before they start a repair.
How to read the code
A Maryland Department of the Environment guide for repair shops breaks a code into five characters:
- The first character is a letter for the system: P for powertrain, C for chassis, B for body and U for the vehicle's computer network.
- The second character says who defined it: 0 and 2 are generic codes defined by the Society of Automotive Engineers, 1 is specific to the maker, and 3 can be either depending on the code.
- The third character is the area. In P codes, 2 means ignition system or misfire, 5 means computer and auxiliary inputs, and 6, 7 and 8 the transmission. That is why codes about the computer start with P06.
- The fourth and fifth characters name the exact fault. Newer codes can use letters here too, such as P062F.
The same guide lists U00 codes as network electrical and U01 and U02 codes as network communication. It also warns that makers sometimes use their own meaning for a code, so always check the definition for your vehicle.
Codes that point at the computer itself
These are the codes owners search most when they think the computer is bad. The meanings below are the makers' own wording:
- P0606, ECM/PCM processor: Honda and Toyota bulletins use this name. GM calls it control module processor performance.
- P0604, internal control module RAM, and P0607, ECU internal performance: the names in Chrysler's bulletin 18-052-19 for the 2019 Ram 2500 and 3500 with the 6.7L Cummins.
- P0601 to P0604, P0606, P062B, P062F and P0630: GM lists these together in bulletin PIP5609 as codes that can lead a technician to replace the engine computer.
- P0630, VIN not programmed or mismatch: Hyundai's name. It sets when the vehicle's VIN has not been written into a new engine computer.
- P0633, SKIM secret key not stored in PCM, and P0513, invalid SKIM key: Chrysler's names for anti-theft (immobilizer) codes. See our guide to P0513 and P0633.
What the makers say to check before replacing the computer
Even when a P06 code names the computer, the makers have found other causes again and again:
- Power and grounds (GM): bulletin PIP5609 covers the 2016-2018 Silverado, Sierra, Tahoe, Suburban and Yukon with the 5.3L or 6.2L, the 2016-2018 Escalade 6.2L and the 2016-2018 Malibu 1.5L. It says low voltage or a short loss of power or ground at the ECM can set P0601-P0604, P0606, P062B, P062F, P0630, P16F3 or P262B. Before replacing the ECM, verify every power and ground circuit and the terminals; replace the ECM only if they are all good.
- A camshaft sensor (GM): bulletin 17-NA-132 for some 2017-2018 Silverado, Sierra, Express, Savana and Cruze with the LH7, LWN or L5P engine says an open in the cam sensor circuit can set P0606 and a no-start, and says not to replace the ECM.
- Software (GM and Chrysler): GM's bulletin 20-NA-144 fixes P0606 on some 2016-2017 ATS, CTS, Cruze and Malibu with stop/start by reprogramming the ECM. Chrysler's 18-052-19 reprograms the PCM on the 2019 Ram 2500 and 3500 6.7L for a list of codes that includes P0604 and P0607.
- Aftermarket spark plugs (Honda): Honda's ServiceNews A15120C for the 2006-2008 Civic and Civic GX and the 2006-2011 Civic Hybrid says spark plugs with a built-in capacitor can cause interference that sets P0606. Put the recommended plugs back, clear the code and retest.
- An oxygen sensor (Toyota): Toyota's bulletin T-SB-0001-10 for some 2005-2010 Avalon, Camry, Highlander, RAV4, Sienna and Venza with the V6 says P0606 can come from a bad rear oxygen sensor, and the repair is the sensor.
- The battery (Subaru and GM): Subaru's bulletin 07-75-13R for turbo models says P0606 can set after the battery is disconnected, goes dead or the memory is cleared; the fix is clearing the memory and one normal ignition cycle. GM's bulletin 24-NA-050 says a low battery or a charging event can set P0606 in the 2024 Silverado and Sierra HD brake module, and the fix is testing the battery.
Codes that look like the computer but point somewhere else
- U0100, lost communication with ECM/PCM: GM's PIT4667D says a lost-communication code does not mean the module that set it has failed, and GM's other bulletins trace these codes to connectors, wiring and grounds. Ford's TSB 16-0129 for the 2011-2016 Fiesta and 2012-2016 Focus with the DPS6 automatic shows U0100, U0101 and P0606 together pointing at the transmission control module, which is the part replaced there.
- P0700, transmission control module requested check engine light: GM's PIC4740F gives this definition, and GM's PIP5109E says P0700 stored in the ECM comes from the transmission module and should not need a new ECM. Look for the code in the transmission module that came with it.
For the other things that kill or mimic a bad engine computer, see what really kills an ECM, and for the other modules that set codes, how many computers are in your car.
When the code does mean a new computer
GM's PIP5109E for the 2014-2015 Silverado, Sierra and other V6 and V8 models says that if the ECM has set P0601, P0604, P0606, P062F or P16F3, a new ECM is released. Two things to know before it goes in:
- It must be set up for your vehicle. Hyundai's bulletin 19-FL-003H says the VIN has to be written into a new ECM or PCM, or P0630 sets, and that a module from another vehicle should not be used as a permanent repair.
- It must match the anti-theft system. See our guides for Ford, Dodge, Chrysler and Jeep and Chevy and GMC.
A quick check before you replace the computer
- Write down every code from every module, not only the engine, with the letter and all four characters.
- Look up the meaning for your make; the same code can mean something different between makers.
- Test the battery and the charging system, and clean and tighten the battery cables and grounds.
- Check the power and ground circuits and connectors at the computer.
- Look for service bulletins and software updates for your vehicle and the code.
- Fix any sensor or wiring code that came with the computer code first, then clear the codes and drive to see what returns.
Frequently asked questions
What does "ECM code" mean on a car?
It is a diagnostic trouble code stored by the engine computer (ECM or PCM). The EPA explains that the on-board diagnostic system watches the engine and emission parts, turns on the check engine light when it finds a fault, and stores information about it that a technician reads with a scan tool.
Does P0606 mean my ECM is bad?
Not always. P0606 names the computer's processor, but the makers' bulletins trace it to low voltage or a bad ground (GM), a cam sensor circuit (GM), software (GM), aftermarket spark plugs (Honda), an oxygen sensor (Toyota) and a battery reconnect (Subaru). Check those first.
Can a bad battery cause a P0606 code?
The makers describe it. Subaru says P0606 can set after a dead or disconnected battery on its turbo models, GM's PIP5609 names low voltage or a loss of power at the ECM, and GM's 24-NA-050 traces P0606 in a brake module to a low battery or charging event.
Can a bad O2 sensor cause a P0606 code?
On some vehicles, yes. Toyota's T-SB-0001-10 says a faulty rear oxygen sensor can set P0606 on some 2005-2010 V6 models, and the repair is the sensor.
What does U0100 mean?
Lost communication with the ECM/PCM. Another module could not hear from the engine computer. GM says this kind of code does not mean the module that set it failed, and wiring, connectors and grounds are common causes.
How do I clear an ECM code?
A scan tool can clear it, but fix the cause first or it will come back. Some makers add steps: Subaru's bulletin 07-75-13R, for example, has the technician clear the memory and then let the computer finish one normal shut-off cycle before turning the key back on.
Engine computers from NPC Automotive Computers
If the code and the checks above do point at the computer, we sell remanufactured engine and transmission computers. Every NPC unit is remanufactured and programmed before it ships, and it comes with a lifetime warranty. Order with your VIN and the part number from the label on your old computer. Each listing says whether the unit is Plug & Play, with no dealer or locksmith visit needed after install, or programmed to your VIN, in which case plan for the key or theft-deterrent relearn at a dealer, a shop with the maker's tools, or a locksmith. Not sure which unit fits? Call us before you order and we'll check it with you.