Notices
ECU Flash

ignition timing trims

Thread Tools
 
Search this Thread
 
Old Dec 13, 2008, 06:32 PM
  #1  
EvoM Guru
Thread Starter
iTrader: (50)
 
mrfred's Avatar
 
Join Date: Mar 2006
Location: Tri-Cities, WA // Portland, OR
Posts: 9,675
Received 128 Likes on 96 Posts
ignition timing trims

I finally went back to the ignition timing subroutines and dug more of the ignition trims that are dependent on tables. There are one or two more subroutines that I need to look at in more detail, but I think I've got most of the tables. I'll go through them as they are encountered in the code. (I'm not including the cold engine ign timing retard as I've already gone through that set of tables.) These address are for 88590015 Evo 9 USDM ROM. These definitions will be included in a future release of ECUFlash.

EDIT: updated to show corrected Base Timing Trim vs Load and RPM table xml and table picture

Code:
<table name="Base Timing Trim vs Load and RPM" category="Timing" address="50dd" type="3D" swapxy="true" level="1" scaling="Timing">
  <table name="Engine Load" address="7850" type="X Axis" elements="14" scaling="Load"/>
  <table name="RPM" address="7830" type="Y Axis" elements="11" scaling="RPM"/>
</table>

<scaling name="Scale128" units="%" toexpr="x/128" frexpr="x*128" format="%.2f" min="0" max="10" inc="0.05" storagetype="uint8" endian="big"/>

<table name="Base Timing Trim vs Load and RPM Multiplier vs CTS" category="Timing" address="517e" type="2D" level="1" scaling="Scale128">
  <table name="Coolant Temp" address="6fde" type="Y Axis" elements="8" scaling="Temp"/>
</table>
This is a wierd adjustment. It advances the ignition timing in certain load and rpm cells when the engine is cold. Strange that it adds timing out a 4000 rpm and 180 load. That advance will get carried out to any higher loads or RPMs.



Code:
<table name="Min Load for IAT-Compensated Ignition Trim" category="Timing" address="3ca8" type="2D" level="1" scaling="Load8">
  <table name="Engine Speed" address="6b7a" type="Y Axis" elements="10" scaling="RPM"/>
</table>

<table name="IAT-Compensated Ignition Trim" category="Timing" address="3c8e" type="2D" level="1" scaling="TimingTrim8">
  <table name="MAF Air Temp" address="714a" type="Y Axis" elements="8" scaling="Temp"/>
</table>
This is the ign timing trim vs IAT table that's been mentioned before by Mattjin. There is also a threshold load vs rpm table for when this IAT compensation is used.



Code:
<table name="Ignition Trim vs Baro (Unused)" category="Timing" address="3c9c" type="2D" level="1" scaling="TimingTrim8">
  <table name="Baro" address="6e28" type="Y Axis" elements="5" scaling="Baro16"/>
</table>
This is the ignition trim vs baro table also mentioned previously by Mattjin. The trim values are zeros out, but more importantly, the ECU never uses the table, so if someone were to change the values, it would have no effect.
Attached Thumbnails ignition timing trims-map.png  
Attached Images    

Last edited by mrfred; Feb 21, 2009 at 04:32 AM.
Old Dec 13, 2008, 08:55 PM
  #2  
Account Disabled
iTrader: (3)
 
dan l's Avatar
 
Join Date: Apr 2006
Location: USA
Posts: 1,029
Likes: 0
Received 0 Likes on 0 Posts
Man mitsu likes to screw around a lot. They have one timing to pull timing when cold. Then they have a table to add it back in when cold. I just don't quite understand the need. No wonder my evo has always acted quite weird when warming up. I'm going to zero out all these tables and add values back in if I need to.
Old Dec 13, 2008, 10:06 PM
  #3  
EvoM Guru
iTrader: (6)
 
tephra's Avatar
 
Join Date: Feb 2007
Location: Melbourne, Australia
Posts: 9,486
Received 66 Likes on 42 Posts
did u work out the old FAAbit10 ign correction?

< 3500rpm, based on how fast RPM is changing...
Old Dec 14, 2008, 07:05 AM
  #4  
EvoM Guru
Thread Starter
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 tephra
did u work out the old FAAbit10 ign correction?

< 3500rpm, based on how fast RPM is changing...
Haven't come across the accel based ign trim yet. Kinda interested in seeing it now. FAA bit10 controls whether the warmup ign retard tables are used.
Old Dec 14, 2008, 12:29 PM
  #5  
Evolved Member
 
Mattjin's Avatar
 
Join Date: Apr 2008
Location: Sydney, Australia
Posts: 604
Likes: 0
Received 0 Likes on 0 Posts
There is also the map that seemed to be a 2D coolant temp trim that you were saying was not called for your rom, and is zeroed out anyway. It is zeroed on my rom, but changing the values moved the timing and it may do for some of the other Evo 7's and 8's. There is also a bunch of 1D coolant temp related references in the same routine, with some of them looking to be an overtemp function that might be worth looking into.

There is another trim somewhere that I have not been able to find. When lifting-off at very light throttle you can momentarily see it advance the timing but doesnt look like accel based.

I could not see anything at all for accelleration conditions even though there should be maps for both increasing and decreasing delta throttle.

There is a 2D ignition trim table that retards timing as the decel fuel cut is de-activating near idle.

For the GT-A (Automatic), there is a 3D ignition trim table for idle conditions when Drive is selected.

It will be good to see just how many tables there are and what the true functions end up being.

Last edited by Mattjin; Dec 14, 2008 at 12:57 PM.
Old Dec 14, 2008, 03:09 PM
  #6  
EvoM Guru
Thread Starter
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
There is also the map that seemed to be a 2D coolant temp trim that you were saying was not called for your rom, and is zeroed out anyway. It is zeroed on my rom, but changing the values moved the timing and it may do for some of the other Evo 7's and 8's. There is also a bunch of 1D coolant temp related references in the same routine, with some of them looking to be an overtemp function that might be worth looking into.

There is another trim somewhere that I have not been able to find. When lifting-off at very light throttle you can momentarily see it advance the timing but doesnt look like accel based.

I could not see anything at all for accelleration conditions even though there should be maps for both increasing and decreasing delta throttle.

There is a 2D ignition trim table that retards timing as the decel fuel cut is de-activating near idle.

For the GT-A (Automatic), there is a 3D ignition trim table for idle conditions when Drive is selected.

It will be good to see just how many tables there are and what the true functions end up being.
Is there a place where your ROM is posted, and what's the address of the subroutine in your ROM where those tables are located?

There are several other subroutines in the 9 ROM that make timing adjustments without the use of tables. One is the idle stability subroutine. Another adjusts timing during decel. There are two others that I haven't figure out yet.
Old Dec 14, 2008, 03:33 PM
  #7  
EvoM Guru
iTrader: (6)
 
tephra's Avatar
 
Join Date: Feb 2007
Location: Melbourne, Australia
Posts: 9,486
Received 66 Likes on 42 Posts
bit9 (0 start) controls warmup.

bit10 controls whether the ECU subtracts random amounts of timing at low RPM
Old Dec 14, 2008, 05:50 PM
  #8  
EvoM Guru
Thread Starter
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 tephra
...

bit10 controls whether the ECU subtracts random amounts of timing at low RPM
Ah, I hadn't looked at that very closely. Looking at it now, I see that it controls whether "TPS > 0" subsection of the timing trim for idle stability subroutine is run. There are a bunch of things that have to occur simultaneously to trigger the subsection to run... rpm < 3500, TPS < 54%, speed < 41 mph, speed > 6 mph, CTS > 122F, rpm/mph between lowest gear and highest gear, and one other condition I haven't tried to figure out.
Old Dec 14, 2008, 11:09 PM
  #9  
Evolved Member
 
Mattjin's Avatar
 
Join Date: Apr 2008
Location: Sydney, Australia
Posts: 604
Likes: 0
Received 0 Likes on 0 Posts
My full stock rom (512k, not 256k as is posted everywhere else) is available on the openecu forum. The subroutine for the ignition trims can be found at 17968. I am not sure where it is, but there should be a basic xml in my 80700010 thread somewhere... but I would start looking for the last page and work backwards.

The map for decel fuel cut retard for my rom is at 4b38. Should be 10 elements, and is versus RPM from 500 to 5000rpm. What is unusual is that it is linked to the same subroutine as the unknown 3D table that Acamus has been discussing on another thread.

Where in your rom is the idle stability routine? I have been searching for any mapping to do with this for a long time. It should only function when within range of target idle, and I believe the code should be looking at rates of change of rpm to decide how much timing to add or subtract. Initially I believed it was to do with target idle error as the idle control system is, but it doesn't function that way.
Old Dec 14, 2008, 11:30 PM
  #10  
EvoM Guru
Thread Starter
iTrader: (50)
 
mrfred's Avatar
 
Join Date: Mar 2006
Location: Tri-Cities, WA // Portland, OR
Posts: 9,675
Received 128 Likes on 96 Posts
The idle stability routine in the 88590015 ROM is at sub_1C330. Indeed it does work within a narror RPM range. At least for my ROM, the idle stability timing trim is based on target idle error. It also compares actual RPM to to another RPM reading if that other reading is more than ~2x greater than the target idle RPM value. No tables associated with the routine.
Old Dec 15, 2008, 12:51 AM
  #11  
Evolved Member
 
Mattjin's Avatar
 
Join Date: Apr 2008
Location: Sydney, Australia
Posts: 604
Likes: 0
Received 0 Likes on 0 Posts
Do you have the idle error maps? For my rom they are at 4b82 and 4b92 and scaled in rpm as an rpm error (0 to 250rpm). There is probably a proportional gain that goes with these maps but I never bothered searching much more than finding the function of the maps.

After a while I figured there were no maps for this function, rather it would have been an algorithm as it is for other ecu's. I will do some searching and see if I can find the same subroutine in my mess. Are you sure it doesn't use the comparison of the two rpm values as a measuring point for rate of change?

Editted - Found the stability sub at 17A98, thanks. Do you know what the RAM location in it reflects?

Last edited by Mattjin; Dec 15, 2008 at 01:40 AM.
Old Dec 15, 2008, 02:30 AM
  #12  
Evolved Member
 
merlin.oz's Avatar
 
Join Date: Jun 2008
Location: Sydney
Posts: 824
Likes: 0
Received 23 Likes on 19 Posts
Looking at mrfreds first timing map, the additional timing in the block of cells at load 70-100 x rpm 750-1250, would improve off-idle throttle response when cold.

As for the rest???
Old Dec 15, 2008, 03:40 AM
  #13  
Evolved Member
 
Mattjin's Avatar
 
Join Date: Apr 2008
Location: Sydney, Australia
Posts: 604
Likes: 0
Received 0 Likes on 0 Posts
The map doesnt make any sense. It has values in areas where you will never get to (180 load @ 500rpm?), and adding that amount of timing would make the engine rough with too sudden a change in timing. Unless it is an addition map that adds to the warmup retard to cancel some of the retard out during accel enrichment... just with some weird mapping values. I have not seen this map in earlier roms either.
Old Dec 15, 2008, 07:39 AM
  #14  
EvoM Guru
Thread Starter
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
Do you have the idle error maps? For my rom they are at 4b82 and 4b92 and scaled in rpm as an rpm error (0 to 250rpm). There is probably a proportional gain that goes with these maps but I never bothered searching much more than finding the function of the maps.

After a while I figured there were no maps for this function, rather it would have been an algorithm as it is for other ecu's. I will do some searching and see if I can find the same subroutine in my mess. Are you sure it doesn't use the comparison of the two rpm values as a measuring point for rate of change?

Editted - Found the stability sub at 17A98, thanks. Do you know what the RAM location in it reflects?
If your subroutine is the same as mine, then

1st RAM variable is a flag for idle conditions
2nd is target idle rpm
3rd is a snapshot rpm
4th/5th is main 2-byte rpm
6th is another flag that I described in an earlier post
7th is another snapshot rpm
8th is main 2-byte rpm again
Last is the idle stability trim value, #128 is the zero point.

Originally Posted by Mattjin
The map doesnt make any sense. It has values in areas where you will never get to (180 load @ 500rpm?), and adding that amount of timing would make the engine rough with too sudden a change in timing. Unless it is an addition map that adds to the warmup retard to cancel some of the retard out during accel enrichment... just with some weird mapping values. I have not seen this map in earlier roms either.
Its a wierd map, but I did get the map layout correct, and its definitely called in my ROM. Its quite possible that it doesn't exist in your ROM though.

Last edited by mrfred; Dec 15, 2008 at 07:41 AM.
Old Dec 15, 2008, 07:45 AM
  #15  
Evolved Member
iTrader: (26)
 
travman's Avatar
 
Join Date: Oct 2005
Location: Pittsburgh
Posts: 1,712
Likes: 0
Received 0 Likes on 0 Posts
I wonder if that cold timing adder map is what is causing that weird rpm climb during cold conditions when first driving the car? The one that some of us experienced after disabling the cold ignition retard tables.


Quick Reply: ignition timing trims



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