MDF4 converters

The below open source C++ executables let you easily convert raw MDF4 files into other formats.

If you’re using data compression/encryption, the converters also decompress/decrypt your data.

Simply drag & drop files/folders (incl. nested) onto a converter - or use it in your CLI/scripts.

Download & source code

The Linux/Windows builds and source code can be found below:


Converter types


The CANedge records raw data as ‘unsorted’ and ‘unfinalized’. This ensures performance and power safety. Some tools natively support unfinalized/unsorted MF4 (e.g. asammdf and our Python API), while others require that you use the mdf2finalized converter first (see below).

  • Vector CANalyzer supports only finalized & sorted MF4 files, hence the mdf2finalized converter can be used to make your log files compatible (as of Vector’s SP2 update)1

  • MATLAB’s Vehicle Network Toolbox (VNT) supports unfinalized MF4 files2. However, some advanced VNT use cases require that the data is already finalized & sorted (e.g. MF4 data stores). See also our MATLAB sample script


Vector’s ASC format is supported by various CAN tools, e.g. CANalyzer and CANape. The mdf2asc.exe lets you easily convert files into the ASC format for loading in such tools. With the latest SP2 for Vector’s tools, you can also simply finalize the MF4 files (see above).


The mdf2csv.exe enables quick conversion of the raw MDF4 data into a simple CSV format that you can load in text editors, Excel and other tools.


The mdf2peak.exe lets you convert your MDF4 data to PEAK’s TRC format, for use in e.g. PCAN Explorer and other PEAK tools. Default output is the 2.1 format, but you can specify -f 1.1 via the command line.


The mdf2pcap.exe lets you convert raw MDF4 files into pcap format, for loading in Wireshark. Wireshark offers a range of powerful filter/analysis tools and can handle large log files seamlessly. Further, you can utilize our Wireshark plugin to e.g. convert OBD2/DBC data as in asammdf.


If you wish to convert your CANedge MDF4 log files to the CLX000 log file format, this converter lets you do that. When it runs, the converter reads an INI file in the same folder (mdf2clx000_config.ini) that follows the rules used in CLX000 configuration files. This means that you can use the settings in your old CLX000 configuration files to ensure that the output from the CANedge matches your preferred format. You can directly copy the relevant lines from the [log] section in your CLX000 CONFIG.INI file (removing any comments).


The popular socketCAN format is supported by various open source CAN based software. With the mdf2socketcan.exe you can convert raw MDF4 log files for easy loading in these tools.

Encryption & compression

If you’re encrypting or compressing your CANedge data, the converters will serve as a simple method for decrypting and/or decompressing the data again. All converters will natively recognize if your file is encrypted/compressed.

Note that if you have encrypted your files, you will need to add your plain form encryption password in the passwords.json file. You can add a single password as default, or e.g. add a list of device specific passwords by entering the serial number and the password as below:

    "0245BF81": "MySecret22BczPassword1234@482",
    "13FC798A": "MyOtherSecretPassword512312zZ"

CLI options

To use a converter via the CLI type the name in the command prompt to display the options.

Example: Convert a data folder (e.g. log/) into an output folder (e.g. output/) via below:

mdf2csv -I log -O output


For examples on automating the converter usage, see the API examples library on github


The mdf2finalized tool can be used if you’re using the latest SP2 for your Vector tools. If you’re using older versions of Vector tools, we recommend using the mdf2asc converter instead as older versions of Vector’s tools do not support the extended CAN ID syntax used in the CANedge MDF4 files


MATLAB’s Vehicle Network Toolbox supports unfinalized MF4 files as of release 2021b. In short, the tool lets you finalize/sort files as part of your script, rather than e.g. using the mdf2finalized converter