cold start enrichment table
#1
Thread Starter
EvoM Guru
iTrader: (50)
Joined: Mar 2006
Posts: 9,675
Likes: 130
From: Tri-Cities, WA // Portland, OR
cold start enrichment table
Here are the startup enrichment tables vs coolant temp (and needed scaling) for the Evo 9 88590015 ROM:
<scaling name="StartupIPWTime" units="ms" toexpr="x*0.008" frexpr="x/0.008" format="%.1f" min="0" max="500" inc="1" storagetype="uint16" endian="big"/>
<table name="Startup Enrichment IPW Adder #2 (Unused)" category="Fuel" address="32fc" type="2D" level="1" scaling="StartupIPWTime">
<table name="Coolant Temperature" address="6ff8" type="Y Axis" elements="9" scaling="Temp"/>
</table>
<table name="Startup Enrichment IPW Adder #1 (Main)" category="Fuel" address="52b2" type="2D" level="1" scaling="StartupIPWTime">
<table name="Coolant Temperature" address="6ff8" type="Y Axis" elements="9" scaling="Temp"/>
</table>
Both tables are used only when the engine speed is less than 438 rpm. Table #2 applies when the coolant temp is greater than 419°F (absolutely never), and table #1 applies when the coolant temp is less than 419°F (always the case). The scaling is choosen so that the tables have the same time units as the injector latency vs battery voltage table.
I have now verified this table by watching IPW during startup with EvoScan. The ECU values and the three observed values are shown in the table below. The observed values are dead on with the table values. This suggests to me that this table is the main table for startup enrichment for Evo 9s and that these other tables found in older ROMs are probably not in the Evo 9 ROM. I will keep looking as I have time though.
NOTE: This post has been updated. Table names have been changed slightly, and details on when the tables get used by the ECU have been added. Have also added observed startup IPW values versus the ECU values.
<scaling name="StartupIPWTime" units="ms" toexpr="x*0.008" frexpr="x/0.008" format="%.1f" min="0" max="500" inc="1" storagetype="uint16" endian="big"/>
<table name="Startup Enrichment IPW Adder #2 (Unused)" category="Fuel" address="32fc" type="2D" level="1" scaling="StartupIPWTime">
<table name="Coolant Temperature" address="6ff8" type="Y Axis" elements="9" scaling="Temp"/>
</table>
<table name="Startup Enrichment IPW Adder #1 (Main)" category="Fuel" address="52b2" type="2D" level="1" scaling="StartupIPWTime">
<table name="Coolant Temperature" address="6ff8" type="Y Axis" elements="9" scaling="Temp"/>
</table>
Both tables are used only when the engine speed is less than 438 rpm. Table #2 applies when the coolant temp is greater than 419°F (absolutely never), and table #1 applies when the coolant temp is less than 419°F (always the case). The scaling is choosen so that the tables have the same time units as the injector latency vs battery voltage table.
I have now verified this table by watching IPW during startup with EvoScan. The ECU values and the three observed values are shown in the table below. The observed values are dead on with the table values. This suggests to me that this table is the main table for startup enrichment for Evo 9s and that these other tables found in older ROMs are probably not in the Evo 9 ROM. I will keep looking as I have time though.
NOTE: This post has been updated. Table names have been changed slightly, and details on when the tables get used by the ECU have been added. Have also added observed startup IPW values versus the ECU values.
Last edited by mrfred; Oct 14, 2008 at 11:17 PM.
#3
Speaking of cold start stuff, has anyone found the "cold" start ignition and fuel tables yet?
There has to be some. If I drive off in my car stone cold, any throttle input past just cruise, (not WOT of course), the car will stumble and choke until it warms up a bit. Feels like retarded timing to me.
There has to be some. If I drive off in my car stone cold, any throttle input past just cruise, (not WOT of course), the car will stumble and choke until it warms up a bit. Feels like retarded timing to me.
#5
Thread Starter
EvoM Guru
iTrader: (50)
Joined: Mar 2006
Posts: 9,675
Likes: 130
From: Tri-Cities, WA // Portland, OR
Not much that can be done about fueling during the first few minutes of driving. Fueling goes closed loop 14.7 afr within ~30 sec of startup.
I'll eventually get around to the ignition stuff.
#6
#7
Damn, if you had this for the 96940011 ROM I would most definately try it out. It has been cold here in the mornings recently (Low 60's, haha!) and I am having to crank the car twice to get it to fire now. Suck with a mini battery too, I am going to kill it pretty fast having to do this..
Trending Topics
#8
Damn, if you had this for the 96940011 ROM I would most definately try it out. It has been cold here in the mornings recently (Low 60's, haha!) and I am having to crank the car twice to get it to fire now. Suck with a mini battery too, I am going to kill it pretty fast having to do this..
#9
Give me a little time...just walked in the door. I'll see what I can find for the 96940011 ROM.
Eric
#11
OK, here is what I found for 96940011. I am not a disassembler, so wait for someone to check this first:
As always, change the endian from big to little depending on what version of ECUFlash you are using.
I noticed that the 96940011 table (#2) has slightly different values from the 88590015 ROM. Here is a screenshot of my ROM on the left and mrfred's on the right:
Eric
Code:
<scaling name="ColdStartTime" units="ms" toexpr="x*0.008" frexpr="x/0.008" format="%.1f" min="0" max="500" inc="1" storagetype="uint16" endian="big"/> <table name="IPW Adder for Cold Start #1" category="Fuel" address="2fc0" type="2D" level="1" scaling="ColdStartTime"> <table name="Coolant Temperature" address="5db0" type="Y Axis" elements="9" scaling="Temp"/> </table> <table name="IPW Adder for Cold Start #2" category="Fuel" address="4e72" type="2D" level="1" scaling="ColdStartTime"> <table name="Coolant Temperature" address="5db0" type="Y Axis" elements="9" scaling="Temp"/> </table>
I noticed that the 96940011 table (#2) has slightly different values from the 88590015 ROM. Here is a screenshot of my ROM on the left and mrfred's on the right:
Eric
Last edited by l2r99gst; May 26, 2008 at 07:39 PM.
#13
You might be missing a third map. I was given some addresses for an 03 and reverse engineered (trial and error in otherwords) for the 04, but in addition to the 2 you are showing there was one specifically for latency on start. There was a table for IPW by temp, RPM, and then base latency. We tested them in Lucas' car on E85 but they didnt really seem to make a difference. It might be that they were incorrect though, as I am totally not into disassembly.
Addresses:
94170008-
<scaling name="msec" units="units" toexpr="x*4" frexpr="x/4" format="%.0f" min="0" max="255" inc="1" storagetype="uint8" endian="big"/>
<scaling name="IPW mcsec" units="mcSec" toexpr="x*432/1000" frexpr="x/432*1000" format="%.0f" min="0" max="255" inc="1" storagetype="uint8" endian="big"/>
<scaling name="Rpm start up" units="units" toexpr="x" frexpr="x" format="%.0f" min="25" max="500" inc="31.25" storagetype="uint16" endian="little"/>
<scaling name="Temp" units="Celsius" toexpr="x-40" frexpr="x+40" format="%.0f" min="-40" max="215" inc="1" storagetype="uint16" endian="little"/>
<scaling name="McSec" units="mcSec" toexpr="x*4" frexpr="x/4" format="%.0f" min="0" max="255" inc="1" storagetype="uint8" endian="big"/>
<table name="Start IPW by Temp correction">
<table name="Water temp" address="6584"/>
</table>
<table name="Start IPW by RPM correction">
<table name="RPM" address="646e"/>
</table>
<table name="Start IPW latency mcsec" address="1569" type="1D" level="1" scaling="McSec"/>
<table name="Start IPW by Temp correction" category="Misc" address="3810" type="2D" level="1" scaling="IPW mcsec">
<table name="Water temp" address="6584" type="X Axis" elements="11" scaling="Temp"/>
</table>
<table name="Start IPW by RPM correction" category="Misc" address="3822" type="2D" level="1" scaling="Correction Co-eff">
<table name="RPM" address="646e" type="X Axis" elements="8" scaling="Rpm start up"/>
</table>
I will work on the 04 and figuring out how I got it where I am...sorry in advance on the hackjob on my xml listing. It will cover all the bases though.
Addresses:
94170008-
<scaling name="msec" units="units" toexpr="x*4" frexpr="x/4" format="%.0f" min="0" max="255" inc="1" storagetype="uint8" endian="big"/>
<scaling name="IPW mcsec" units="mcSec" toexpr="x*432/1000" frexpr="x/432*1000" format="%.0f" min="0" max="255" inc="1" storagetype="uint8" endian="big"/>
<scaling name="Rpm start up" units="units" toexpr="x" frexpr="x" format="%.0f" min="25" max="500" inc="31.25" storagetype="uint16" endian="little"/>
<scaling name="Temp" units="Celsius" toexpr="x-40" frexpr="x+40" format="%.0f" min="-40" max="215" inc="1" storagetype="uint16" endian="little"/>
<scaling name="McSec" units="mcSec" toexpr="x*4" frexpr="x/4" format="%.0f" min="0" max="255" inc="1" storagetype="uint8" endian="big"/>
<table name="Start IPW by Temp correction">
<table name="Water temp" address="6584"/>
</table>
<table name="Start IPW by RPM correction">
<table name="RPM" address="646e"/>
</table>
<table name="Start IPW latency mcsec" address="1569" type="1D" level="1" scaling="McSec"/>
<table name="Start IPW by Temp correction" category="Misc" address="3810" type="2D" level="1" scaling="IPW mcsec">
<table name="Water temp" address="6584" type="X Axis" elements="11" scaling="Temp"/>
</table>
<table name="Start IPW by RPM correction" category="Misc" address="3822" type="2D" level="1" scaling="Correction Co-eff">
<table name="RPM" address="646e" type="X Axis" elements="8" scaling="Rpm start up"/>
</table>
I will work on the 04 and figuring out how I got it where I am...sorry in advance on the hackjob on my xml listing. It will cover all the bases though.
#14
table name="Start IPW by RPM correction" category="Misc" address="3822" type="2D" level="1" scaling="Correction Co-eff">
Thanks for all the effort ...what is the scaling def for correction Co-eff? also "rpm start up" does not make sense, 0 to 512 in 64 increments
Thanks for all the effort ...what is the scaling def for correction Co-eff? also "rpm start up" does not make sense, 0 to 512 in 64 increments
Last edited by Jorge T; May 27, 2008 at 07:32 AM.
#15
I know it doesnt make sense to me either. That was what I was given by a guy in japan, so I just went with it. I am sure the RPM scaling is incorrect, but I am not sure what its sposed to be either. I dont do disassembly but I wanted to contribute what I had at any rate.