Technical Guide

What is MDF4? A guide to ASAM MDF4 for automotive engineers

Everything you need to know about the ASAM MDF4 measurement data format — file structure, signals, tooling, and how to analyze MDF files in 2026.

By the Vehicle Lab engineering team Last updated 8 min read

Quick answer

MDF4 (ASAM MDF version 4) is the standard binary file format for storing automotive measurement data — the recordings produced during vehicle tests, dyno runs, and calibration sessions. Defined by ASAM e.V., an MF4 file holds time-series signals together with rich metadata: signal names, physical units, conversion rules, channel groups, and embedded attachments such as CAN databases or A2L calibration files. Compared with the older MDF3, MDF4 removes the 4 GB size limit, adds nanosecond time resolution, built-in compression, and native bus logging for CAN, CAN FD, LIN, FlexRay, and Ethernet. Because it is an open, vendor-neutral standard, MDF4 is the de facto exchange format between OEMs, Tier-1 suppliers, test-equipment vendors, and calibration toolchains across the industry.

What is MDF4?

MDF4 — or ASAM MDF version 4 — is the binary file format used across the automotive industry to store measurement data captured during vehicle tests, dyno runs, calibration sessions, and road campaigns. The format is defined and maintained by ASAM e.V. (Association for Standardisation of Automation and Measuring Systems).

An MDF4 file (extension .mf4) holds time-series signal data alongside rich metadata: signal names and descriptions, physical units, conversion rules (e.g. voltage → temperature), channel groups, and attachments such as CAN databases or calibration files. A single MF4 from a highway test might contain thousands of simultaneously logged signals — CAN bus messages, ECU parameters, analog sensor readings, GPS coordinates, and accelerometer data — at varying sample rates, all time-aligned in one file.

This makes MDF4 the de facto data exchange format between OEMs, Tier-1 suppliers, test equipment vendors, and calibration tool providers across the industry.

MDF4 file structure

MDF4 uses a block-based binary structure. Understanding the main blocks helps when debugging signal extraction or building tooling around the format:

HD — Header block

Contains the file start timestamp, measurement duration, author, project, and subject metadata. The root of the block hierarchy.

CG — Channel group blocks

Groups channels that are sampled synchronously (same time base). A file may have many CGs — one per CAN message, one for ECU parameters at a fixed rate, one for GPS, etc.

CN — Channel blocks

Defines individual signals within a CG: name, data type, bit offset, byte count, unit, and the conversion block (CC) that maps raw values to physical values.

DT / DR / DZ — Data blocks

DT holds raw sample data. DR is the data list (references multiple DT/DZ). DZ is a compressed data block — MDF4's built-in zip or transposition compression, which often achieves 60–80% size reduction on floating-point signal data.

AT — Attachment blocks

MDF4 can embed files directly inside the MF4: CAN DBC databases, A2L calibration files, calibration data, or even video. AT blocks store these attachments as embedded or referenced external files.

MDF3 vs MDF4 — what changed

MDF3 (.mdf) is still produced by older data loggers and some legacy measurement systems. Here is what MDF4 adds:

Feature MDF3 MDF4
Max file size4 GBUnlimited (64-bit offsets)
Time resolutionMicrosecondsNanoseconds
Data compressionNoneDZ blocks (zip / transposition)
Variable-length data (VLSD)NoYes — for strings, raw byte signals
File attachmentsNoYes — DBC, A2L, video embedded
Bus logging channelsLimitedNative CAN, CAN FD, LIN, FlexRay, Ethernet
Unicode channel namesNo (ASCII)Yes

How to analyze MDF4 files

There are several paths for working with MDF4 data, depending on whether you need a graphical interface, scripted access, or production pipeline integration.

Graphical analysis tools

For interactive signal exploration, overlay plotting, and oscilloscope-style inspection, a dedicated MDF4 analyzer is the fastest way to work. MDX by Vehicle Lab is a professional MDF/MF4 data lab with sub-second loading for GB-sized files, a high-resolution oscilloscope with dual cursors, a variable explorer with cross-DBC signal matching, and offline GPS route mapping. It includes an AI diagnostics layer (DiagAI) for natural-language queries over signal data.

Other graphical tools include ETAS INCA (calibration-focused), Vector CANalyzer (CAN protocol analysis), and neoVI (Intrepid Control Systems).

Python — asammdf

The open-source asammdf library is the standard Python interface for MDF3 and MDF4 files:

pip install asammdf

from asammdf import MDF

mdf = MDF("test_run_highway.mf4")

# Get all channel names
print(mdf.channels_db.keys())

# Read a signal as a pandas Series
rpm = mdf.get("engine_speed_n")
print(rpm.samples[:10], rpm.timestamps[:10])

# Export selected channels to CSV
mdf.export(fmt="csv", channels=["engine_speed_n", "lambda_1", "coolant_temp"])

asammdf handles MDF3 (.mdf) and MDF4 (.mf4), DZ compression, VLSD channels, and bus-logging data transparently. It is the dependency used internally by MDX's backend for file parsing.

MDX Python SDK and REST API

For production automation — batch processing of test campaigns, signal anomaly detection, WLTP analysis across fleets of MF4 files — MDX exposes a Python SDK (mdx_client) and REST API on top of its DuckDB time-series engine:

from mdx_client import MDXClient

client = MDXClient("http://localhost:5001")

# Import a file and get all signals indexed
file_id = client.files.import_file("run_42.mf4")

# Query a signal with LTTB downsampling
data = client.signals.get(file_id, "engine_speed_n", max_points=2000)

# Run misfire analysis
result = client.analysis.misfire(file_id)
print(result["events"])

The REST API allows scripted integration into CI/CD pipelines, test automation systems, or data warehouses — keeping the heavy data processing local while surfacing results via API.

MDF4 vs CSV for vehicle data

CSV is frequently used as a data exchange format in automotive test, especially when teams want something universally readable. But MDF4 has significant structural advantages for measurement data:

  • Multi-rate signals. A single MF4 can store a 1 Hz GPS signal alongside a 10 kHz combustion pressure signal, time-aligned, in one file. CSV requires either resampling (lossy) or separate files per rate.
  • Built-in metadata. Units, conversion rules, channel descriptions, and signal provenance are in the file. CSV has no standard metadata convention.
  • Size. A compressed MF4 is typically 3–5× smaller than the equivalent CSV for floating-point data. A 10-minute highway run at 1000 signals × 100 Hz = 6 GB as CSV, ~1.5 GB as compressed MF4.
  • Random access. MDF4 tools can seek to specific time ranges without reading the full file. CSV requires a full sequential parse.

CSV is reasonable for small exports or sharing isolated signals with external parties. For anything at test-campaign scale, MDF4 is the right format.

Common MDF4 tooling questions

What file extensions do MDF4 files use?

MDF4 files typically use .mf4. Older MDF3 files use .mdf. Some tools write .dat or .mdf4 — these are usually MDF format regardless of extension. The file header magic bytes (MDF at offset 0) identify the format definitively.

How do I view the channel list without reading the whole file?

MDF4's block structure allows reading the channel index without parsing data blocks. In asammdf: MDF("file.mf4", memory="minimum") loads only the index. MDX auto-indexes all channels on import and stores them in a DuckDB catalog, making signal search instant on subsequent opens.

Can MDF4 files store video or GPS data?

Yes. GPS data is typically stored as channel signals (latitude, longitude, altitude, speed) in a low-rate channel group. Video can be embedded as an AT attachment. MDX renders GPS signals on interactive offline maps (MapLibre GL with offline tile bundles) without requiring internet access.

Analyze your MDF4 files with MDX

MDX is a professional MDF/MF4 data lab for OEM test and calibration teams. Sub-second loading for multi-GB files, oscilloscope, GPS mapping, AI diagnostics, and a Python SDK — all offline-first, no data leaves your network.

FAQ

Frequently asked questions

What is an MDF4 file?expand_more

An MDF4 file (.mf4) is a binary measurement data file conforming to the ASAM MDF (Measurement Data Format) version 4 standard. It stores time-series signal data captured during vehicle and powertrain test campaigns — ECU parameters, CAN bus signals, analog sensor readings, GPS data, and more — alongside metadata such as signal descriptions, units, and channel groups.

How do I open and analyze MDF4 files?expand_more

MDF4 files can be opened with graphical tools such as MDX (by Vehicle Lab), ETAS INCA, or Vector CANalyzer. For programmatic access, the open-source asammdf Python library reads MDF3 and MDF4 files and converts them to pandas DataFrames or NumPy arrays. MDX also exposes a REST API and Python SDK for automation.

What is the difference between MDF3 and MDF4?expand_more

MDF4 (introduced in ASAM MDF v4.0 around 2012) adds support for files larger than 4 GB, nanosecond-resolution timestamps, data compression (DZ blocks), variable-length signal data (VLSD), file attachments (AT blocks for CAN databases, calibration files), and bus logging channels. MDF3 is the legacy format still produced by some older data loggers.

What is ASAM MDF used for in automotive engineering?expand_more

ASAM MDF is used to store measurement data from vehicle test campaigns, powertrain test cells, dyno runs, and road tests. Typical signals include engine speed, torque, temperatures, pressures, fuel injection parameters, lambda values, CAN bus messages, GPS coordinates, and accelerometer data. The format is the de facto standard for automotive measurement data exchange between OEMs, Tier-1 suppliers, and calibration tool vendors.

Can I analyze MDF4 files with Python?expand_more

Yes. The asammdf open-source library (pip install asammdf) reads MDF3 and MDF4 files in Python and exports signals as pandas DataFrames or NumPy arrays. MDX, Vehicle Lab's MDF4 analyzer, extends this with a REST API and Python SDK (mdx_client) that adds DuckDB time-series storage, LTTB downsampling, batch analysis, and multi-agent AI diagnostics on top of the raw signal data.