ecuEdit v2.4 - ECU Tuning & Logging solution

Developer topics relating to software that provides a tuning UI to alter ECU code and data

Moderator: Freon

Postby JRSCCivic98 » Mon Apr 17, 2006 5:55 am

xswrx, are there any ECUs that xmlwrite does not support? Also, I noticed that some maps (very few) in the list it generates are not correct or rather... they don't seem to be properly layed out while others don't have correct names as well. Is this something that you will be fixing in the near future? Does it cause any issues at the current moment?
JRSCCivic98
 
Posts: 201
Joined: Sat Nov 12, 2005 9:45 am

Postby xswrex » Mon Apr 17, 2006 10:01 pm

JRSCCivic98 wrote:xswrx, are there any ECUs that xmlwrite does not support? Also, I noticed that some maps (very few) in the list it generates are not correct or rather... they don't seem to be properly layed out while others don't have correct names as well. Is this something that you will be fixing in the near future? Does it cause any issues at the current moment?


i thought you said you're gonna shut up :lol:

yes there are still quite a few ecus that are not supported, mainly 2005 and onwards. As for the maps that appear not to be correct, see known issues in the readme.
Fixing things....be patient, there should be no issues using these maps, provided you know what you are doing. Common sense :wink:
xswrex
 
Posts: 110
Joined: Thu Oct 20, 2005 3:50 am

Postby xswrex » Mon Apr 17, 2006 10:27 pm

epifan!!! Give us an example how to write the xml using the map_struct. It is a pity you have defined this and we can't use it!

For example this map
single address is 0x29471, type is 0x05

Code: Select all
<map name="#05 - Hi Det Fuel Map - 00029471" type="3" active="1" level="0">
<cols count="16" func_2val="([value]*0.0001220703125)" func_val2="0.0001220703125/[value]" offset="#00029450" power="2" format="%.2f" caption="grams" desc="Engine Load - Air per Cyl. Charge">
</cols>
<rows count="18" func_2val="([value]*0.1953125)" func_val2="0.1953125/[value]" offset="#0002942B" power="2" format="%.2f" caption="RPM" desc="Engine RPM">
</rows>
<data func_2val="1881.59999999999991/([value]+(128))" func_val2="([value]-(128))*1881.59999999999991" offset="#00029472" power="1" format="%.2f" caption="AFR" desc="Base Fuelling" color_dir="1" inc="1" incb="5" inc_dir="1">
</data>
</map>
xswrex
 
Posts: 110
Joined: Thu Oct 20, 2005 3:50 am

Postby epifan » Mon Apr 17, 2006 10:34 pm

xswrex wrote:epifan!!! Give us an example how to write the xml using the map_struct. It is a pity you have defined this and we can't use it!

For example this map
single address is 0x29471, type is 0x05


I think, this is quite enough:
Code: Select all
<map name="#05 - Hi Det Fuel Map - 00029471" type="3" active="1" level="0" offset="#29471">
<cols func_2val="([value]*0.0001220703125)" func_val2="0.0001220703125/[value]" format="%.2f" caption="grams" desc="Engine Load - Air per Cyl. Charge">
</cols>
<rows func_2val="([value]*0.1953125)" func_val2="0.1953125/[value]" format="%.2f" caption="RPM" desc="Engine RPM">
</rows>
<data func_2val="1881.59999999999991/([value]+(128))" func_val2="([value]-(128))*1881.59999999999991" format="%.2f" caption="AFR" desc="Base Fuelling" color_dir="1" inc="1" incb="5" inc_dir="1">
</data>
</map>


Would be supported soon ;)
epifan
 
Posts: 197
Joined: Sat Nov 26, 2005 1:23 am

Postby xswrex » Tue Apr 18, 2006 2:24 am

yes this is what i am talking about!

no axis count & offsets! This information is already described by the single address pointing to map type byte. The map_struct can take care of the "translation"
xswrex
 
Posts: 110
Joined: Thu Oct 20, 2005 3:50 am

Postby epifan » Wed Apr 19, 2006 12:45 pm

new ecuEdit v1.2.0.63beta
- <map offset=""> support. <map_struct> needed to find map params
- bug with many open windows (more 200) fixed (some MSWindows limitation...)
- some bug fixes and improvements

Download ecuEdit v1.2.0.63beta

Please, include in ecuedit.xml in <config> tag:
Code: Select all
<default_ecu_type value="Sub16"/>


and some finded ECUtype descriptions:
Code: Select all
<ecu_tools>
   <map_struct id="#05" type="3" ecu_type="Sub16">
      <element attr="cols_signed" value="False"/>
      <element attr="rows_signed" value="False"/>
      <element attr="data_signed" value="False"/>
      <element attr="cols_power" value="2"/>
      <element attr="rows_power" value="2"/>
      <element attr="data_power" value="1"/>
      <element attr="data_offset" value="[offset]+1"/>
      <element offset="-1" attr="cols" value="[byte]+1"/>
      <element offset="-([cols]*[cols_power])" attr="cols_offset" value="[offset]"/>
      <element offset="-1" attr="rows" value="[byte]+1"/>
      <element offset="-([rows]*[rows_power])" attr="rows_offset" value="[offset]"/>
   </map_struct>
   <map_struct id="#04" type="3" ecu_type="Sub16">
      <element attr="cols_signed" value="False"/>
      <element attr="rows_signed" value="False"/>
      <element attr="data_signed" value="False"/>
      <element attr="cols_power" value="1"/>
      <element attr="rows_power" value="2"/>
      <element attr="data_power" value="1"/>
      <element attr="data_offset" value="[offset]+1"/>
      <element offset="-1" attr="cols" value="[byte]+1"/>
      <element offset="-([cols]*[cols_power])" attr="cols_offset" value="[offset]"/>
      <element offset="-1" attr="rows" value="[byte]+1"/>
      <element offset="-([rows]*[rows_power])" attr="rows_offset" value="[offset]"/>
   </map_struct>
   <map_struct id="#15" type="3" ecu_type="Sub16">
      <element attr="cols_signed" value="False"/>
      <element attr="rows_signed" value="False"/>
      <element attr="data_signed" value="False"/>
      <element attr="cols_power" value="2"/>
      <element attr="rows_power" value="2"/>
      <element attr="data_power" value="2"/>
      <element attr="data_offset" value="[offset]+1"/>
      <element offset="-1" attr="cols" value="[byte]+1"/>
      <element offset="-([cols]*[cols_power])" attr="cols_offset" value="[offset]"/>
      <element offset="-1" attr="rows" value="[byte]+1"/>
      <element offset="-([rows]*[rows_power])" attr="rows_offset" value="[offset]"/>
   </map_struct>
   <map_struct id="#14" type="3" ecu_type="Sub16">
      <element attr="cols_signed" value="False"/>
      <element attr="rows_signed" value="False"/>
      <element attr="data_signed" value="False"/>
      <element attr="cols_power" value="1"/>
      <element attr="rows_power" value="2"/>
      <element attr="data_power" value="2"/>
      <element attr="data_offset" value="[offset]+1"/>
      <element offset="-1" attr="cols" value="[byte]+1"/>
      <element offset="-([cols]*[cols_power])" attr="cols_offset" value="[offset]"/>
      <element offset="-1" attr="rows" value="[byte]+1"/>
      <element offset="-([rows]*[rows_power])" attr="rows_offset" value="[offset]"/>
   </map_struct>
   <map_struct id="#11" type="3" ecu_type="Sub16">
      <element attr="cols_signed" value="False"/>
      <element attr="rows_signed" value="False"/>
      <element attr="data_signed" value="False"/>
      <element attr="cols_power" value="2"/>
      <element attr="rows_power" value="1"/>
      <element attr="data_power" value="2"/>
      <element attr="data_offset" value="[offset]+1"/>
      <element offset="-1" attr="cols" value="[byte]+1"/>
      <element offset="-([cols]*[cols_power])" attr="cols_offset" value="[offset]"/>
      <element offset="-1" attr="rows" value="[byte]+1"/>
      <element offset="-([rows]*[rows_power])" attr="rows_offset" value="[offset]"/>
   </map_struct>
   <map_struct id="#01" type="3" ecu_type="Sub16">
      <element attr="cols_signed" value="False"/>
      <element attr="rows_signed" value="False"/>
      <element attr="data_signed" value="False"/>
      <element attr="cols_power" value="2"/>
      <element attr="rows_power" value="1"/>
      <element attr="data_power" value="1"/>
      <element attr="data_offset" value="[offset]+1"/>
      <element offset="-1" attr="cols" value="[byte]+1"/>
      <element offset="-([cols]*[cols_power])" attr="cols_offset" value="[offset]"/>
      <element offset="-1" attr="rows" value="[byte]+1"/>
      <element offset="-([rows]*[rows_power])" attr="rows_offset" value="[offset]"/>
   </map_struct>
   <map_struct id="#00" type="3" ecu_type="Sub16">
      <element attr="cols_signed" value="False"/>
      <element attr="rows_signed" value="False"/>
      <element attr="data_signed" value="False"/>
      <element attr="cols_power" value="1"/>
      <element attr="rows_power" value="1"/>
      <element attr="data_power" value="1"/>
      <element attr="data_offset" value="[offset]+1"/>
      <element offset="-1" attr="cols" value="[byte]+1"/>
      <element offset="-([cols]*[cols_power])" attr="cols_offset" value="[offset]"/>
      <element offset="-1" attr="rows" value="[byte]+1"/>
      <element offset="-([rows]*[rows_power])" attr="rows_offset" value="[offset]"/>
   </map_struct>
   <map_struct id="#85" type="3" ecu_type="Sub16">
      <element attr="cols_signed" value="False"/>
      <element attr="rows_signed" value="False"/>
      <element attr="data_signed" value="False"/>
      <element attr="cols_power" value="2"/>
      <element attr="rows_power" value="2"/>
      <element attr="data_power" value="1"/>
      <element attr="data_offset" value="[offset]+1"/>
      <element offset="-1" attr="cols" value="[byte]+1"/>
      <element offset="-([cols_power])" attr="cols_offset" value="[offset]"/>
      <element offset="-([cols_power])" attr="cols_inc_value" value="65536/[v16r]"/>
      <element offset="-1" attr="rows" value="[byte]+1"/>
      <element offset="-([rows_power])" attr="rows_offset" value="[offset]"/>
      <element offset="-([rows_power])" attr="rows_inc_value" value="65536/[v16r]"/>
   </map_struct>
   <map_struct id="#84" type="3" ecu_type="Sub16">
      <element attr="cols_signed" value="False"/>
      <element attr="rows_signed" value="False"/>
      <element attr="data_signed" value="False"/>
      <element attr="cols_power" value="1"/>
      <element attr="rows_power" value="2"/>
      <element attr="data_power" value="1"/>
      <element attr="data_offset" value="[offset]+1"/>
      <element offset="-1" attr="cols" value="[byte]+1"/>
      <element offset="-([cols_power])" attr="cols_offset" value="[offset]"/>
      <element offset="-([cols_power])" attr="cols_inc_value" value="256/[v8]"/>
      <element offset="-1" attr="rows" value="[byte]+1"/>
      <element offset="-([rows_power])" attr="rows_offset" value="[offset]"/>
      <element offset="-([rows_power])" attr="rows_inc_value" value="65536/[v16r]"/>
   </map_struct>
   <map_struct id="#11" type="2" ecu_type="Sub16">
      <element attr="cols_signed" value="False"/>
      <element attr="rows_signed" value="False"/>
      <element attr="data_signed" value="False"/>
      <element attr="rows_power" value="2"/>
      <element attr="data_power" value="2"/>
      <element attr="data_offset" value="[offset]+1"/>
      <element offset="-1" attr="rows" value="[byte]+1"/>
      <element offset="-([rows_power]*[rows])" attr="rows_offset" value="[offset]"/>
   </map_struct>
   <map_struct id="#81" type="2" ecu_type="Sub16">
      <element attr="cols_signed" value="False"/>
      <element attr="rows_signed" value="False"/>
      <element attr="data_signed" value="False"/>
      <element attr="rows_power" value="2"/>
      <element attr="data_power" value="1"/>
      <element attr="data_offset" value="[offset]+1"/>
      <element offset="-1" attr="rows" value="[byte]+1"/>
      <element offset="-[rows_power]" attr="rows_offset" value="[offset]"/>
      <element offset="-[rows_power]" attr="rows_inc_value" value="65536/[v16r]"/>
   </map_struct>
   <map_struct id="#80" type="2" ecu_type="Sub16">
      <element attr="cols_signed" value="False"/>
      <element attr="rows_signed" value="False"/>
      <element attr="data_signed" value="False"/>
      <element attr="rows_power" value="1"/>
      <element attr="data_power" value="1"/>
      <element attr="data_offset" value="[offset]+1"/>
      <element offset="-1" attr="rows" value="[byte]+1"/>
      <element offset="-[rows_power]" attr="rows_offset" value="[offset]"/>
      <element offset="-[rows_power]" attr="rows_inc_value" value="256/[v8]"/>
   </map_struct>
   <map_struct id="#91" type="2" ecu_type="Sub16">
      <element attr="cols_signed" value="False"/>
      <element attr="rows_signed" value="False"/>
      <element attr="data_signed" value="False"/>
      <element attr="rows_power" value="2"/>
      <element attr="data_power" value="2"/>
      <element attr="data_offset" value="[offset]+1"/>
      <element offset="-1" attr="rows" value="[byte]+1"/>
      <element offset="-[rows_power]" attr="rows_offset" value="[offset]"/>
      <element offset="-[rows_power]" attr="rows_inc_value" value="65536/[v16r]"/>
   </map_struct>
</ecu_tools>
epifan
 
Posts: 197
Joined: Sat Nov 26, 2005 1:23 am

Postby JRSCCivic98 » Wed Apr 19, 2006 1:02 pm

You lost me a little on this. What is the need for the new defs if someone uses xmlwrite to build a defs file? I guess I don't understand what the relation of the ecuedit.xml and map_struct.xml file is. Can you please explain?
JRSCCivic98
 
Posts: 201
Joined: Sat Nov 12, 2005 9:45 am

Postby qoncept » Wed Apr 19, 2006 2:04 pm

Looks like those are for the type byte Calvin found with his offsets. It'll let you just give the table a single offset instead of an offset for the each axis and the table data.
qoncept
 
Posts: 249
Joined: Tue Oct 04, 2005 6:43 pm
Location: Montgomery, AL

Postby JRSCCivic98 » Wed Apr 19, 2006 5:15 pm

So is it redundant, useless, needed if you use full xmlwrite defs? If so, how much of the original ecuedit.xml is needed for the program to work? I take it just the config part? I just don't completely understand xml that's all, but want to make sure ecuEdit has only what it needs to work properly without any left over/redundant crap it doesn't need. Sometimes, as quick changes/revisions are make and behavioral changes are made to the program bogus stuff is left behind. I'm good at finding bugs in software, because I try to do the unthinkable with it and generally tinker with all of it's capabilities to stress them out.
JRSCCivic98
 
Posts: 201
Joined: Sat Nov 12, 2005 9:45 am

Postby qoncept » Wed Apr 19, 2006 7:11 pm

I don't know for certain, but I think the xmlwrite definitions are giving ecuEdit more than it needs now. It's not exactly redundant, since other manufacturers might not necessarily have a byte that defines the table like that. The xmlwrite definitions could be shortened to only have the offset to the type byte instead of offsets for the table and axiis though.
qoncept
 
Posts: 249
Joined: Tue Oct 04, 2005 6:43 pm
Location: Montgomery, AL

Postby epifan » Wed Apr 19, 2006 10:33 pm

JRSCCivic98 wrote:I guess I don't understand what the relation of the ecuedit.xml and map_struct.xml file is. Can you please explain?

You must copy all <map_struct> tags from map_struct.xml to ecuedit.xml in <ecu_tools> tag :wink:
epifan
 
Posts: 197
Joined: Sat Nov 26, 2005 1:23 am

Postby xswrex » Wed Apr 19, 2006 10:37 pm

guys you are missing the big picture here and how easy it will be to find the maps in any subaru rom.
The questions you are asking tell me that you don't understand what this is all about.
Calvin has not only posted the addresses, but also the STRUCTURES
of the ROM. If you can't read that, well.....
there is a whole thread here
http://forums.openecu.org/viewtopic.php?t=307
xswrex
 
Posts: 110
Joined: Thu Oct 20, 2005 3:50 am

Postby New2Scoobs » Thu Apr 20, 2006 1:35 am

Do we need a new version of XMLWrite now that incorporates Epifan's changes?

Also Epifan, in your ECU_STRUCT.XML file there are 2 entries for <map_struct id="#11" - is that correct or is it a typo?
New2Scoobs
 
Posts: 60
Joined: Fri Nov 04, 2005 5:55 am

Postby epifan » Thu Apr 20, 2006 2:09 am

New2Scoobs wrote:Also Epifan, in your ECU_STRUCT.XML file there are 2 entries for <map_struct id="#11" - is that correct or is it a typo?

ecuEdit needs different <map_struct> for 3d,2d,1d maps. In map_struct.xml one map for 3d and another for 2d
epifan
 
Posts: 197
Joined: Sat Nov 26, 2005 1:23 am

Postby xswrex » Thu Apr 20, 2006 2:17 am

new version is needed and works fine with new type (3).
Currently epifan's integration into ecuedit is spawning xmlwrite with command line parameter 1. I am sure he can change it easily to for both options :)

i have updated the thread and the attachment
http://forums.openecu.org/viewtopic.php?p=3525#3525

epifan fantastic work!
xswrex
 
Posts: 110
Joined: Thu Oct 20, 2005 3:50 am

PreviousNext

Return to Tuning Software

Who is online

Users browsing this forum: No registered users and 0 guests