Description
XDF → A2L WinOLS Converter is a utility for converting TunerPro XDF definitions into ASAP2 / A2L calibration files intended for use with WinOLS.
The converter reads the structure declared in the XDF together with the selected source BIN and builds an intermediate calibration model before generating the final A2L file.
It is designed as a universal converter rather than a database of hardcoded ECU definitions. The conversion logic does not depend on ECU brand, family, filename, file hash or a predefined development corpus.
What is it useful for?
XDF files describe maps, scalars, axes, flags and other calibration elements used by TunerPro. WinOLS, on the other hand, can work with ASAP2 / A2L descriptions.
This tool provides a conversion path:
XDF → Raw XDF Model → Canonical Calibration Model → Validation → A2L for WinOLS
This can be useful when an existing XDF definition needs to be transferred into a WinOLS-based workflow without manually recreating every calibration item.
Main functions
Switch support
The converter includes dedicated handling for supported switch definitions.
Axis handling
Version 3.1.2 corrects the generation of FIX_AXIS_PAR_LIST.
Fixed-axis points are now always written as a proper ASAP2 block:
The previous inline representation has been removed.
Before writing the A2L, the converter validates the number of fixed-axis points against MaxAxisPoints.
The original XDF layout and stride are not changed. Interleaved axes retain their real storage footprint and are materialized as FIX_AXIS only when the WinOLS 4.70 profile cannot faithfully represent their original storage layout.
GROUP handling
XDF categories are exported as ASAP2 GROUP entries.
Group identifiers are sanitized and made unique. The older artificial GRP_ prefix is no longer added.
Universal conversion core
The converter does not contain conversion branches based on:
Conversion decisions are instead made from the XDF structure and information obtained from the BIN files selected at runtime.
The built-in self-test also uses synthetic fixtures generated during testing rather than files from the development corpus.
GUI usage
Command-line usage
With a target BIN:
Generate additional reports:
Self-test
Requirements
The converter is written in Python and does not require third-party Python packages.
The package also includes BAT / PYW launch files for easier startup under Windows.
Important
Automatic conversion cannot guarantee that every unusual or vendor-specific XDF construction will have an exact equivalent in ASAP2 or WinOLS.
Always review the generated A2L and verify important addresses, axes, conversion formulas and map dimensions against the original XDF and BIN before using the project for calibration work.
The converter reads the structure declared in the XDF together with the selected source BIN and builds an intermediate calibration model before generating the final A2L file.
It is designed as a universal converter rather than a database of hardcoded ECU definitions. The conversion logic does not depend on ECU brand, family, filename, file hash or a predefined development corpus.
What is it useful for?
XDF files describe maps, scalars, axes, flags and other calibration elements used by TunerPro. WinOLS, on the other hand, can work with ASAP2 / A2L descriptions.
This tool provides a conversion path:
XDF → Raw XDF Model → Canonical Calibration Model → Validation → A2L for WinOLS
This can be useful when an existing XDF definition needs to be transferred into a WinOLS-based workflow without manually recreating every calibration item.
Main functions
- Convert XDF calibration definitions to ASAP2 / A2L format.
- Use a selected source BIN during conversion.
- Optional target BIN support for PORT operations.
- Generate A2L files intended for WinOLS.
- Process maps, scalars, axes and supported switch definitions.
- Preserve information derived from the actual XDF structure instead of relying on ECU-specific hardcoded rules.
- Perform validation before the final A2L is written.
- Optional conversion reports.
Switch support
The converter includes dedicated handling for supported switch definitions.
- Single-bit XDFFLAG is exported as a CHARACTERISTIC VALUE using BIT_MASK, TAB_VERB and DISCRETE.
- Single-entry XDFPATCH definitions using a 1, 2 or 4-byte scalar can be exported as a discrete CHARACTERISTIC VALUE.
- ORIGINAL and PATCHED values are represented using an exact COMPU_VTAB.
- Scalar PATCH definitions include DEFAULT_VALUE "UNKNOWN".
- Multi-entry or unsupported-width PATCH definitions are not automatically forced into the scalar switch model.
- Multi-bit masks are not incorrectly represented as simple ON/OFF switches.
Axis handling
Version 3.1.2 corrects the generation of FIX_AXIS_PAR_LIST.
Fixed-axis points are now always written as a proper ASAP2 block:
Code:
/begin FIX_AXIS_PAR_LIST
...
/end FIX_AXIS_PAR_LIST
The previous inline representation has been removed.
Before writing the A2L, the converter validates the number of fixed-axis points against MaxAxisPoints.
The original XDF layout and stride are not changed. Interleaved axes retain their real storage footprint and are materialized as FIX_AXIS only when the WinOLS 4.70 profile cannot faithfully represent their original storage layout.
GROUP handling
XDF categories are exported as ASAP2 GROUP entries.
Group identifiers are sanitized and made unique. The older artificial GRP_ prefix is no longer added.
Universal conversion core
The converter does not contain conversion branches based on:
- XDF filename
- BIN filename
- vehicle manufacturer
- ECU family
- file hash
- known development files
Conversion decisions are instead made from the XDF structure and information obtained from the BIN files selected at runtime.
The built-in self-test also uses synthetic fixtures generated during testing rather than files from the development corpus.
GUI usage
- Select the XDF file.
- Select the Source BIN.
- Optionally select a Target BIN for PORT.
- Generate the A2L file.
Command-line usage
Code:
python xdf_to_a2l_winols_v3.1.2.py input.xdf source.bin output.a2l
With a target BIN:
Code:
python xdf_to_a2l_winols_v3.1.2.py input.xdf source.bin output.a2l --target-bin target.bin
Generate additional reports:
Code:
python xdf_to_a2l_winols_v3.1.2.py input.xdf source.bin output.a2l --reports
Self-test
Code:
python selftest_v3.1.2.py
Requirements
The converter is written in Python and does not require third-party Python packages.
The package also includes BAT / PYW launch files for easier startup under Windows.
Important
Automatic conversion cannot guarantee that every unusual or vendor-specific XDF construction will have an exact equivalent in ASAP2 or WinOLS.
Always review the generated A2L and verify important addresses, axes, conversion formulas and map dimensions against the original XDF and BIN before using the project for calibration work.