How to Read an ECU Dump in Hex: VIN, Immo Data, Mileage and Checksums in EDC16/EDC17 Files
You’ve got a file called read.bin from a colleague, 524,288 bytes, no label photo, and the question is whether it belongs to the EDC16C34 on the bench or to something else entirely. A hex editor answers that in two minutes. It won’t turn you into a file editor, but it will stop you writing the wrong file, and that’s most of the value.
Two free options: HxD handles big files and has a compare function; WinOLS in demo mode opens any .bin, shows the hex view, finds maps and compares two files, it just won’t save. Either does the job below.
File size tells you the memory type
Sizes are exact powers of two, or close to them, and each corresponds to a chip:
- 512 bytes: 95040 EEPROM (EDC15 immo, older dashboards)
- 1,024 to 8,192 bytes: 95080/95160/95320/95640 EEPROM, or 24C04 to 24C64 on Marelli and dashboards
- 16 to 32 KB: 95128/95256 EEPROM, the external EEPROM on MED17 and EDC17 on most versions
- 512 KB: 29F400 flash, EDC15P+, EDC15VM+, Sirius 32, Simos 3PE
- 1 MB: 29F800, ME7.1.1, ME7.5, EDC16 on many brands
- 1.5 MB (1,572,864 bytes): TC1766 internal flash, EDC17C10 type units
- 2 MB: TC1767, most EDC17C46/C54 and MED17.5 reads; also EDC16 with 29F160
- 4 MB: TC1797, EDC17CP14, EDC17CP44, MED17.1.1, and many “full” reads that bundle the external flash
So the 524,288-byte file above is 512 KB. It is not an EDC16C34 flash. It could be an EDC15 flash or a partial read from a tool that only pulled the calibration area. Check before writing anything.
Finding the VIN
Search for the text (HxD: Search, Text string). EDC17 EEPROM and most EDC16 flash reads hold the VIN as plain ASCII, often twice. On VAG units the software number also appears as text near the start of the internal flash: in VW GOLF EDC17C46 03L997018D 9979 1037561782 DUMP you’ll see “03L997018D” and “9979” together, and “1037561782” a bit further on. That is the fastest way to confirm a file matches a label. BMW files have the “O” code, e.g. BMW 320D E90 EDC17C41 0281017520 1037522657 O 7CPBKF521A DUMP, in the flash as text too.
Immo data
On EDC15 the immo block is in the 95040 dump; on ME7.5 in the flash; on EDC16/EDC17 in the external EEPROM. In an original file it’s a short block of non-random bytes surrounded by 0xFF or repeated patterns. In a Renault Sirius 32 read (RENAULT MEGANE SIRIUS32 8200029658 8200055742 IMMO OFF DUMP) the key code sits in the flash. We’re not going to give offsets here because they move between software versions and half the “immo off by editing two bytes” tutorials end in a non-starter. What you can do is see whether the block is present and whether it looks like a virgin (all FF) or a coded unit; that changes whether you need an immo off or a virgin file.
Mileage
Dashboard EEPROMs store the odometer in several copies, frequently inverted or with an offset, in a 93C46/93C56/93C66/93C86 or 24C-series dump. You’ll see a repeated 3 to 6 byte group near the start. Converting to km is model-specific; tools do it. Engine ECUs on EDC17 also keep a mileage counter in EEPROM, which is why a used ECU from a breaker can show the donor’s km. For anything mileage-related the legal position in the EU is simple: correcting to match the vehicle after a cluster swap is fine, anything else isn’t.
Checksums
You cannot see a checksum in a hex view, only its consequences. Compare an original with a modified file from a known-good tuner: the differences are the maps plus one or two small changed areas at fixed positions. Those are the checksum words. If your modified file differs only in the maps, the checksum wasn’t corrected and the ECU will reject it or go to limp mode.
Comparing two reads
Read the ECU twice, then HxD: Analysis, Data comparison. A clean read shows zero differences. WinOLS demo does the same in its compare view and highlights blocks. Use this after every bench read and you’ll never write a corrupted file.
Can I fix the file myself once I see the bytes?
For immo data and mileage: usually not without the offsets and the checksum routine, which is why we sell the finished file. For a stock file with a wrong VIN: yes, editing the VIN is safe on most EDC16/EDC17 EEPROMs, but only where no checksum covers it.
Original reads to compare against are under original files, dash EEPROMs under dashboard. If a file looks wrong in the hex view, attach it and the label photo to the request form and we’ll say whether it’s usable.
More ECU guides
Dashboard EEPROM Dumps: Instrument Cluster Repair, Replacement and Mileage Correction
The instrument cluster is a small computer: it stores mileage, service data, vehicle configuration and, on many cars, part of the immobilizer. When it fails, shows…
Volta 1.2 Immo Off: Marelli IAW 4AF / 59F ECU on Fiat Punto, Panda and Lancia Y
"Volta" is the Fiat workshop name for the Magneti Marelli IAW 4AF and IAW 59F engine controllers fitted to the 1.2 8v FIRE engine in the…
Swirl Flap Delete on BMW M57/N47 and VAG 2.0 TDI: Blanking Plates Plus EDC16/EDC17 File
An E60 530d with the M57 comes in on a recovery truck: sudden loss of power, rattling, and when you pull the intake manifold you find…