Control unit faults on itself: P0600, P0601, P0603, P0606
A code about an internal control unit fault sounds like a bill for thousands. In reality the culprit is usually not the unit but its power supply — and the terminals are what to check, not your savings.

Let us start with the main point, because that is what people come here for: P0601 on its own does not mean the unit must be replaced. It means the unit checked itself and did not like the result. There are several reasons for that, and a dead chip is not the first.
What the codes mean
P0601, P0605 — memory and ROM error. The unit compared the checksum of its own program with the expected one and they did not match.
P0603, P062F — keep-alive memory. That is the part holding the learned values: fuel trims, throttle position, the habits of this particular engine. It is powered continuously, and a break in that supply wipes it.
P0600 — internal serial link, P0606 — processor fault.
P0685 — main relay circuit. This code explains half of the others: the main relay keeps the unit powered for a few seconds after the ignition is switched off — precisely so it can write what it has learned into memory. If that fails, the data is not saved and at the next start the unit finds rubbish.
P0630 — VIN not programmed or mismatched. A story of its own, see below.
Why it is more often the supply than the electronics
Three common causes, none of which costs what a new unit does:
- A voltage drop while cranking. A flat battery pulls the voltage below the threshold, the unit reboots mid-operation and logs an internal fault. U codes — lost communication — appear at exactly the same moment.
- Jump starting and battery chargers. The spike at the moment of connection is a classic cause of P0603.
- A poor ground. Not «no contact» but «contact with resistance»: the unit gets the wrong reference and calculates rubbish.
It is checked with that same single reading — control module voltage; the procedure with numbers is in charging and vehicle voltage.
P0630 and buying a car
The VIN is stored in the unit. P0630 means it is not programmed, or does not match what the other modules expect. The reasons can be innocent — the unit was replaced after a crash and never coded — and they can be otherwise.
So when checking a car before buying it is worth comparing the VIN from the app with the documents and the body. Step by step in how to check a car before buying.
Not to be confused with P1000
P1000 looks like a control unit fault but is not one. It means «self-diagnosis not complete»: the car has not yet had time to test its systems after a reset or a battery disconnection.
It appears on a perfectly healthy car and goes away by itself after a few drives — but it will fail an emissions test. Why that is and what to do is in readiness for the emissions test and in how to prepare.
Incidentally, the P1 in the number means the code is manufacturer-specific rather than generic — how to read the whole number is covered in what the letters and digits in a code mean.
What to do
- Check the terminals, the engine ground and the voltage with the engine running.
- Recall whether the car was jump started or the battery removed.
- Clear the code and drive for a few days. If it does not return, it was a one-off supply dropout and there is nothing to replace.
- If it returns with a healthy supply, it is a question for the workshop — but arrive with the supply already verified, or the conversation will start with replacing the unit.
⚠️ And remember: silence from a module in response to a request is not «no faults». Why — in «no response».


