View Full Version : XML/XDF files.. what do they do???
AndyF
29-01-2009, 08:34 PM
Following on from Jims request in Grahams 'how to' post I thought I'd put this one up to just give an overview as to how the XML's (or XDF's for the early evo's) work.
Basically all these files are are like road maps.
What they do is effectively take map co-ordinates and turn them into place names that people recognise.
Each ECU is made up of a certain number of bytes and these are all stored in a seperate address within the ECU's code.
So if, for example, you know from your disassembly that you've all been doing :lol: that the fuel map is stored at memory location 7160 and is 18 columns wide and 18 rows deep then all the xml/xdf file does is mean that whenever you open ecuflash or tunerpro or whatever software you use and you click on 'hi octane fuel map' the program automatically looks at all the values starting at location 7160 and arranges them into an 18x18 table for you to look at.
The xml/xdf file also tells the software about any conversion that it needs to do to the raw hexadecimal values that it finds in those locations.
Raw hex values range from 0-255 for every byte in the ECU and so there is normally always a conversion of some sort to get them into something that we all recognise.
In terms of fuelling, the values are converted in the following way:
128 / raw value * 14.7
So if a raw value of 128 is found in the table then the displayed value in terms of AFR = 128 / 128 * 14.7 = 14.7
if the raw value is 184 then the AFR = 128 / 184 * 14.7 = 10.23
And this is how it continues with all the other variables. So each variable has a stored memory location, a conversion equation and a range etc...
Andy
huwjones
29-01-2009, 09:40 PM
So you could say that the XML's are a template that allows us to view the contents of the ECU in a nice user friendly way...
AndyF
29-01-2009, 09:46 PM
Yep, that's exactly what they are.
One thing you have to remember though is that as with all things, the information contained within them is only as good as the person that wrote the file.... If the file is written wrongly then you can be thinking you're changing all sorts of good things when in reality you could be changing something completely different!!!!
AndyF
29-01-2009, 10:26 PM
Here are a few images from ECUFlash to further explain what I mean
Firstly, if you click on 'edit map' on any definition then you will get something that looks like the following which is a fuel map definition for an E7 fuel map
http://i64.photobucket.com/albums/h200/Andyfox21/geekmapped/deffile1.jpg
So what can we see from the image
The 'data values' box shows the values that are contained within the table. The address setting is the address within the ECU code where the map starts. The scaling section we will come to in a minute...
Next, we have the axis for both the x and y-axes of the graph that is shown and again, there is the address within the code that shows where the graph 'labels' are stored and this section also shows how many rows and columns there are in the table
Now we come to the scalings section
If you click on the 'Scalings...' button then you get the following screen
http://i64.photobucket.com/albums/h200/Andyfox21/geekmapped/deffile2.jpg
and looking from the previous image we can see that the data values are scaled as 'AFR'
So if we look up the AFR setting in the image above, we can then see the conversion figures that are used to switch the raw values to the data shown in the map and like I mentioned in my first post, you can see that the conversion for AFR is 14.7*128/x where x is the raw data value.
Hopefully this will make my first post make a little bit more sense.
Andy
scandinavian flick
03-02-2009, 10:01 PM
Andy F, that was just what the doctor ordered.. So any more defs make sure they come from... Here I guess .
Thank you
scandinavian flick
04-02-2009, 09:32 PM
make sticky if not already
huwjones
11-02-2009, 11:22 AM
Do we know what the raw input scaling is - i.e. zero and span?
I seem to remember someone mentioning that the OE narrowband sensor is only scaled to use 4 to 5 volts. I'm wondering if we can get a WBO2 to input directly into the ECU - assuming it hasn't been done already. The input circuitry will probably be able to see below 4 volts, just that it's not programmed to do so. At the end of the day, it'll be converting volts to Hz or converting volts directly to counts.
Am I talking bullsh1t, or am I teaching you to suck eggs?
Hi, re: def files, is there a way to reorganise the order the sub folders appear in ecuflash?
I've figured out how to change the headings/names etc, just wondered how to change the order of appearance as when viewing the xml, they don't seem to follow any particular order? Or am i missing something?
Sorry if it sounds a little stupid, just a bit curious :smile:
AndyF
15-02-2009, 04:38 PM
Huw,
The Innovate LC-1 wideband has a secondary output that you can input directly into the ECU in place of the std narrowband sensor. You can then use the LM programmer software to adjust the voltage output to match the std sensor.
Wip,
I assume you're talking about where they appear within ECUFlash? If so, you can alter the base xml files and change the 'category' field for each map so that it appears in another section etc.
Andy
huwjones
15-02-2009, 10:47 PM
Aye, knew that Andy. I was just wondering if there was a way of modding the OE ECU to accept a direct input from a wideband...
AndyF
15-02-2009, 10:54 PM
Do you mean get the std ECU to run off a full scale wideband sensor?
If so, that would mean a big change of code because at the moment it only runs off the narrowband sensor during closed loop running and on open loop it interprets the figures direct from the map and doesn't rely on the sensor.
Andy
huwjones
16-02-2009, 11:34 AM
Ah I see, no go then. :(
craigybaby37
19-10-2010, 07:52 PM
Interesting read this yet another thing i have learnt on my quest to learn mapping
With regards to the XML files is this how things like anti-lag and launch control are installed by adding extra XML files within the ECU and then altering the contents of the XML file to control the limit of which the launch control is set to for example??
neilm
19-10-2010, 08:07 PM
hi
could some one tell me about the evo7base etc
is it a xml or what does it do
thanks
AndyF
20-10-2010, 09:00 AM
With regards to the XML files is this how things like anti-lag and launch control are installed by adding extra XML files within the ECU and then altering the contents of the XML file to control the limit of which the launch control is set to for example??
Not quite Craig,
The best way to think of it is that the xml file is a file that is only used by the ECUFlash program as a kind of road map to tell it where things actually are based in the real ECU file (the one that you modify and save within ECUFlash).
To add the extra features you actually need to modify the ECU file itself and add extra code to it. Once you have done that, you can then add the extra sections to the xml file so that you can modify those using ecuflash.
Hope that clears it up a little bit.
hi
could some one tell me about the evo7base etc. is it a xml or what does it do
thanks
Hi Neil,
The way in which the xml files are used is that there are certain things that are the same regardless of which model of car you have i.e. the fuel and timing maps for every type of evo 7 are stored in the same place within the ecu. However for the different model types, certain things are located in different areas. All of the common locations are stored within the evo7base xml and any areas that are different are then stored in the individual xmls for that particular model.
In theory, you could do away with the 'base' files but it would mean that the xml's for each different rom file would then have to include the addresses for all the timing and fuelling maps etc. Rather than do this, it makes more sense to just combine all the common items into a base file and just have the individual differences in the seperate xml's for the different rom files.
Andy
vBulletin® v3.8.7, Copyright ©2000-2012, vBulletin Solutions, Inc.