Home of ASAP2Library and ASAP2Demo

ECU calibration with ASAP2Demo/ASAP2Library

What is ASAP2?

ASAP2 is an ECU Measurement and Calibration Data Exchange Format created by the ASAM (Association for Standardization of Automation and Measuring Systems). The standard is commonly used in automotive environments.

ASAP2 (.a2l) files may be created by MATLAB (Real-Time Workshop) or similar tools.

As I'm often deal with these type of files, I’ve done a lightweight ASAP2 parser. Over the years I added further standard implementations like XCP, CCP and ODX. The ASAP2Demo application based on the ASAP2Library is free to use.

ASAP2Library features:

  • Implements the complete ASAM MCD-2MC v1.7.0 (ASAP2) specification.
  • .NET Framework assembly and therefore usable from any available .NET framework language (C#, VB, J#, F#,...).
  • Exclusively written in managed code and therefore portable. Available for Windows or Mono (Linux/MacOS).
  • Creates an object oriented, hierarchical .NET object model, see the ASAP2Library API and the demo code, exportable into XML, too.
  • Any A2L object and it’s properties are mapped to a corresponding .NET type.
  • A2L syntax checking.
  • A2L model checking (e.g. missing object links).
  • Approximately 4 MBit/s parsing performance (maybe the fastest available ASAP2 parser).
  • Changing almost any A2L object property.
  • Rewriting and optimizing the A2L model.
  • Reading ECU calibration data files into the created A2L model (currently supported are Intel HEX, Motorola S, INCA DCM, CDFX and MATLAB (.m) file formats).
  • A module to convert byte streams from the calibration data file into physical values of corresponding A2L characteristics.
  • A module to convert physical data into byte streams in order to save modified data into a calibration data file.
  • Supports the following CAN/CAN FD hardware providers:
  • Implements the complete ASAM MCD-1 XCP V1.3.0 specification, supporting communication over
  • Implements the complete ASAM MCD-1 CCP V2.1 specification supporting communication over CAN on supported CAN Hardware providers.
  • An ECU simulator (the ability to simulate an ECU in a console application by using the A2L parser and the XCP/CCP module)
  • A module to read, write and edit DBC (CANdb++) files.
  • A module to read, write and edit Open Diagnostic eXchange format (ODX, ASAM MCD-2D) files.
  • Implements a module to read MDF formats up to v4.1.1 and write MDF format v3.3 and MDF V4.10 (Measurement data format) files..
  • A module to read ELF (Executable and Linkable format) files in order to synchronize A2L object addresses.
    • Supports DWARF formatted debug information contained in an ELF file.
    • Allows to rewrite an A2L with updated addresses from an ELF file, see ELF Example.


Modular architecture:

ASAP2 architecture

The ASAP2Library is exclusively available as source code. Request order and license information.

ASAP2Demo features:

  • .NET Framework 4.0 Windows forms application.
  • Windows MSI installer.
  • MultiDocument and MultiMonitor User Interface to parse/visualize and connect to more than one ECU.
  • File Drag&Drop support.
  • Fully editable A2L content inclusive syntax highlighting.
  • Full text search/replace in A2L source files.
  • Find and display violations against the ASAP2 standard.
  • Find and display missing object references.
  • Change many A2L properties and rewrite/optimize the A2L file
  • Export the complete A2L object model into XML.
  • a powerful search function to locate A2L objects by name
  • Loading and saving of calibration data files (supported is the Intel HEX and the Motorola S file format).
  • Export and import calibration data to/from INCA DCM, CDFX files and MATLAB (.m) files.
  • Graphical visualization of calibration data.
  • Graphical visualization of measured data.
  • Adjust ECU calibration data (offline and online).
  • Ability to connect to multiple ECUs on XCP over UDP/TCP/CAN or simulated ECUs.
  • Ability to connect to multiple ECUs on CCP.
  • Ability to connect to multiple ECUs on UDS.
  • Runs as 32 or 64 Bit process depending on the Operating System.
  • XCP/CCP/CAN(CAN FD)/J1939/UDS/SYSLog Logging ability.
  • Open, edit and write DBC (CANdb++) files. Measuring of contained signals over CAN is possible.
  • Simulate complete (or only selected parts) DBC files on the CAN bus.
  • Open, visualize and navigate through MDF files.
  • Open, edit and write ODX files.
  • Synchronize A2L files from ELF files.