TunerPro V5.00.7330.00 Motronic 1.3 Automatic Axis Info
Moderators: robertisaar, dex
TunerPro V5.00.7330.00 Motronic 1.3 Automatic Axis Info
right.. heres how far i have got into figuring out how to have automatic axis info on WOT ignition map 1, same will apply for other maps i just chose to start with a WOT map since its only got 1 string of axis info. for doing this with a 3D map like part throttle u would just do the same thing but for both columns and rows and would set the start of the axis data for each axis accordingly.
in this example im using a 173 BIN file with software number 1 267 355 705. im using WinOLS to look at the raw data and see where the start address is for the axis data tho if u know what ur looking for u can use any hex editor for this.
here is what im starting with (note: RPM axis has been edited in the file im using here so wont be the same on yours but will still be the same start location in hex). ive calculated the RPM points and manually entered them into the XDF parameter info for this map which gives me this:
to set for automatic axis info on any 173 BIN file with the WOT ignition 1 map in the same location u will want to set the label source to "internal, pure" which will then allow u to add the location of the axis info for this map which is shown above in the blue part at the bottom of the picture above. once u add the start address of the axis info then set "data size" to 8 bit and set "address step" to 1. if u then click apply u will end up with this:
this is now displaying the actual axis data that is in the BIN file as u can see above.
the only part i do not know yet and am hoping someone here will be able to help with is coming up with the conversion equation to calculate the axis data into RPM. it looks like it will require creating additional arguements in the XDF parameter info but im not sure how to do this.. it will need to have an equation that subtracts the axis data from 256 starting with the "86" located at the highest RPM end of the map and then multiply it by 40 then for the next axis data point down from that it will need to divide the current axis data by 40 then subtract the current raw axis data from the sum of the previous equation and then multiply that by 40 to give the second points RPM value and so on untill u reach the lowest RPM axis point on the map.
anyone have any idea how to create such an equation?
for an explanation of how to calculate RPM points from RPM axis data see here:
http://tunerpro.net/forum/viewtopic.php?t=2271
for other axis data the equation will be different, u multiply the sum of each axis equation by 40 here for RPM value but for temperature or whatever other axis information u will have to add/subtract/multiply/divide by whatever it is for working out that axis data in relevant units for the axis in the XDF.
in this example im using a 173 BIN file with software number 1 267 355 705. im using WinOLS to look at the raw data and see where the start address is for the axis data tho if u know what ur looking for u can use any hex editor for this.
here is what im starting with (note: RPM axis has been edited in the file im using here so wont be the same on yours but will still be the same start location in hex). ive calculated the RPM points and manually entered them into the XDF parameter info for this map which gives me this:
to set for automatic axis info on any 173 BIN file with the WOT ignition 1 map in the same location u will want to set the label source to "internal, pure" which will then allow u to add the location of the axis info for this map which is shown above in the blue part at the bottom of the picture above. once u add the start address of the axis info then set "data size" to 8 bit and set "address step" to 1. if u then click apply u will end up with this:
this is now displaying the actual axis data that is in the BIN file as u can see above.
the only part i do not know yet and am hoping someone here will be able to help with is coming up with the conversion equation to calculate the axis data into RPM. it looks like it will require creating additional arguements in the XDF parameter info but im not sure how to do this.. it will need to have an equation that subtracts the axis data from 256 starting with the "86" located at the highest RPM end of the map and then multiply it by 40 then for the next axis data point down from that it will need to divide the current axis data by 40 then subtract the current raw axis data from the sum of the previous equation and then multiply that by 40 to give the second points RPM value and so on untill u reach the lowest RPM axis point on the map.
anyone have any idea how to create such an equation?
for an explanation of how to calculate RPM points from RPM axis data see here:
http://tunerpro.net/forum/viewtopic.php?t=2271
for other axis data the equation will be different, u multiply the sum of each axis equation by 40 here for RPM value but for temperature or whatever other axis information u will have to add/subtract/multiply/divide by whatever it is for working out that axis data in relevant units for the axis in the XDF.
EthosMotorsports
bosch axis
Here's how I did the RPM axis for LH2.4 which is similar... I did most of it in Notepad+
This is the equation for the "highest" RPM cell. The axis starts at 0x3971. You have to repeat this with one less variable, for every cell until you get to the first...
I have tried using the I wish there was an way to SUM() using a memory range as a parameter... or better yet a way to reference memory relative to a table start
I even tried to make a terrible nasty mess of nested IFs and CELLs and SUMs, but I kept crashing TunerPro
This is the equation for the "highest" RPM cell. The axis starts at 0x3971. You have to repeat this with one less variable, for every cell until you get to the first...
Code: Select all
<MATH row="1" col="1" equation="ROUND(150000 / (POW(2;((255-(A+B+C+D+E+F+G+H+I+J+K+L+M+N+O+X)+128)/32)) * 64);0)*100">
<VAR id="A" type="address" address="0x3980" />
<VAR id="B" type="address" address="0x397F" />
<VAR id="C" type="address" address="0x397E" />
<VAR id="D" type="address" address="0x397D" />
<VAR id="E" type="address" address="0x397C" />
<VAR id="F" type="address" address="0x397B" />
<VAR id="G" type="address" address="0x397A" />
<VAR id="H" type="address" address="0x3979" />
<VAR id="I" type="address" address="0x3978" />
<VAR id="J" type="address" address="0x3977" />
<VAR id="K" type="address" address="0x3976" />
<VAR id="L" type="address" address="0x3975" />
<VAR id="M" type="address" address="0x3974" />
<VAR id="N" type="address" address="0x3973" />
<VAR id="O" type="address" address="0x3972" />
<VAR id="X" />
</MATH>
I even tried to make a terrible nasty mess of nested IFs and CELLs and SUMs, but I kept crashing TunerPro
http://www.tunerpro.net/examples.htm
Now, in making this example, I found a hell of a bug in TunerPro that I need to fix. Short of it is, don't use a normal variable (e.g. 'X') to represent "this." Instead, use the THIS() function like the example. I'll figure out a fix.
Now, in making this example, I found a hell of a bug in TunerPro that I need to fix. Short of it is, don't use a normal variable (e.g. 'X') to represent "this." Instead, use the THIS() function like the example. I'll figure out a fix.
***************************************
TunerPro Author
1989 Trans Am
TunerPro Author
1989 Trans Am
Actually, I do wonder why you couldn't get it to work, considering I sent you an example similar to the one I linked to above when you asked about it originally.revlimit wrote:Mangus no wonder why I could not get this to work, and I even told you about it, long ago
***************************************
TunerPro Author
1989 Trans Am
TunerPro Author
1989 Trans Am
First off Mangus, I love the software, just started using it on Wednesday, and almost have all the tables mapped for my 1985.5 Porsche 944NA. As soon as the car is running again, have a fuel line and regulator issue right now, I'll be tuning it with TunerPro, since it's the only one I've found that runs in Linux.
I think what Dmcl was attempting to do was to create Axis Labels via an automated means. You're examples are great, but won't work for a multi-dimensional table, unless I'm missing something. Here's is a simple example of how I was able to accomplish it using nested IF statements. I know, it's kind of ugly, but it works. Only issue I've noticed is that TunerPro sometimes gives me errors with the conversion, even though there are none.
Simple 3x3 Bosch Motronic 3.1 table:
A, B and C are defined as 'Raw Data at Address', with A being the first cell and C the last.
Rows - Throttle position
Cols - RPM
Imagine what it would look like for a 12x12 Part Throttle table.
Z
I think what Dmcl was attempting to do was to create Axis Labels via an automated means. You're examples are great, but won't work for a multi-dimensional table, unless I'm missing something. Here's is a simple example of how I was able to accomplish it using nested IF statements. I know, it's kind of ugly, but it works. Only issue I've noticed is that TunerPro sometimes gives me errors with the conversion, even though there are none.
Simple 3x3 Bosch Motronic 3.1 table:
A, B and C are defined as 'Raw Data at Address', with A being the first cell and C the last.
Rows - Throttle position
Code: Select all
IF(INDEX()==2;(256-C)*0.715;IF(INDEX()==1;((256-C)*0.715)-(B*0.715);IF(INDEX()==0;(((256-C)*0.715)-(B*0.715))-(A*0.715);0)))
Code: Select all
IF(INDEX()==2;(256-C)*40;IF(INDEX()==1;((256-C)*40)-(B*40);IF(INDEX()==0;(((256-C)*40)-(B*40))-(A*40);0)))
Z
Last edited by ziggy471 on Sat May 21, 2011 9:57 am, edited 1 time in total.
The example that I posted defines a table that represents an axis. Once that table is defined, in the 3D table that uses the axis, set the axis type to "linked - scale" and point to the axis table.
It can be done more cleanly than with nested IFs. Also, with IFs, you need to be careful about circular references.
But in the end, whatever you find works for your needs works for me. =)
-Mark
It can be done more cleanly than with nested IFs. Also, with IFs, you need to be careful about circular references.
But in the end, whatever you find works for your needs works for me. =)
-Mark
***************************************
TunerPro Author
1989 Trans Am
TunerPro Author
1989 Trans Am
So in other words, I did miss something. lolMangus wrote:The example that I posted defines a table that represents an axis. Once that table is defined, in the 3D table that uses the axis, set the axis type to "linked - scale" and point to the axis table.
It can be done more cleanly than with nested IFs. Also, with IFs, you need to be careful about circular references.
But in the end, whatever you find works for your needs works for me. =)
-Mark
That's why I stated I just started with it a couple days ago, just over 2 to be exact. Thanks for the clarification, that's much cleaner than what I figured out.
As for the circular reference, yeah I got good at that one, hence defining direct references.
Z
Thanks!!!Mangus wrote:http://www.tunerpro.net/examples.htm
Now, in making this example, I found a hell of a bug in TunerPro that I need to fix. Short of it is, don't use a normal variable (e.g. 'X') to represent "this." Instead, use the THIS() function like the example. I'll figure out a fix.
Good news for bosch tuner's!