blairdude
Jr. Member

Karma: +6/-0
Offline
Posts: 45
|
 |
« on: June 02, 2026, 11:00:20 AM »
|
|
|
I have been working on an OLS to XDF converter lately to make it much easier to utilize DAMOS files without paying for WinOLS. This supports A2L, OLS, KP, and HEX file formats, and includes binary extraction from OLS and HEX files as well, and translation of parameter names and descriptions. As I've been mostly working with EDC16 and 6HP files, this is mostly what I've tested it on. There are very likely still bugs, use at your own risk. Changelog: 0.3.1 - Fixed a bug that could cause a crash while parsing small OLS files, added support for 'Eeprom, subtract' data source type 0.3 – Bug fixes, significant improvement to OLS support, correct handling of ‘2D Inverse’ and ‘2D Standard’ maps, new option to swap X and Y axes on 2d tables (layout remains correct, but aesthetically different), added support for TunerPro checksum plugin integration, including auto-detection of checksum plugins currently installed 0.2 – Bug fixes, KP file support 0.1 – Initial Release Windows EXE and Python source code are available below: https://bbear3d.ca/misc-projects/ols-to-xdf-converter/
|
|
|
|
« Last Edit: Yesterday at 05:18:47 PM by blairdude »
|
Logged
|
|
|
|
grayjay
Full Member
 
Karma: +5/-4
Online
Posts: 57
|
 |
« Reply #1 on: June 03, 2026, 09:41:35 AM »
|
|
|
Great effort, this should be really helpful for generating .xdf for more obscure ECUs. I ran it on a TT ME7.1 file and it produced a huge list of scalar parameters that seem reasonably valid but relatively few tables and even fewer of those key tables that would be needed for actual tuning. I am not sure if this is due to the .kp I used or if the converter just did not find typical tuning tables. The converter ran fine from the .exe file first time I tried, then next time it gave an error something like "cannot find OLS_to_KP.py" . Deleting the .json settings file it had created fixed to allow it to run again.
Description translations were helpful. One feature request/suggestion is that it would be great if resulting .xdf parameter descriptions included option to have the FR abbreviation code (example KFLDIMX) instead of just the longer text descriptions, it would be easier to match parameters to FR and nefmoto discussion if the abbreviation code were included. Thanks!
|
|
|
|
|
Logged
|
|
|
|
blairdude
Jr. Member

Karma: +6/-0
Offline
Posts: 45
|
 |
« Reply #2 on: June 03, 2026, 03:05:16 PM »
|
|
|
Great effort, this should be really helpful for generating .xdf for more obscure ECUs. I ran it on a TT ME7.1 file and it produced a huge list of scalar parameters that seem reasonably valid but relatively few tables and even fewer of those key tables that would be needed for actual tuning. I am not sure if this is due to the .kp I used or if the converter just did not find typical tuning tables. The converter ran fine from the .exe file first time I tried, then next time it gave an error something like "cannot find OLS_to_KP.py" . Deleting the .json settings file it had created fixed to allow it to run again.
Description translations were helpful. One feature request/suggestion is that it would be great if resulting .xdf parameter descriptions included option to have the FR abbreviation code (example KFLDIMX) instead of just the longer text descriptions, it would be easier to match parameters to FR and nefmoto discussion if the abbreviation code were included. Thanks!
Can you please PM me the .kp file you're using? When using an OLS or A2L file it should automatically be placing names like KFLDIMX in the parameter description, I'll need your KP file to find out why it's not finding those names. If it's not finding the tables you're looking for, I'm inclined to say they are just not present in the KP file you're using. It's not designed at all to find maps in the binary that are not defined already in the definition file. TunerPro does allow sorting parameters by parameter type in addition to category placement, sorting by parameter type should easily locate all of the tables that were defined in the KP. I'll look into and try to fix the 'Cannot find' bug. Thanks for the feedback!
|
|
|
|
|
Logged
|
|
|
|
grayjay
Full Member
 
Karma: +5/-4
Online
Posts: 57
|
 |
« Reply #3 on: June 03, 2026, 09:44:59 PM »
|
|
|
The ols file I tried converting as test was; Audi TT 1.8T BAM 225 PS 8N0 906 018 CB.ols from first post of thread http://nefariousmotorsports.com/forum/index.php?topic=467.0I also tried converting Audi TT 1.8T ARY 180 PS 8N0 906 018 BR 0261206439.ols from same post, got similar xdf result Later in same thread indicated that these ols might be from "fully defined" pre-production calibrator files so perhaps that is why they are missing some of the typical tables? I do see that the FR codes are included within the more detailed parameter description, It would just be nice to have those FR codes available to be populated as the title of the table or scaler parameter, rather than just available within the deeper parameter description.
|
|
|
|
|
Logged
|
|
|
|
blairdude
Jr. Member

Karma: +6/-0
Offline
Posts: 45
|
 |
« Reply #4 on: June 03, 2026, 10:06:47 PM »
|
|
|
The ols file I tried converting as test was; Audi TT 1.8T BAM 225 PS 8N0 906 018 CB.ols from first post of thread http://nefariousmotorsports.com/forum/index.php?topic=467.0I also tried converting Audi TT 1.8T ARY 180 PS 8N0 906 018 BR 0261206439.ols from same post, got similar xdf result Later in same thread indicated that these ols might be from "fully defined" pre-production calibrator files so perhaps that is why they are missing some of the typical tables? I do see that the FR codes are included within the more detailed parameter description, It would just be nice to have those FR codes available to be populated as the title of the table or scaler parameter, rather than just available within the deeper parameter description. The OLS file converts well for me. If you want the FR code as the parameter name, select the option 'Use OLS/A2L/KP Name as XDF Title'. I have that off by default because the descriptors are what WinOLS uses as the parameter name by default, and the TunerPro Parameter Finder (under the Tools menu) can't search by parameter name anyway, but can search for words in the parameter description (which makes it a lot easier to find a parameter if you know its name). EDIT: I loaded the OLS in WinOLS and it does indeed look like many parameters and Folder names are getting missed. Working on fixing it tonight.
|
|
|
|
« Last Edit: June 03, 2026, 10:35:43 PM by blairdude »
|
Logged
|
|
|
|
blairdude
Jr. Member

Karma: +6/-0
Offline
Posts: 45
|
 |
« Reply #5 on: June 08, 2026, 12:32:54 AM »
|
|
|
I am close to a clean conversion on that Audi TT OLS. Hopefully just a few more days before I release an update.
|
|
|
|
|
Logged
|
|
|
|
blairdude
Jr. Member

Karma: +6/-0
Offline
Posts: 45
|
 |
« Reply #6 on: June 10, 2026, 06:08:28 PM »
|
|
|
The ols file I tried converting as test was; Audi TT 1.8T BAM 225 PS 8N0 906 018 CB.ols from first post of thread http://nefariousmotorsports.com/forum/index.php?topic=467.0I also tried converting Audi TT 1.8T ARY 180 PS 8N0 906 018 BR 0261206439.ols from same post, got similar xdf result Later in same thread indicated that these ols might be from "fully defined" pre-production calibrator files so perhaps that is why they are missing some of the typical tables? I do see that the FR codes are included within the more detailed parameter description, It would just be nice to have those FR codes available to be populated as the title of the table or scaler parameter, rather than just available within the deeper parameter description. Just released a new version, 0.3. I'm now getting a very clean conversion on this file. There could be conversion errors still but after checking dozens of maps and scalars I haven't found any yet with this new version. Let me know if you find any more problems. Use the 'Use A2L ID as XDF name entry' option if you want the FR codes to be the XDF parameter name.
|
|
|
|
|
Logged
|
|
|
|
grayjay
Full Member
 
Karma: +5/-4
Online
Posts: 57
|
 |
« Reply #7 on: Yesterday at 09:21:33 AM »
|
|
|
Just released a new version, 0.3. I'm now getting a very clean conversion on this file. There could be conversion errors still but after checking dozens of maps and scalars I haven't found any yet with this new version. Let me know if you find any more problems. Use the 'Use A2L ID as XDF name entry' option if you want the FR codes to be the XDF parameter name.
I re-ran the conversion of Audi TT 1.8T BAM 225 PS 8N0 906 018 CB.ols using the latest rev0.3. It identified and converted many hundreds of scalars and tables, labeled with the FR codes. It did a nice job of organizing into parameter categories that are all referenced to FR sections and having both the german & english translated descriptions is great. I dont even have a Audi TT 1.8T BAM to work on but the resulting xdf can serve me as a good reference for parameter descriptions and categories for organizing the xdf for the A4 B6 8E0909518AK-0003 ECUs I do work with. Now I just wish I could find a similarly well defined ols or kp for the 8E0909518AK-0003 to use as basis for conversion to xdf. Very impressive conversion software!
|
|
|
|
|
Logged
|
|
|
|
blairdude
Jr. Member

Karma: +6/-0
Offline
Posts: 45
|
 |
« Reply #8 on: Yesterday at 09:49:25 AM »
|
|
|
I re-ran the conversion of Audi TT 1.8T BAM 225 PS 8N0 906 018 CB.ols using the latest rev0.3. It identified and converted many hundreds of scalars and tables, labeled with the FR codes. It did a nice job of organizing into parameter categories that are all referenced to FR sections and having both the german & english translated descriptions is great. I dont even have a Audi TT 1.8T BAM to work on but the resulting xdf can serve me as a good reference for parameter descriptions and categories for organizing the xdf for the A4 B6 8E0909518AK-0003 ECUs I do work with. Now I just wish I could find a similarly well defined ols or kp for the 8E0909518AK-0003 to use as basis for conversion to xdf. Very impressive conversion software!
Thanks! I'm currently working on another tool that will take a source XDF/binary pair, where the XDF is a close-ish match but not quite, and it will examine a target binary and produce an XDF with offsets to variable locations as needed. It can also compare two binaries with companion XDFs and create patches to copy tables and variables from one binary to another without them needing to have identical binary structure. It's not quite ready for release yet but I do already have it at a state where it's useful.
|
|
|
|
|
Logged
|
|
|
|
Transcending
Newbie
Karma: +0/-0
Offline
Posts: 1
|
 |
« Reply #9 on: Yesterday at 01:05:47 PM »
|
|
|
Unfortunately, getting error each time I try the tool. Reading C:\Users\Jonas\Desktop\1.8t VW Golf 2002\10000.ols … 648,015 bytes Metadata: part=038906012FA mfr=Bosch
Traceback (most recent call last): File "ols_to_xdf_gui.py", line 1311, in _worker File "C:\Users\Jonas\AppData\Local\Temp\_MEI102722\ols_to_xdf.py", line 785, in parse_ols is_rs6 = _detect_rs6(data) File "C:\Users\Jonas\AppData\Local\Temp\_MEI102722\ols_to_xdf.py", line 746, in _detect_rs6 if data[offset + 12] not in (1, 2, 4) or data[offset + 13] != 0: continue ~~~~^^^^^^^^^^^^^ IndexError: index out of range
|
|
|
|
|
Logged
|
|
|
|
blairdude
Jr. Member

Karma: +6/-0
Offline
Posts: 45
|
 |
« Reply #10 on: Yesterday at 04:22:15 PM »
|
|
|
Unfortunately, getting error each time I try the tool. Reading C:\Users\Jonas\Desktop\1.8t VW Golf 2002\10000.ols … 648,015 bytes Metadata: part=038906012FA mfr=Bosch
Traceback (most recent call last): File "ols_to_xdf_gui.py", line 1311, in _worker File "C:\Users\Jonas\AppData\Local\Temp\_MEI102722\ols_to_xdf.py", line 785, in parse_ols is_rs6 = _detect_rs6(data) File "C:\Users\Jonas\AppData\Local\Temp\_MEI102722\ols_to_xdf.py", line 746, in _detect_rs6 if data[offset + 12] not in (1, 2, 4) or data[offset + 13] != 0: continue ~~~~^^^^^^^^^^^^^ IndexError: index out of range
Try downloading the source code (extract to the same directory as the exe), see if it runs properly then. In the meantime please PM me the .OLS file and I will work on fixing this.
|
|
|
|
« Last Edit: Yesterday at 05:17:13 PM by blairdude »
|
Logged
|
|
|
|
blairdude
Jr. Member

Karma: +6/-0
Offline
Posts: 45
|
 |
« Reply #11 on: Yesterday at 05:17:25 PM »
|
|
|
EDIT: I think I found the source of the bug and replaced the source and the binary with new versions on my website. Let me know if it still fails.
|
|
|
|
|
Logged
|
|
|
|
|