Notices
ECU Flash

New Maps for Evo 7 and 9

Thread Tools
 
Search this Thread
 
Old Aug 28, 2008, 09:15 PM
  #76  
EvoM Guru
iTrader: (50)
 
mrfred's Avatar
 
Join Date: Mar 2006
Location: Tri-Cities, WA // Portland, OR
Posts: 9,675
Received 128 Likes on 96 Posts
correct ign trim vs coolant temp maps

Mattjin's tables have prompted me to work through the ignition control subroutines starting from the very beginning. The sequence of steps is:

1a) Lookup values from low octane ign tables

1b) Lookup values from high octane ign tables

2) Lookup values from low temp ign trim tables ("new" tables)

3) Lookup values from low and high octance EGR advance tables

4) Use octane value to generate octane-averaged ign advance from 1a and 1b

5a) Combine high octane ign adv value with high octane EGR advance value

5b) Combine low octane ign adv value with low octance EGR advance value

6) Use octane value to generate octane averaged EGR-enabled ign advance from 5a and 5b.

7) Combine oct avg ign advance (without EGR adv) (4) with low temp ign advance trim (2).

8) Use Mattjin's Warmup Retard Control table to interpolate between octane-averaged ign advance (without EGR adv) (4) and oct-averaged advance that includes the low temp ign trim (7) based on coolant temp.

9) That's as far as I've gotten thus far. The Base Low Temp Timing Trim maps represent the maximum trim values. The actual trim value used scales with Mattjin's Warmup Retard Control table based on coolant temp.

Sorry if that seemed overly complicated, but there's a lot going on in these routines. Anyhow, the correctly defined ign tables that are related to coolant temp for an 88590015 Evo 9 are:

----
<table name="Base Low Coolant Temp Timing Trim Map #1" category="Timing" address="3aa9" type="3D" level="2" swapxy="true" scaling="TimingTrim8">
<table name="Engine Load" address="6f2c" type="X Axis" elements="21" scaling="Load"/>
<table name="RPM" address="6efa" type="Y Axis" elements="20" scaling="RPM"/>
</table>

<table name="Base Low Coolant Temp Timing Trim Map #2" category="Timing" address="5883" type="3D" level="2" swapxy="true" scaling="TimingTrim8">
<table name="Engine Load" address="6f2c" type="X Axis" elements="21" scaling="Load"/>
<table name="RPM" address="6efa" type="Y Axis" elements="20" scaling="RPM"/>
</table>

<table name="Base Low Coolant Temp Timing Trim Map #3" category="Timing" address="5d93" type="3D" level="2" swapxy="true" scaling="TimingTrim8">
<table name="Engine Load" address="6f2c" type="X Axis" elements="21" scaling="Load"/>
<table name="RPM" address="6efa" type="Y Axis" elements="20" scaling="RPM"/>
</table>

<table name="Percent Low Temp Timing Trim vs Coolant Temp" category="Timing" address="3cb8" type="2D" level="2" scaling="Percent255">
<table name="Engine Temp" address="804c" type="Y Axis" elements="8" scaling="Temp"/>
</table>
----

The new scalings are:
----
<scaling name="Percent255" units="%" toexpr="100*x/255" frexpr="255*x/100" format="%.0f" min="0" max="100" inc="1" storagetype="uint8" endian="big"/>
<scaling name="TimingTrim8" units="units" toexpr="x-128" frexpr="x+128" format="%.0f" min="-128" max="128" inc="1" storagetype="uint8" endian="big"/>
----

Some people had mentioned EGR advance tables. For the 88590015 Evo 9, these are covered in this post:

https://www.evolutionm.net/forums/sh...89#post5474289

Hopefully someone here can find the corresponding tables in the Evo 8 ROMs.

I'm starting work now on figuring out exactly how Mattjin's other ign related tables scale ign timing so that I can figure out the correct scalings.

Here are a few of the maps:
Attached Thumbnails New Maps for Evo 7 and 9-warmup-ign-trim-maps.gif  

Last edited by mrfred; Aug 28, 2008 at 09:20 PM.
Old Aug 29, 2008, 01:03 AM
  #77  
Evolved Member
Thread Starter
 
Mattjin's Avatar
 
Join Date: Apr 2008
Location: Sydney, Australia
Posts: 604
Likes: 0
Received 0 Likes on 0 Posts
In my own maps I use a Percent 256 scaling, but considering the amount of people having trouble with the Percent 128 scaling I didnt want to confuse things anymore :-)

I also didn't label the maps as cold maps as the temperature range used for the control map varies greatly with each of the roms. Some of the 7's and 8's dont use them when cold, but instead halfway through warmup and right up until operating temp (such as my own rom). Almost every rom runs 0% trim on that map when stone cold.

One more thing for you to check. In every rom I have looked at there is a map labelled as a knock filter that I am almost certain is the EGR duty map. It is easy to identify. In laymans terms, it is the map with a ring of zeroes around it. Some roms have two of them. For my rom I have verified one of them is 100% for certain an EGR duty for either Neutral, or for Neutral, 1st and 2nd Gears as per the rest of my rom. The hard part is not being able to datalog EGR duty output other than connecting a scope and going for a drive.

Seeing how you use 88590015, I have the map listed as a Knock Filter at 4139. As some evidence of it being EGR related, you will notice it takes up the same rpm and load range as the EGR Advance maps. Take a look.
Old Aug 29, 2008, 08:38 AM
  #78  
EvoM Community Team
iTrader: (15)
 
fostytou's Avatar
 
Join Date: Sep 2006
Location: Aurora, IL
Posts: 3,143
Received 6 Likes on 6 Posts
Wow, very impressive breakdown mrFred! Frankly, the more detail the better if you ask me.
Old Aug 29, 2008, 09:51 AM
  #79  
EvoM Guru
iTrader: (50)
 
mrfred's Avatar
 
Join Date: Mar 2006
Location: Tri-Cities, WA // Portland, OR
Posts: 9,675
Received 128 Likes on 96 Posts
Originally Posted by Mattjin
In my own maps I use a Percent 256 scaling, but considering the amount of people having trouble with the Percent 128 scaling I didnt want to confuse things anymore :-)

I also didn't label the maps as cold maps as the temperature range used for the control map varies greatly with each of the roms. Some of the 7's and 8's dont use them when cold, but instead halfway through warmup and right up until operating temp (such as my own rom). Almost every rom runs 0% trim on that map when stone cold.

One more thing for you to check. In every rom I have looked at there is a map labelled as a knock filter that I am almost certain is the EGR duty map. It is easy to identify. In laymans terms, it is the map with a ring of zeroes around it. Some roms have two of them. For my rom I have verified one of them is 100% for certain an EGR duty for either Neutral, or for Neutral, 1st and 2nd Gears as per the rest of my rom. The hard part is not being able to datalog EGR duty output other than connecting a scope and going for a drive.

Seeing how you use 88590015, I have the map listed as a Knock Filter at 4139. As some evidence of it being EGR related, you will notice it takes up the same rpm and load range as the EGR Advance maps. Take a look.
Yes, the table with data starting at 0x4139 is the EGR duty vs load and rpm in the 88590015 ROM. Its listed in the link in my post above yours.

Yeah, its hard to come up with appropriate names for some of these tables. The Evo 9 also does not use the coolant temp based trim until the coolant temp is about 0 deg C. Its a possibility that at really low temps, the engine would run worse with less timing.

EDIT: The timing trim adjustment table vs coolant temp uses the full range of the 8-bit number to do the scaling, and since the maximum value of an 8 bit number is 255, that's why I normalize to 255 in the scaling entry. I used to want to do 256, but I've decided that 255 is more appropriate.

Last edited by mrfred; Aug 29, 2008 at 09:56 AM.
Old Aug 29, 2008, 10:14 AM
  #80  
Evolved Member
 
cossie1's Avatar
 
Join Date: Aug 2007
Location: UK
Posts: 569
Likes: 0
Received 1 Like on 1 Post
Can I ask why mitsi would have used °C for temp in the map's rather than use °F ?

I have always assumed as they use KMH in japan they would use °F too ?
Old Aug 29, 2008, 10:33 AM
  #81  
Evolving Member
 
Jumperalex's Avatar
 
Join Date: Sep 2004
Location: Alexandria VA
Posts: 413
Likes: 0
Received 3 Likes on 3 Posts
I would bet they didn't use any temp and that it is more a function of the conversation factor (since the word "scaling" is incorrectly used IMNSHO) used by our good man Colby, or whoever first created our definition files. For me, I have created both a °F "scaling" and a Bar scaling (because my boost gauge reads in bar).

EDIt ummm to finish my thought ... I'm betting in the ecu it is not in any "temp" scale but in a raw uint8/16 or hex format just like all the tables that reference temp.
Old Aug 29, 2008, 10:36 AM
  #82  
Evolving Member
 
Jumperalex's Avatar
 
Join Date: Sep 2004
Location: Alexandria VA
Posts: 413
Likes: 0
Received 3 Likes on 3 Posts
Originally Posted by mrfred
EDIT: The timing trim adjustment table vs coolant temp uses the full range of the 8-bit number to do the scaling, and since the maximum value of an 8 bit number is 255, that's why I normalize to 255 in the scaling entry. I used to want to do 256, but I've decided that 255 is more appropriate.
Could this be because even though there are 256 possible values they aren't using '0'? or '256'?
Old Aug 29, 2008, 10:55 AM
  #83  
Evolved Member
iTrader: (2)
 
l2r99gst's Avatar
 
Join Date: Mar 2004
Location: CA
Posts: 3,499
Likes: 0
Received 4 Likes on 4 Posts
OK, I tried finding the maps that mrfred listed for his ROM in my 96940011 ROM.

I seem to only be able to find the first ignition trim map and also the ignition trims vs coolant temp 2D.

Maybe someone can look to make sure I am right and I'm not missing anything. My trim map looks a bit different than mrfreds:

Code:
<table name="Percent Low Temp Timing Trim vs Coolant Temp" category="Timing" address="38b4" type="2D" level="2" scaling="Percent255">
	<table name="Engine Temp" address="6f12" type="Y Axis" elements="8" scaling="Temp"/>
	</table>

	<table name="Base Low Coolant Temp Timing Trim Map #1" category="Timing" address="36cd" type="3D" level="2" swapxy="true" scaling="TimingTrim8">
	<table name="Engine Load" address="5ce8" type="X Axis" elements="19" scaling="Load"/>
	<table name="RPM" address="5cb6" type="Y Axis" elements="20" scaling="RPM"/>
	</table>



EDIT: I just noticed this is the same address that ECUFLash has listed as 'Boost Enhancement Enrich/Enlean (Anti-lag) Map' in the 96940011 definition file, under the fuel category. So, is the ignition trim the true function of this table?

Going back to the last page, post #75, Mattjin appears to state this to be the case.



Eric
Attached Thumbnails New Maps for Evo 7 and 9-96940011.jpg  

Last edited by l2r99gst; Aug 29, 2008 at 11:04 AM.
Old Aug 29, 2008, 10:57 AM
  #84  
EvoM Guru
iTrader: (50)
 
mrfred's Avatar
 
Join Date: Mar 2006
Location: Tri-Cities, WA // Portland, OR
Posts: 9,675
Received 128 Likes on 96 Posts
Originally Posted by cossie1
Can I ask why mitsi would have used °C for temp in the map's rather than use °F ?

I have always assumed as they use KMH in japan they would use °F too ?
km/h and deg C are both SI units. deg F is Imperial units.

Originally Posted by Jumperalex
I would bet they didn't use any temp and that it is more a function of the conversation factor (since the word "scaling" is incorrectly used IMNSHO) used by our good man Colby, or whoever first created our definition files. For me, I have created both a °F "scaling" and a Bar scaling (because my boost gauge reads in bar).

EDIt ummm to finish my thought ... I'm betting in the ecu it is not in any "temp" scale but in a raw uint8/16 or hex format just like all the tables that reference temp.
You gotta spend some time looking through the code. Its most definitely temperature units. If you can read the code, then someone trying to say these aren't temperature units is like someone trying to tell you that your Evo is a Subaru.

All the sensor values, where appropriate, are scaled to SI units in the ECU. Its fine to convert to non-SI units if you want. I've done it with my psi scaling for boost related stuff.

Originally Posted by Jumperalex
Could this be because even though there are 256 possible values they aren't using '0'? or '256'?
There are 256 values because of zero, but that's like saying that 0 to 10 has 11 values. It does, but 10 is still the maximum value, and converting it to percent is done by dividing by 10 and not 11.
Old Aug 29, 2008, 11:50 AM
  #85  
Evolved Member
 
cossie1's Avatar
 
Join Date: Aug 2007
Location: UK
Posts: 569
Likes: 0
Received 1 Like on 1 Post
Originally Posted by mrfred
km/h and deg C are both SI units. deg F is Imperial units.


Good answer
Old Aug 29, 2008, 12:54 PM
  #86  
Evolving Member
 
Jumperalex's Avatar
 
Join Date: Sep 2004
Location: Alexandria VA
Posts: 413
Likes: 0
Received 3 Likes on 3 Posts
fair enough. I was just guessing that regardless of how they are used, in the ecu they still start as 0'1 and 1's and then uint or hex ... neither of which are inherently a temp scale unless the ADC specifically converts it that way.

Which ... it sounds like ... it might from what you said. I'm no where even close to deciphering the roms. I was just bored at work and guessing at the reason for using C vs F. Now that I'm home and I see the conversion in ecuflash is +/-40 with no multiplication factor involved ... [sheepish grin]
Old Aug 29, 2008, 02:08 PM
  #87  
Evolving Member
 
JoeBee's Avatar
 
Join Date: Sep 2006
Location: Germany
Posts: 152
Likes: 0
Received 0 Likes on 0 Posts
Originally Posted by l2r99gst
OK, I tried finding the maps that mrfred listed for his ROM in my 96940011 ROM.

I seem to only be able to find the first ignition trim map and also the ignition trims vs coolant temp 2D.

Maybe someone can look to make sure I am right and I'm not missing anything. My trim map looks a bit different than mrfreds:

Code:
<table name="Percent Low Temp Timing Trim vs Coolant Temp" category="Timing" address="38b4" type="2D" level="2" scaling="Percent255">
	<table name="Engine Temp" address="6f12" type="Y Axis" elements="8" scaling="Temp"/>
	</table>

	<table name="Base Low Coolant Temp Timing Trim Map #1" category="Timing" address="36cd" type="3D" level="2" swapxy="true" scaling="TimingTrim8">
	<table name="Engine Load" address="5ce8" type="X Axis" elements="19" scaling="Load"/>
	<table name="RPM" address="5cb6" type="Y Axis" elements="20" scaling="RPM"/>
	</table>



EDIT: I just noticed this is the same address that ECUFLash has listed as 'Boost Enhancement Enrich/Enlean (Anti-lag) Map' in the 96940011 definition file, under the fuel category. So, is the ignition trim the true function of this table?

Going back to the last page, post #75, Mattjin appears to state this to be the case.



Eric
I have found the same and remark ist here:
https://www.evolutionm.net/forums/sh...d.php?t=342472
Post 5
'Boost Enhancement Enrich/Enlean (Anti-lag) Map' is only used in the ignition functions of the ecu.
Old Aug 29, 2008, 03:31 PM
  #88  
EvoM Guru
iTrader: (50)
 
mrfred's Avatar
 
Join Date: Mar 2006
Location: Tri-Cities, WA // Portland, OR
Posts: 9,675
Received 128 Likes on 96 Posts
Originally Posted by l2r99gst
...

EDIT: I just noticed this is the same address that ECUFLash has listed as 'Boost Enhancement Enrich/Enlean (Anti-lag) Map' in the 96940011 definition file, under the fuel category. So, is the ignition trim the true function of this table?

Going back to the last page, post #75, Mattjin appears to state this to be the case.



Eric
Its definitely a coolant temp-based ign trim compensation. There are only two flags that control whether it is skipped. One is Periphery0 (FAA) bit9. The trim adjustment can be skipped by setting this bit = 0 (i.e, 0x56DA -> 0x54DA will disable). There is also another flag that can cause it to be skipped. The value for this flag is not stored with all the other table data but rather in the code itself.

Last edited by mrfred; Aug 29, 2008 at 03:34 PM.
Old Aug 29, 2008, 03:49 PM
  #89  
Evolved Member
Thread Starter
 
Mattjin's Avatar
 
Join Date: Apr 2008
Location: Sydney, Australia
Posts: 604
Likes: 0
Received 0 Likes on 0 Posts
In some roms there are mulitple maps, so you might have to search thoroughly.

Hopefully these will all get fixed for the next big release. Interesting reading the thread about EGR because I have been using the maps as I have posted here for quite a while, and had the impression that most would not believe the reality. Good to see I have been right all along. And it is true too, almost all of the maps are common to all models. Just some models use them and some dont.

One other ignition control feature I am trying to track down is the idle stability coding. You will notice the idle ignition timing fluctuates to assist the ISC stepper. The ECU uses the timing first and only moves the stepper if the rpm exceeds a certain amount. I have the idle error control maps if they are wanted, but I have not found anything that controls the amount of ignition timing swing. I am tending to believe it is done with an algorithm and not a map, as it does in the Apexi Power FC ecus.

There is another thing that happens with the timing too. After decel fuel cut turns the fuel back on, the timing reverts to normal as well as an enrichment fuel pulse to stabilise mixtures (posted these maps elsewhere). There is also a timing advance function that helps to stabilise idle control. Even with a flat High and Low Octane timing map, the timing advances around 7 or 8 degrees just after fuel resume. I am in the process now of trying to track that down.

Mr Fred, have you managed to verify the temperature range that is used for the engine and air temp ignition trims? My disassembly skills are not all that great and I couldnt find a reference I was happy with. Its just with throrough testing that I found they correspond to those temperature ranges.
Old Aug 29, 2008, 04:46 PM
  #90  
Evolved Member
iTrader: (18)
 
Jorge T's Avatar
 
Join Date: May 2004
Location: Houston, TX
Posts: 1,494
Likes: 0
Received 1 Like on 1 Post
Originally Posted by l2r99gst
OK, I tried finding the maps that mrfred listed for his ROM in my 96940011 ROM.

I seem to only be able to find the first ignition trim map and also the ignition trims vs coolant temp 2D.

Maybe someone can look to make sure I am right and I'm not missing anything. My trim map looks a bit different than mrfreds:

...

Eric
In 0008 there is only 1 timing trim and 2 egr advance tables. IXs have 3 sets of timing maps each with a corresponding timing trim table.


Quick Reply: New Maps for Evo 7 and 9



All times are GMT -7. The time now is 10:27 PM.