ADX and XDF creation help

They go by many names, P01, P59, VPW, '0411 etc . Circa 1999 to 2006. All VPW OBD2 PCMs.
Posts: 58
Joined: Wed Jul 05, 2017 8:30 am
Location: TX USA

ADX and XDF creation help

Postby MudDuck514 » Sat Mar 16, 2019 12:30 am

Hi all,

I have noticed quite a few comments about creating an ADX or XDF for use with Tuner Pro.

While I do NOT have the skills needed to create ANY software component from scratch, I do have PLENTY of free time to tinker with PC Computers.
SO, I am hoping that someone would be willing and able to shed some light on HOW to go about creating {or perhaps modifying an existing} Definition file.
I know that I am NOT alone as others have expressed the same lack of abilities but have time to try helping.

Thanks,

Mike

PS, I DO have the requisite software downloaded and installed i.e. Visual Studio 2017 (free version) and IDAPro 6.5 and,
I have also got EFILive 7.5 fully unlocked so am able to play with THAT app.

User avatar
Posts: 69
Joined: Thu Jun 07, 2018 8:15 am
Location: Fort Collins, Colorado

Re: ADX and XDF creation help

Postby DavidBraley » Sat Mar 16, 2019 4:21 am

YES! I was just trying to figure out where to start such a thread, and you beat me to it MudDuck514! All good. :thumbup:

I to do not presently have the skill-set to create an ADX or XDF file, but I do have some time and energy to put toward this. It seems MudDuck514 has a better set of software tools... but that will not stop me from at least trying.

Pete is working on an interface tool that will need an ADX file. Maybe I can help with that?
-David

Horsepower determines the speed you hit the wall. Torque determines the size of the hole you make.

User avatar
Posts: 69
Joined: Thu Jun 07, 2018 8:15 am
Location: Fort Collins, Colorado

Re: ADX and XDF creation help

Postby DavidBraley » Sat Mar 16, 2019 5:04 am

Some links I'm reading... I understand this information is for the earlier OBD1 stuff, but I'm guessing the process is similar. I'm guessing? hoping? that with a similar .adx file and interface, a data-stream can be initiated in TP that would help get someone started. Because there's already a few .adx files out in the wild for the 0411 PCM's, some kind of foundation is already started. If I'm making no sense, it's because I have no idea what I'm talking about... :roll:

https://pcmhacking.net/forums/viewtopic.php?f=26&t=4804

http://www.gearhead-efi.com/Fuel-Injection/showthread.php?5848-ADX-file-format

http://www.gearhead-efi.com/Fuel-Injection/showthread.php?360-Building-a-LT1-EE-ADS-file-from-ALDL-DS-file

http://forum.tunerpro.net/viewtopic.php?t=771

http://forum.tunerpro.net/viewtopic.php?t=1016
-David

Horsepower determines the speed you hit the wall. Torque determines the size of the hole you make.

User avatar
Posts: 69
Joined: Thu Jun 07, 2018 8:15 am
Location: Fort Collins, Colorado

Re: ADX and XDF creation help

Postby DavidBraley » Sat Mar 16, 2019 5:26 am

From what I'm reading, there isn't a great and expensive software tool set needed for this .adx file creation.

Here are some .adx files I have found for the 0411 PCM's. I'm guessing these are a great start. I'm going to try one with the AllPro USB I have here to see what happens. Maybe I can cut my teeth on this by trying to make a .adx file for the AllPro USB? I know, this device is no longer made, but we do have enough information to reproduce them if needed... With permission of course. :thumbup:

Two .adx files for the AVT-852 interface found here:

https://pcmhacking.net/forums/viewtopic.php?f=10&t=2314

AVT LS1 SAE & GM_ENH V1.6.adx
(79.2 KiB) Downloaded 5 times


AVT LS1 DPID V1.01.adx
(54.38 KiB) Downloaded 2 times



And another one for the cheap generic ELM 327 interface (sub $15 you can find on FleeBay) found here:

https://pcmhacking.net/forums/viewtopic.php?f=10&t=1320

LS1 OBDII ELM327.adx
(20.71 KiB) Downloaded 4 times


I will add more as I find them...
-David

Horsepower determines the speed you hit the wall. Torque determines the size of the hole you make.

User avatar
Posts: 69
Joined: Thu Jun 07, 2018 8:15 am
Location: Fort Collins, Colorado

Re: ADX and XDF creation help

Postby DavidBraley » Sat Mar 16, 2019 5:59 am

Two more .adx files for the 0411:

First, http://www.gearhead-efi.com/Fuel-Injection/showthread.php?2386-TunerPro-XDF-for-0411-LS1-PCM-Project!

OBDIIJ1979.adx
(20.38 KiB) Downloaded 3 times



Second, (found at the very bottom of the page) http://www.tunerpro.net/downloadBinDefs.htm

TunerProELM327_ReferenceV1.adx
(18.99 KiB) Downloaded 3 times
-David

Horsepower determines the speed you hit the wall. Torque determines the size of the hole you make.

Site Admin
User avatar
Posts: 5618
Joined: Sat Feb 28, 2009 8:34 pm

Re: ADX and XDF creation help

Postby antus » Sat Mar 16, 2019 1:55 pm

So, some notes which might help -

1. tunerpro comes with an elm327 plugin. Nobody seems to know what it does or how it works, thus to date its been useless. None of the above ADXs use it, they talk to the virtual serial port connected to the elm device directly

2. the gotchas are making sure your packet sizes are correct. you define a command which sends some bytes, and one to receive. then you use macros which use the send, and use the receive in order to pull in one pid at a time (unless you use dpids, which is another subject again, and a proprietary GM extension). When your packet sizes are not correct received data wont be read properly. The initialisation macro must also run through without error for tunerpro to say 'connected'. It can be helpful to run a serial port monitor software so that you can see what bytes are coming back from the interface exactly, then you can adjust the tunerpro packet sizes and offsets until you get it right. There are various free serial port monitors around.

3. the AVT interface and J2534 interfaces work with raw data. This is generally the way one would do this, as it is efficient, native and well, why wouldnt you? But elm devices print the data as hex in ascii. So for example F0 on the wire would be sent to and from the elm as 2 bytes, which are F (value 0x46) and 0 (value 0x30) - see the table under 'ascii printable characters' here https://en.wikipedia.org/wiki/ASCII This protocol slows the serial comms down by 50% as twice as much data needs to be sent and is quite wasteful. But unfortunately we need to use it. The existing solutions use the lookup table functionality to convert between raw values and ascii text. It'd be worth starting with an existing ADX which already has such a table.
Have you read the FAQ? For lots of information and links to significant threads see here: viewtopic.php?f=7&t=1396

Posts: 58
Joined: Wed Jul 05, 2017 8:30 am
Location: TX USA

Re: ADX and XDF creation help

Postby MudDuck514 » Sat Mar 16, 2019 2:39 pm

Hi all,

Antus thanks for chiming in with this useful information.
Question, would it be safe to assume that the ADXs are made using Tuner Pro's built-in ADX Editor?

I just started to play around with it this evening.

Mike

Site Admin
User avatar
Posts: 5618
Joined: Sat Feb 28, 2009 8:34 pm

Re: ADX and XDF creation help

Postby antus » Sat Mar 16, 2019 3:29 pm

Yes, adx is a tunerpro proprietry format, and the only editor is the built in one. Its not very user friendly, it takes a lot of clicks to do what you need to do, but it works.
Have you read the FAQ? For lots of information and links to significant threads see here: viewtopic.php?f=7&t=1396

User avatar
Posts: 69
Joined: Thu Jun 07, 2018 8:15 am
Location: Fort Collins, Colorado

Re: ADX and XDF creation help

Postby DavidBraley » Sat Mar 16, 2019 3:34 pm

Thank you so much! This is very helpful. I'm actually surprised that I understand a lot of what you have said below. It gives me a lot to research and will help me continue my quest in understanding this. Correct me if I'm wrong, but after carefully looking at some .adx files, they seem to be in some kind of scripting language specific to TunerPro?

antus wrote:So, some notes which might help -

1. tunerpro comes with an elm327 plugin. Nobody seems to know what it does or how it works, thus to date its been useless. None of the above ADXs use it, they talk to the virtual serial port connected to the elm device directly


Interesting...

antus wrote:2. the gotchas are making sure your packet sizes are correct. you define a command which sends some bytes, and one to receive. then you use macros which use the send, and use the receive in order to pull in one pid at a time (unless you use dpids, which is another subject again, and a proprietary GM extension). When your packet sizes are not correct received data wont be read properly. The initialisation macro must also run through without error for tunerpro to say 'connected'. It can be helpful to run a serial port monitor software so that you can see what bytes are coming back from the interface exactly, then you can adjust the tunerpro packet sizes and offsets until you get it right. There are various free serial port monitors around.


I've been carefully examining some of the .adx files above in an earlier post, and I'm seeing exactly this idea of a command definition that sends a request byte to the PCM for a specific PID value (say engine RPM), and a command definition that receives the value byte for that specific PID sent back by the PCM, and the macro that manages all of this. Packet size and offset I still have not identified yet, but I'm working on understanding it. I will try and find a serial port monitor that doesn't suck...

antus wrote:3. the AVT interface and J2534 interfaces work with raw data. This is generally the way one would do this, as it if efficient, native and well, why wouldnt you? But elm devices print the data as hex in ascii. So for example F0 on the wire would be sent to and from the elm as 2 bytes, which are F (value 0x46) and 0 (value 0x30) - see the table under 'ascii printable characters' here https://en.wikipedia.org/wiki/ASCII This protocol slows the serial comms down by 50% as twice as much data needs to be sent and is quite wasteful. But unfortunately we need to use it. The existing solutions use the lookup table functionality to convert between raw values and ascii text. It'd be worth starting with an existing ADX which already has such a table.


THIS is very helpful to know! I completely get that the ELM device sends a HEX value in ASCII, that needs to be converted to HEX for TunerPro, and then the HEX value from TunerPro needs to be converted back to ASCII when sent to the ELM. I didn't know you could do this kind of conversion on the fly with a lookup table. Doesn't that conversion process in the lookup table slow things down even more? The only structures that kind of resemble tables I see in the above .adx files are for what look like the definitions for the actual "Gauges" in the dashboard (please correct me if I'm wrong). Do you or anyone else know of an .adx file that uses lookup tables? I'm not familiar enough with this "Scripting" language (if that's what it is) to know how to construct a lookup table. I will look at some of the older OBD1 .adx files and see if this kind of thing is used.

Again, my vocabulary and understanding on all of this sucks simply because I'm still learning. So please correct me if I'm wrong so I don't look too much like a complete idiot... :lol:
-David

Horsepower determines the speed you hit the wall. Torque determines the size of the hole you make.

User avatar
Posts: 69
Joined: Thu Jun 07, 2018 8:15 am
Location: Fort Collins, Colorado

Re: ADX and XDF creation help

Postby DavidBraley » Sat Mar 16, 2019 3:36 pm

antus wrote:Yes, adx is a tunerpro proprietry format...


Well, that answered my first question!
-David

Horsepower determines the speed you hit the wall. Torque determines the size of the hole you make.

Next

Return to GM LS1 512Kbyte and 1Mbyte

Who is online

Users browsing this forum: No registered users and 1 guest