asammdf GUI/API - Easily DBC Decode & Plot MF4 CAN Bus Data



Need to DBC-convert or plot your MDF4 CAN data?

The CANedge logs raw CAN/LIN data to an SD card in the popular ASAM MDF4 format (MF4).

MDF4 is supported by the 100% free open source asammdf GUI/API. This lets you easily load, edit, scale and plot your data.

Learn more below - and try asammdf yourself!

See also our 2 min intro video above!

asammdf tool MF4 data scale DBC file plot
CAN bus Interoperable MDF4 Data Load Review Analyze Filter MF4 SUPPORT

Directly load raw MF4 data from the CANedge and quickly review

DBC convert data physical values scaled engineering values J1939 OBD2 DBC DECODE

Scale your data to physical values via DBC files (incl. J1939, OBD2)

Visual data plots asammdf GUI API Python VISUAL PLOTS

Easily create advanced graphical timeseries plots of your data

CAN bus data resampling raster time frequency interval asammdf POWERFUL

Options include e.g. resampling, concatenation, filtering, exporting

MDF4 Linux Windows Platform Operating System Agnostic WINDOWS/LINUX

The asammdf GUI/API can be used on both Windows and Linux

MDF4 API SDK Script API

Use the open Python API to programmatically process your data





Load & review your CANedge raw MF4 log files

The asammdf tool can directly load the CANedge MF4 log files. This lets you e.g. quickly review the raw data in the tabular display (incl. filtering options)

DBC decode your raw data to physical values

You can easily scale your data via DBC files (incl. J1939/OBD2) to create a new MF4 file with physical values for export, plotting & analysis.

Easily create visual plots incl. GPS positioning

Once your raw CANedge data has been DBC-decoded, you can quickly create advanced timeseries plots for graphical analysis and exporting.

Export raw or converted data

You can export your raw or DBC decoded MF4 data to e.g. CSV or MAT (MATLAB) - with optional signal filtering and resampling.

Automate data processing via the API

The asammdf Python API is simple-to-use and makes it easy to automate processing of MF4 files. See also our github API examples library.

from asammdf import MDF

mdf = MDF.concatenate(["00000001.MF4", "00000002.MF4"])

mdf_scaled = mdf.extract_can_logging("j1939.dbc", ignore_invalid_signals=True)
mdf_scaled.export("csv", filename="phys-val", time_as_date=True, single_time_base=True)












100% free and open source

The asammdf tool is developed and actively maintained by Daniel Hrisca and has a great community - check out the asammdf github page (2K+ commits, 200+ stars, 100+ forks).

asammdf GUI API github ASAM MDF4 tool free open source

Want to try out asammdf yourself? Download the executable and our MDF4/DBC samples below:





Diagnostics of data from blackbox CAN logger

Need to quickly trace and diagnose an issue?

If you want to review data from e.g. 20 MF4 log files from your CANedge, simply concatenate and DBC-convert them via the asammdf GUI. From here, you can create quick visual data plots (incl. calculated fields), filter the data in the column style 'tabular view' or export to e.g. CSV/MAT for further analysis.

OEM vehicle data logger API software tool


Vehicle Fleet Management Telematics API Open Source Data CAN Bus

Process vehicle fleet data from your S3 server

Need to easily process data from your server?

If you're using a CANedge2 (WiFi) or CANedge3 (3G/4G) to auto-push your MF4 log files to an S3 server, you can use an S3 drive tool to map your S3 bucket as a local network drive. This in turn lets you easily drag & drop files into your asammdf GUI - as if they were stored locally, enabling quick and seamless analysis across a fleet of devices.




FAQ


No, the asammdf GUI can be downloaded as an executable for Windows/Linux here. Simply double-click to open it.

If you wish to use the asammdf API, you'll need to install Python and then install asammdf using pip - see our short guide.




Yes, asammdf is designed for speed - see e.g. the asammdf benchmarking tests.


The asammdf GUI is designed for cross-platform ad hoc analysis of CAN bus data. It can be quickly installed on a Windows/Linux PC either via the pre-built GUI executable or by installing via pip. It is a useful general-purpose tool for analysing and visualizing both raw and DBC decoded CAN bus data.

However, asammdf is not designed for visualization of CAN signals in your browser. For this purpose, see instead our intro to telematics dashboards, where we show how to use our MF4 Python API to set up free open source browser dashboards to visualize your CAN data.


This depends on your use case and preferences. For some users, asammdf will be more than sufficient - while for others, it may be necessary or more practical to use e.g. CANalyzer or other existing tools.

If you prefer to use your existing favorite CAN tools, that's not an issue - see our MDF4 converters.


The asammdf DBC functionality utilizes the popular canmatrix library and supports most of the DBC functionality - e.g. complex multiplexing, J1939 PGNs, OBD2 etc. It does not support conversion of multi-frame packets.

The DBC conversion also has a powerful option to exclude 'invalid signals', i.e. signals with data bytes padded as FF. This means that you can load e.g. a J1939 DBC with thousands of signals - but only get the relevant data returned.

If you need to load, edit or create new DBC files, see also our online DBC file editor.




The asammdf GUI lets you visualize raw CAN data, meaning that you'll be able to view and analyze the raw CAN frames involved in ISO-TP (Transport Protocol) communication flows. This can be useful for e.g. identifying request frames, first frames, flow control frames and consequtive frames for later analysis.

The asammdf GUI does not, however, support e.g. linking together multi-frame responses from e.g. UDS (Unified Diagnostic Services) or J1939 ISO-TP. For this purpose, you can however use our MF4 converters to convert your raw log files to e.g. Vector ASC (for processing in CANalyzer), or you can use our MF4 Python API to process transport protocol communication (incl. UDS and J1939 transport protocol examples).


Yes, asammdf lets you load raw LIN bus data and show it in a 'tabular display' to analyse the raw LIN frames. Further, you can create a LIN DBC file to decode the raw LIN bus frames into human-readable form (physical values). Typically you would construct a LIN bus DBC file based on a LIN Description File (LDF).


SavvyCAN is the main software tool for our CLX000 series. As part of the functionality, SavvyCAN supports conversion of log files via DBC to human-readable form.

The asammdf GUI/API is one of the possible tools for use with the CANedge (see also our MDF4 converters for full interoperability). In many ways, the asammdf GUI is like the SavvyCAN 'interpret' functionality, but just with extended features (e.g. better graphical plots, more extensive DBC features, more exports etc).

Further, the asammdf API enables easy programmatic processing of log files, which is a big advantage in the CANedge vs. the CLX000 - and means that it's possible to process data automatically and at scale. In addition, for the CANedge2, the S3 Python API can be used together with the asammdf API to set up advanced use cases. For inspiration, see our API examples on github.


The asammdf GUI/API is developed and maintained by Daniel Hrisca, who does a great job on the tool. It is actively managed and has a large community that uses it daily.

We do not contribute directly to asammdf, except for a few small tweaks (e.g. to support MDF4 data from the CANedge natively). We do however actively provide suggestions and feedback to the asammdf team based on user inputs.

If you have suggestions, you can either contact us or raise an issue on the asammdf github page directly.






Ready to process your CAN data in asammdf?

Get your CANedge today!







Recommended for you