The checksum is a mathematical value calculated on the contents of the ECU file that the control unit checks at startup. If the modified file does not match the checksum, the ECU rejects the firmware and the car goes into limp mode or does not start at all.
Types of checksums in ECU files
- CRC16/CRC32: standard polynomial checksums
- Bosch proprietary checksums: family-specific algorithms (EDC17, MED17, ME9, MD1)
- SHA/digital signature: recent ECUs (post-2018) use cryptographic signatures
How to manage it
Professional tools such as WinOLS have specific checksum plugins for each ECU family. After editing the maps, the plugin automatically recalculates the correct checksum. Without this step, the modified file is unusable.
Common errors
The "doesn't work after flash" is almost always due to wrong checksum. Before accusing the maps, always check the checksum.
Why it exists
The checksum protects the integrity of the firmware: it guarantees that the contents are not corrupted and, on recent ECUs, that they have not been tampered with. Often it is not a single value but a series of checksums for different memory areas (program, calibration, data), each with its own algorithm.
Correct workflow
After modifying the maps, the file must be passed for checksum correction before writing: tools like WinOLS have dedicated plugins for the ECU family that automatically recalculate the values. On the most recent control units the simple checksums are accompanied by cryptographic signatures (RSA/ECDSA): in these cases it is not possible to "recalculate" the signature and this is done via specific procedures or protocols of the tool. Almost all "it doesn't start after the flash" reports derive from incorrect checksums.
Frequently asked question
"I only changed one map and the car doesn't start": in almost all cases the problem is the outdated checksum, not the map. Checksum verification and correction must be done systematically before each writing. On control units with cryptographic signature of the firmware, however, it is not enough to recalculate: a tool protocol is needed that manages the procedure, otherwise the writing is rejected regardless of the content.
