ADX and XDF creation help

They go by many names, P01, P59, VPW, '0411 etc. Also covering E38 and newer here.
MudDuck514
Posts: 397
Joined: Wed Jul 05, 2017 8:30 am
cars: 2001 Pontiac Grand AM SE
LD9 2.4l I4, 4T40E
2005 Chevrolet Venture
LA1 3400 V6, 4T65E
Location: North TX, USA

ADX and XDF creation help

Post by MudDuck514 »

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
DavidBraley
Posts: 172
Joined: Thu Jun 07, 2018 8:15 am
cars: 1948 GMC
Location: Fort Collins, Colorado

Re: ADX and XDF creation help

Post by DavidBraley »

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

I'm a machinist... because engineers need heroes too.
User avatar
DavidBraley
Posts: 172
Joined: Thu Jun 07, 2018 8:15 am
cars: 1948 GMC
Location: Fort Collins, Colorado

Re: ADX and XDF creation help

Post by DavidBraley »

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:

viewtopic.php?f=26&t=4804

http://www.gearhead-efi.com/Fuel-Inject ... ile-format

http://www.gearhead-efi.com/Fuel-Inject ... DL-DS-file

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

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

I'm a machinist... because engineers need heroes too.
User avatar
DavidBraley
Posts: 172
Joined: Thu Jun 07, 2018 8:15 am
cars: 1948 GMC
Location: Fort Collins, Colorado

Re: ADX and XDF creation help

Post by DavidBraley »

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:

viewtopic.php?f=10&t=2314
AVT LS1 SAE & GM_ENH V1.6.adx
(79.2 KiB) Downloaded 661 times
AVT LS1 DPID V1.01.adx
(54.38 KiB) Downloaded 508 times

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

viewtopic.php?f=10&t=1320
LS1 OBDII ELM327.adx
(20.71 KiB) Downloaded 592 times
I will add more as I find them...
-David

I'm a machinist... because engineers need heroes too.
User avatar
DavidBraley
Posts: 172
Joined: Thu Jun 07, 2018 8:15 am
cars: 1948 GMC
Location: Fort Collins, Colorado

Re: ADX and XDF creation help

Post by DavidBraley »

Two more .adx files for the 0411:

First, http://www.gearhead-efi.com/Fuel-Inject ... M-Project!
OBDIIJ1979.adx
(20.38 KiB) Downloaded 563 times

Second, (found at the very bottom of the page) http://www.tunerpro.net/downloadBinDefs.htm
TunerProELM327_ReferenceV1.adx
(18.99 KiB) Downloaded 548 times
-David

I'm a machinist... because engineers need heroes too.
User avatar
antus
Site Admin
Posts: 8238
Joined: Sat Feb 28, 2009 8:34 pm
cars: TX Gemini 2L Twincam
TX Gemini SR20 18psi
Datsun 1200 Ute
Subaru Blitzen '06 EZ30 4th gen, 3.0R Spec B
Contact:

Re: ADX and XDF creation help

Post by antus »

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: http://pcmhacking.net/forums/viewtopic.php?f=7&t=1396
MudDuck514
Posts: 397
Joined: Wed Jul 05, 2017 8:30 am
cars: 2001 Pontiac Grand AM SE
LD9 2.4l I4, 4T40E
2005 Chevrolet Venture
LA1 3400 V6, 4T65E
Location: North TX, USA

Re: ADX and XDF creation help

Post by MudDuck514 »

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
User avatar
antus
Site Admin
Posts: 8238
Joined: Sat Feb 28, 2009 8:34 pm
cars: TX Gemini 2L Twincam
TX Gemini SR20 18psi
Datsun 1200 Ute
Subaru Blitzen '06 EZ30 4th gen, 3.0R Spec B
Contact:

Re: ADX and XDF creation help

Post by antus »

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: http://pcmhacking.net/forums/viewtopic.php?f=7&t=1396
User avatar
DavidBraley
Posts: 172
Joined: Thu Jun 07, 2018 8:15 am
cars: 1948 GMC
Location: Fort Collins, Colorado

Re: ADX and XDF creation help

Post by DavidBraley »

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

I'm a machinist... because engineers need heroes too.
User avatar
DavidBraley
Posts: 172
Joined: Thu Jun 07, 2018 8:15 am
cars: 1948 GMC
Location: Fort Collins, Colorado

Re: ADX and XDF creation help

Post by DavidBraley »

antus wrote:Yes, adx is a tunerpro proprietry format...
Well, that answered my first question!
-David

I'm a machinist... because engineers need heroes too.
Post Reply