Book a demo

Task · ECU data

ECU data analysis

The recording is the evidence. Everything downstream — a calibration decision, a warranty answer, a release sign-off — depends on reading it without distorting it.

By , Founder & Lead Engineer

In short

ECU data analysis is the work of turning recorded control-unit data — measurement files, bus traffic and fault memory — into answers about how a vehicle behaved. It involves opening large MDF4 or CAN recordings without resampling them, aligning runs so comparisons are honest, resolving signal and calibration labels through the A2L or ECU documentation, and detecting the events that matter rather than scrolling for them. VehicleLab does this locally: MDX indexes multi-gigabyte logs and opens them in an oscilloscope-grade workbench, XHandbook resolves labels to their A2L objects, and DiagAI reasons over the same files with specialist agents.

MDX — cursor at each channel’s own rastercampaign_run_07.mf4
n_Eng rpm 1 ms 2184 sampled r_Ped % 10 ms 38.4 sampled lam_Us — 20 ms 0.987 held · last sample st_Gear — on change 3 held · last sample
Nothing resampled to a common rate · a carried value is marked as carried · shapes illustrative

01

Reading large recordings without distorting them

Test campaigns produce files measured in gigabytes, with channels at very different rates in the same recording. The wrong tool answers by resampling everything to one rate, which quietly removes the moment you are investigating. The right one keeps each channel at its own raster and resolves the cursor independently for each.

Where a display cannot draw every sample, downsampling should select real samples rather than average them, so every point a cursor lands on is a value the ECU actually reported. Held values — carried forward because the signal had not updated — should be marked as such.

  • Memory-mapped readingSub-second indexing of multi-gigabyte logs instead of loading the whole file into memory.
  • Cross-database matchingSignals matched across DBC and OEM naming so runs from different sources line up.
  • Event detectionCut-off windows, misfire, gear hunting and fuel transients found by rule rather than by eye.
  • Derived channelsCalculated quantities produced in the backend and labelled as calculated, not exported to a spreadsheet.

02

The traps that quietly invert an answer

The failures that cost the most time are not crashes. They are analyses that run cleanly and return the wrong sign, and they come from a short list of causes that repeat across programmes.

Resampling everything to one rate is the first: it removes the transient under investigation and replaces it with an average. Dropouts are the second — a channel that reports a zero-coded value while it is invalid will drag any mean, threshold or counter computed over it, so those samples have to be excluded before the arithmetic. The third is naming: the same physical quantity can be labelled differently between two software versions, and an analysis that matches on the label alone will silently report a channel as missing rather than comparing it.

  • ResamplingRead each channel at its own raster. Recordings routinely carry rasters from a millisecond to a hundred, with the transient-relevant channels fastest.
  • Invalid samplesFilter zero-coded and out-of-range values before any threshold, mean or debounce calculation, not after.
  • Alias namesMap equivalent signals across software versions, so a rename does not read as a missing channel.
  • Unsigned accountingSum excursions with their direction. Counting only one side inflates the result, sometimes to the point of inverting the conclusion.

03

Labels, A2L and the documentation behind them

A channel name is only half the story. The calibration object behind it has a type, an address, a record layout, a conversion rule and a unit, and the function that uses it is described in the ECU documentation. XHandbook opens EHANDBOOK containers offline and follows a label from the topic that documents it, through the model block that uses it, to the A2L object itself — and back again.

That link is what turns a measurement session into an explanation: not only what the value was, but which function produced it and which calibration object would change it.

04

Bus data: CAN, CAN FD and the log it arrives in

Most of what people mean by CAN data analysis or vehicle data analysis is this: a recording of bus traffic, decoded into named signals, read alongside the internal ECU variables that explain it. The frames carry no meaning on their own — a DBC or ARXML description is what turns identifier 0x0C9 into engine speed in rpm, and a mismatched description still decodes and still returns plausible numbers.

The recording itself arrives as MDF4, as Vector BLF or ASC, or as CSV, depending on the logger. Converting between those formats to reach a tool that only reads one of them is where timestamp resolution, error frames and CAN FD attributes get quietly dropped, so it is better to open the original than to convert it.

  • Frames to signalsA DBC or ARXML description, matched to the bus configuration that produced the log.
  • Bus and internal togetherDecoded traffic on the same time base as the variables measured over XCP.
  • FormatsMDF4, BLF, ASC, CSV and Excel open directly; no conversion step.
  • J1939Published parameter definitions decode without a vendor database.

05

Automation and agents

Repeated analysis belongs in a script, not in a person. MDX exposes a local REST API and a Python SDK for batch processing across campaigns, and ships an MCP server so AI assistants — Claude, ChatGPT, Codex, Cursor, Gemini — can open files, extract channels and run analyses directly, with the data staying on your machine.

DiagAI adds domain agents over the same files: misfire, DFC, IUPR, gear, drivability, start and warm-up, WLTP, fuel and CAN bus-off, each answering with the evidence it used.

Standards & references

Check the source.

These primary sources define the formats and regulatory context discussed above. They do not certify or endorse VehicleLab products.

Questions

Frequently asked.

What is ECU data analysis?

It is the analysis of recorded control-unit data — measurement files such as MDF4, CAN and LIN bus traffic, and fault memory — to explain how a vehicle behaved: which signals moved, when, in what order, and which calibration objects were responsible.

How do I open very large MDF4 files?

Use a tool that memory-maps and indexes the file rather than loading it whole, keeps each channel at its own raster, and downsamples for display by selecting real samples. MDX indexes multi-gigabyte logs in under a second on ordinary hardware.

Can AI assistants analyse my ECU data directly?

Yes. MDX ships an MCP server with twelve tools over stdio and SSE, so assistants such as Claude, ChatGPT, Codex, Cursor and Gemini can drive the analysis while the files stay on your machine.

What is CAN bus data analysis?

Decoding recorded CAN or CAN FD frames into named, scaled signals and reading them against the question you are trying to answer. The log carries the traffic; a DBC or ARXML description carries the meaning. Without one you have identifiers and bytes rather than engine speed in rpm.

Is CAN data analysis the same as ECU data analysis?

They overlap. CAN data analysis is about the traffic on the bus. ECU data analysis usually also includes the control unit's internal variables, measured over XCP against an A2L, which never appear on the bus at all. A useful investigation normally needs both on one time base.

What formats can be analysed?

ASAM MDF v3 and v4, CSV and Excel for measurement; CAN and LIN bus data; A2L (ASAP2) for calibration description; EHANDBOOK containers (.ehb, .ehbcrypt, .ehbp) for function documentation.

Why not resample every channel to one rate?

Because the moment you are investigating usually lives in the fastest channel. A recording can hold rasters from a millisecond to a hundred in the same file; flattening them to a common rate averages away the transient and then reports the average as the measurement.

How should invalid samples be handled?

Excluded before the arithmetic. A dropout that reports a zero-coded value is not a zero, and leaving it in will drag every mean, threshold comparison and debounce count computed over that window.

Next step

Open one of your own files with us.

Send a measurement, an A2L or an EHANDBOOK container. We will open it in the instruments on a call, with your engineers in the room.