Canmetry
Open workbench

Every CAN frame in your BLF, one row each

Export raw frames, not decoded signals: a CSV for Excel, pandas or a database, with the byte layout, ID format and file size under your control.

Step 1 of 3 · Upload logs

Drop your BLF file here

or

.blf files up to 150 MiB, up to 5 at a time. Conversion runs in your browser, so files stay on your computer.

CAN · CAN FD · 1 µs timestamps

What a table of frames is good for

A trace is for reading one stretch of a capture. A table is for asking questions of all of it.

  • Filter and pivot in Excel

    Sort by ID, keep one channel, or pivot a count of frames per ID to see which messages dominate the bus.

  • Load it into pandas, R or SQL

    One row per frame means a group-by on the ID column gives message counts, and a diff on the time column gives each ID's real cycle time.

  • Watch a single byte

    With one column per byte, a rolling counter or a status flag is a column you can chart or filter, with no slicing of hex strings.

  • Share a capture with someone who has no Vector tools

    A CSV opens anywhere. A colleague or a supplier can read your frames without CANoe, a BLF reader or a script.

Shape the table before you export

Four choices decide how the CSV reads. The defaults are the compact form; the others are there for spreadsheets.

Data bytes: one column or one per byte

One column keeps the payload as a hex string such as 8F 02 11. One per byte adds D0, D1 and onward, sized to the longest frame in the log.

ID: hex or decimal

Hex matches what a DBC and CANoe show. Decimal is easier to sort, join and compare in numeric tools.

Time: from the first frame or Unix epoch

Seconds from the first frame start every capture at zero. Unix epoch keeps the wall-clock time when the BLF recorded it.

File size: one file or Excel-safe parts

Excel stops at 1,048,576 rows. The split option writes parts of 1,000,000 rows, each with its own header row.

What each column holds

Every row is one frame as the logger recorded it. Nothing is decoded or filtered.

Time (s)ChannelID (hex)LengthData (hex)
0.00000011A088F 02 11 00 00 00 00 3C
0.01000313E8800 40 1F 00 01 00 00 00
0.012180218DAF1101262 F1 90 57 41 55 …
ColumnExampleMeaning
Time (s)0.012180Seconds from the first frame, with microsecond precision, or Unix seconds if you choose that.
Channel2The channel number, counted from 1 as CANoe does.
ID (hex)18DAF110The arbitration ID without 0x. A 29-bit ID shows all of its digits.
ID format29-bit11-bit for standard IDs, 29-bit for extended ones.
TypeCAN FDCAN, CAN FD, Remote or Error.
Length12Payload length in bytes, up to 64 on CAN FD.
Data (hex)62 F1 90 …The payload in hex: one column, or D0, D1 and onward.

Open it in Excel, pandas or DuckDB

The file is UTF-8 with a header row, so it opens without an import wizard.

drive_part1.csvData → Get Data → From FolderID (hex) → Text

Excel

Double-click the file. If you chose Excel-safe parts, load them together with Data, Get Data, From Folder. Set the ID column to Text so an ID such as 1E3 is not read as a number.

import pandas as pd
df = pd.read_csv("drive.csv",
                 dtype={"ID (hex)": str})
# cycle time of one ID
df[df["ID (hex)"] == "1A0"]
  ["Time (s)"].diff().describe()

pandas

Read the ID as a string so values like 1A0 and 257 stay in one column type.

SELECT "ID (hex)", count(*) AS n
FROM 'drive.csv'
GROUP BY 1 ORDER BY n DESC;

DuckDB

Query the file where it is, with no import step.

Limits, file size and big captures

A frame table gets large quickly. These are the numbers to plan around.

  • One file holds up to 2,000,000 rows

    With one file, a log with more frames stops with a message. With Excel-safe parts, one log can hold up to 5,000,000 frames as long as the CSV stays under about 400 MB.

  • Roughly 90 to 140 bytes per row

    The hex layout is the smaller one. One column per byte on CAN FD is the larger. A part of 1,000,000 rows is about 90 to 140 MB.

  • Five logs of up to 150 MiB at a time

    Each BLF becomes its own CSV, or its own set of parts, and keeps its name.

  • Want signal values instead of frames?

    This page writes the frames as recorded. For decoded signals with units, the BLF to MAT converter applies your DBC.

BLF to CSV questions

How do I open a BLF file in Excel?

Excel cannot read BLF directly. Export it to CSV here and open the CSV. If the capture has more than 1,048,576 frames, choose Excel-safe parts so each file fits on a sheet.

Why does Excel turn an ID like 1E3 into a number?

Excel reads 1E3 as scientific notation and shows 1000. Import the ID column as Text, or export the IDs in decimal instead.

How is this different from BLF to MAT?

This page writes the raw frames: ID, length and bytes. BLF to MAT applies a DBC and writes decoded signal values with units. Use the frames when you want to inspect the bus, and the signals when you want physical values.

Are the timestamps absolute?

By default they are seconds from the first frame. If the BLF recorded wall-clock time and you choose Unix epoch, the first frame keeps its real time. A log without wall-clock time falls back to seconds from the first frame.

Are error frames and CAN FD frames included?

Yes. The Type column says CAN, CAN FD, Remote or Error, and the Length column shows up to 64 bytes. Error frames have no ID.

Is my BLF uploaded anywhere?

No. The file is read and the CSV is written in your browser tab, so a capture from a prototype vehicle never leaves your computer.

Why offer one column per byte?

A spreadsheet cannot slice a hex string such as 8F 02 11 cleanly. With D0, D1 and onward, a single byte is a column you can convert, chart or filter on its own.