asammdf GUI/API - Easily DBC Decode & Plot MF4 CAN Bus Data
Need to DBC-convert or plot your MDF4 CAN data?
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!
Directly load raw MF4 data from the CANedge and quickly review
Scale your data to physical values via DBC files (incl. J1939, OBD2)
Easily create advanced graphical timeseries plots of your data
Options include e.g. resampling, concatenation, filtering, exporting
The asammdf GUI/API can be used on both Windows and Linux
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 convert your raw data to physical values
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 scaled MF4 data to CSV, MAT (MATLAB), HDF5, Parquet or pandas - with optional resampling to e.g. specific time rasters.
Automate data processing via the API
The asammdf Python API is simple-to-use and makes it easy to process huge amounts of data automatically. 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).
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.
Auto-process vehicle fleet data from your server
Need to periodically process data from your server
The asammdf Python API lets you process large amounts of MDF4 data. This can be combined with the S3 Python API to process uploaded data from your S3 server in an automated way - e.g. for periodic reports, vehicle predictive maintenance or fleet telematics. See our user-friendly API examples to get started.
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 3.7 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 multiframe 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).
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 CANvas 'convert' section, but just with extended features (e.g. 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!