ECU File Formats: .bin, .ori, .mod, .hex, .frf, .sgo, .odx and Tool Containers Explained
The ZIP from us contains one file, VW_GOLF_EDC17C46_03L997018D_9979.bin. The tool on the bench wants “a project”, the customer’s previous tuner sent something ending in .mod, and the dealer’s ODIS log mentions an .frf. Same ECU, four names. Here’s what each one is and which ones can be turned into another.
Raw binaries: .bin, .ori, .mod
All three are the same thing: a byte-for-byte image of the memory, with no header, no compression and no encryption. The extension is a naming habit, not a format. .ori means “original” in WinOLS convention, .mod means “modified”, .bin means nothing at all. Rename freely; the tool reads bytes, not names. Size is the only thing to check: an EDC17C46 internal flash is 2 MB, a VW TOUAREG EDC17CP14 7L5907401A 0030 1037503983 DUMP is 4 MB, an EDC15 flash is 512 KB, and an EEPROM dump is 512 bytes to 32 KB. A dump for a dashboard or a key module (BMW X1 E84 CAS3 6135 9287534-01 5WK4 9516PBR DUMP) is a small raw binary too.
Text-encoded images: .hex and .s19
Intel HEX (.hex) and Motorola S-record (.s19, .srec) hold the same bytes as a .bin but as text lines with addresses and per-line checksums. You’ll meet them on Iveco and agricultural EDC17C49 files, where the software itself is named as a hex file, e.g. IVECO DAILY EDC17C49 0281030169 A107350V5LB0ABQI0A964P04.HEX 1037513112 IMMO OFF DUMP, and on some Delphi and Denso factory files. Opening a .hex in a tool that expects .bin gives you a file of ASCII characters, which will not write. Convert with WinOLS (it imports both and exports .bin) or any srec utility. Going .bin to .hex is only needed if a factory tool asks for it.
VAG containers: .frf, .sgo, .odx
.sgo is the older VAS 5051/5052 flash container, .frf is the ODIS-era one (compressed and encrypted, holding the flash data plus the ECU identifiers and flash sequence), and .odx (ODX-F) is the diagnostic-standard container ODIS-E and VCP use. All three are written by a dealer-type tool over OBD, not by a chip-tuning tool. They contain the whole program for a software version, so they update the ECU software as well as the calibration, which is why they’re the right answer for a corrupted ECU that still talks (our FRF/SGO category and the original vs virgin vs FRF post cover when to use which). Extracting the .bin out of an .frf is possible with utilities and it’s how many “originals” were built; putting a .bin into an .frf is not a workshop job.
Tool containers
KESS3, KTAG and KESS V2 under K-Suite, Flex, Autotuner, bFlash, New Trasdata: each stores reads in its own project format, encrypted so that a slave tool can only use files from its master. The master version exports and imports plain .bin. Nothing about the ECU is in the encryption, it’s the tool’s licensing. So:
- A slave file cannot be opened by us or by any other tool. Ask your master to export the .bin.
- A master’s exported .bin is a normal binary; we can work with it.
- Our .bin has to go back through a master to reach a slave tool.
- A virtual read on MD1/MG1 is a stock file in the tool’s format, not a memory image; it’s fine for tuning, not for immo or cloning.
Other manufacturers’ factory formats
BMW ISTA/WinKFP uses .0da/.0pa program and data files, Ford IDS uses .vbf, Mercedes Xentry uses .smr-f, PSA Diagbox uses .cal/.ulp. These are dealer flash containers like .frf, written by the dealer tool, and the only brand where we deliver anything like them is VAG. For a Ford SID208 or a Mercedes CRD3 what you get from us is the .bin for a bench or OBD write with a tuning tool.
What the shop delivers, and what to convert
- Original, immo off, virgin, DPF/EGR files: one .bin (sometimes flash plus a separate EEPROM .bin) in a ZIP, named with the software numbers from the title.
- Dashboard, airbag, CAS, FRM, BCM dumps: raw EEPROM .bin, one file per chip.
- VAG FRF/SGO: the container itself, for ODIS or VCP.
- Convert .hex to .bin: yes, safely. Rename .ori/.mod to .bin: yes. Convert .frf to .bin: only if you know why. Convert anything into a tool container: only the tool can.
One honest caveat: a .bin is only a “format” in the sense that the bytes are raw. Whether it’s a full read, a calibration-only read, a boot read with the external flash appended or an OBD read with the tool’s patch in it is not visible from the extension. When you send us a file, say which tool and mode produced it.
Matching files by ECU: EDC17C49, EDC17CP14, dashboards under dashboard. For anything in a format you’re not sure about, upload it with the label to the request form and we’ll tell you what it is.
More ECU guides
OBD, Bench or Boot Mode? How to Read and Write EDC17 and MED17 ECUs
Bosch EDC17 (diesel) and MED17 (petrol) control units are in tens of millions of cars built between 2007 and 2020, from Volkswagen and BMW to Hyundai,…
DTC Off Explained: Which Fault Codes to Disable on EDC16, EDC17 and SID ECUs
A customer's Vectra C comes in with the EGR blanked by the previous owner, a P0401 on the tester and a lamp that comes back every…
BMW EDC16C1, EDC16C31, EDC16CP35 DDE Virgin Files and EWS Alignment for E46, E60, E70, E83
The label on the DDE from a 2005 E60 530d reads 0281011224, 1037361861, and below that 'O 86OS62'. The car came with a dead engine ECU…