A remap can be perfectly calibrated and still leave a vehicle that cranks but will not start. In many of those cases the maps are fine and the problem is integrity data: the checksum no longer matches the modified file. This guide looks at ECU checksums from a practical diagnostic angle, covering how they are calculated, where they live in memory, which fault codes point to a memory or programming problem, and how to avoid checksum trouble on cars, trucks, tractors and bikes.

Checksums in one paragraph
A checksum is a compact number derived from a block of memory. The control unit keeps a stored copy of that number, recalculates it from the actual data, and compares the two. Change a single map value and the recalculated number changes, so the comparison fails unless the stored value is updated too. Older units often use simple additive sums. Most current units use one or more cyclic redundancy checks (CRCs), which catch a much wider range of errors.
Where the checksums are
Control unit flash memory is not one big block. It is usually split into a bootloader, the application program and one or more calibration regions holding the maps, curves and limiters. Each region can have its own checksum, and a large calibration area may contain several separately protected blocks. That is why correcting only one value is often not enough: every affected block has to be valid.
EEPROM data such as adaptations, variant coding, VIN and immobiliser-related values is stored separately and usually protected by its own integrity checks. An EEPROM restored from a different unit, or written incompletely, can trigger memory or VIN-related faults even when the flash file is correct.
What the control unit does with a bad checksum
Most units check their memory before starting the application, and many continue to monitor memory, processor and torque calculation in the background while running, because corrupted data could produce unsafe commands. When a mismatch is found, the common outcomes are:
- Crank but no start, with the unit remaining in boot or programming mode.
- No communication over the normal diagnostic routine, only via boot or bench access.
- Engine runs in limp mode with an internal memory or processor code stored.
Checksum vs signature
Recent ECU generations often add a cryptographic signature check. A checksum proves the data is internally consistent; a signature proves it was produced by an authorised source. A signature cannot simply be recalculated like a checksum, which is why some newer units require dedicated tool protocols, boot access or are not writable at all with a given tool. If the exact ECU and software version are not supported by your tool, do not force a write.
Who corrects the checksum
For supported protocols, master tools such as KESS, K-TAG, Autotuner and Flex usually recalculate checksums automatically during the write. In WinOLS, checksums are handled by optional modules for specific ECU families, so the corrected file leaves the editor ready to write. Either way, correction depends on the correct identification of the ECU, software version and memory layout. A wrong definition, a partial read or a file converted badly between tool formats is the usual reason a correction fails.

Related fault codes (DTCs)
| Code | Meaning | Typical causes |
|---|---|---|
| P0601 | Internal Control Module Memory Check Sum Error | Uncorrected checksum after editing, corrupted flash, interrupted write, internal fault |
| P0602 | Control Module Programming Error | Unit not programmed, incomplete programming, incorrect software |
| P0603 | Internal Control Module Keep Alive Memory (KAM) Error | Permanent supply lost, battery disconnected, ground fault, internal fault |
| P0604 | Internal Control Module Random Access Memory (RAM) Error | Internal fault, unstable supply voltage |
| P0605 | Internal Control Module Read Only Memory (ROM) Error | Corrupted flash, failed reprogramming, internal fault |
| P0606 | Control Module Processor | Processor or monitoring fault, supply or ground problems |
| P0607 | Control Module Performance | Internal fault, supply voltage issues |
| P062F | Internal Control Module EEPROM Error | Corrupted or incompletely written EEPROM, internal fault |
| P0610 | Control Module Vehicle Options Error | Unit not coded for the vehicle variant |
| P0614 | ECM / TCM Incompatible | Software or part number mismatch between engine and transmission units |
| P0630 | VIN Not Programmed or Incompatible – ECM/PCM | VIN missing or mismatched after replacement, wrong EEPROM data |
| U0100 | Lost Communication With ECM/PCM “A” | Unit stuck in boot mode after a failed write, power or ground loss, CAN fault |
Diagnosing a suspected checksum problem
- Check battery and supply voltage first; low voltage during a write is a classic cause of corrupted memory.
- Read fault codes. P0601, P0602 or P0605 right after a write point strongly to the flash content.
- Try to identify the unit with your tool. If it only responds in boot or bench mode, the application is probably not being started.
- Compare the written file with your original backup and confirm the editor or tool reports a valid checksum.
- Restore the original file if needed, then re-check codes before trying a corrected modified file.
Prevention is cheaper than recovery
Use a stabilised power supply, save a complete original read and keep it untouched, confirm the ECU and software ID from the read, and make sure the checksum is valid before writing. Truck and agricultural units are often from the same supplier families as car units, and motorcycle ECUs follow the same principles, so the same discipline applies across all of them. When buying a file, ask whether it is supplied checksum-corrected or whether your tool corrects it on write.
Looking for original ECU files and engineered calibrations? Browse the ECUFlashFiles shop.