Notices
ECU Flash

patch for 88590015: control front and rear O2 with wideband

Thread Tools
 
Search this Thread
 
Old Jul 28, 2008, 08:52 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
patch for 88590015: control front and rear O2 with wideband

I started a new thread with an updated patch.

Closed loop cruise 88590015 patch instructions for non-tephra and tephra ROM

This is quick instructions for installing my "front O2 sim + rear O2 sim" patch for the 88590015 ROM. There are two main features in this patch. The first feature is the rear O2 sim routine. It is always operational, and this is the same routine that makes up my standalone "rear O2 sim" patch that tephra is using in his patched ROMs. The front O2 sim is the second feature of this new patch. It can be enabled and disabled, and has several features that allow custom tailoring the closed loop cruise AFR. With the patch, the closed loop fueling will follow whatever AFR values are inserted into the fuel tables. It also has a feature to set the closed loop AFR to whatever value you want while the engine is warming up. This second feature is nice because a richer AFR can be used during warmup to the help the car run better when its cold.


********** Start instructions for non-tephra ROM *************

1) Wire an analog out from your WBO2 controller into the ECU. Instructions are here.

Skip the "ROM Modifications" part of that how-to, but do everything else. In the last part of that how-to, there are instructions for calculating the scaling formula for EvoScan. The values from that formula will need to be used for the front/rear O2 sim patch. The example formula for EvoScan in that how-to is:

0.03137*x + 9.06

In that example, mL = 0.03137, and bL = 9.06. For this patch, you'll need 1/mL and bL/mL. For this example,

1/mL = 1/0.03137 = 31.9

bL/mL = 9.06/0.03137 = 289

2) Copy the following tables to your ECUFlash "88590015.xml" file:

------ (Don't copy the "-------")

<table name="Rear O2 (ADC 0A) RAM variable" category="Front/Rear_02" address="c2be" type="1D" level="1" scaling="Hex16"/>

<table name="MUT Port for Wideband (12)" category="Front/Rear_02" address="3eece" type="1D" level="1" scaling="Hex16"/>

<table name="Front Narrow Band Sim On/Off" category="Front/Rear_02" address="8734" type="1D" level="1" scaling="uint8"/>

<table name="Cold Engine Global Closed Loop AFR" category="Front/Rear_02" address="8736" type="1D" level="1" scaling="AFR16"/>

<table name="Min Coolant Temp To Use AFR Table" category="Front/Rear_02" address="8738" type="1D" level="1" scaling="Temp"/>

<table name="AFR Table Multiplier High Word" category="Front/Rear_02" address="8740" type="1D" level="1" scaling="Hex16"/>
<table name="AFR Table Multiplier Low Word" category="Front/Rear_02" address="8742" type="1D" level="1" scaling="Hex16"/>

<scaling name="mLinverse" units="1/mL" toexpr="x/8" frexpr="x*8" format="%.1f" min="0" max="100" inc="0.1" storagetype="uint16" endian="big"/>

<table name="LC-1 AFR Correlation 1/mL Value" category="Front/Rear_02" address="873A" type="1D" level="1" scaling="mLinverse"/>

<table name="LC-1 AFR Correlation bL/mL Value" category="Front/Rear_02" address="873C" type="1D" level="1" scaling="uint16"/>

<table name="Front/Rear 02 Sim Hook" category="Front/Rear_02" address="c250" type="3D" level="1" scaling="Hex16">
<table name="Code" type="Static X Axis" elements="1" scaling="Hex16">
<data>Hex16</data>
</table>
<table name="Address" type="Static Y Axis" elements="10">
<data>C250</data>
<data>C252</data>
<data>C254</data>
<data>C256</data>
<data>C258</data>
<data>C25A</data>
<data>C25C</data>
<data>C25E</data>
<data>C260</data>
<data>C262</data>
</table>
</table>

<table name="Front/Rear 02 Sim Subroutine Part 1 Hex" category="Front/Rear_02" address="4a000" type="3D" level="1" scaling="Hex16">
<table name="Code" type="Static X Axis" elements="1" scaling="Hex16">
<data>Hex16</data>
</table>
<table name="Address" type="Static Y Axis" elements="40">
<data>4A000</data>
<data>4A002</data>
<data>4A004</data>
<data>4A006</data>
<data>4A008</data>
<data>4A00A</data>
<data>4A00C</data>
<data>4A00E</data>
<data>4A010</data>
<data>4A012</data>
<data>4A014</data>
<data>4A016</data>
<data>4A018</data>
<data>4A01A</data>
<data>4A01C</data>
<data>4A01E</data>
<data>4A020</data>
<data>4A022</data>
<data>4A024</data>
<data>4A026</data>
<data>4A028</data>
<data>4A02A</data>
<data>4A02C</data>
<data>4A02E</data>
<data>4A030</data>
<data>4A032</data>
<data>4A034</data>
<data>4A036</data>
<data>4A038</data>
<data>4A03A</data>
<data>4A03C</data>
<data>4A03E</data>
<data>4A040</data>
<data>4A042</data>
<data>4A044</data>
<data>4A046</data>
<data>4A048</data>
<data>4A04A</data>
<data>4A04C</data>
<data>4A04E</data>
</table>
</table>

<table name="Front/Rear 02 Sim Subroutine Part 2 Hex" category="Front/Rear_02" address="4a050" type="3D" level="1" scaling="Hex16">
<table name="Code" type="Static X Axis" elements="1">
<data>Hex16</data>
</table>
<table name="Address" type="Static Y Axis" elements="40">
<data>4A050</data>
<data>4A052</data>
<data>4A054</data>
<data>4A056</data>
<data>4A058</data>
<data>4A05A</data>
<data>4A05C</data>
<data>4A05E</data>
<data>4A060</data>
<data>4A062</data>
<data>4A064</data>
<data>4A066</data>
<data>4A068</data>
<data>4A06A</data>
<data>4A06C</data>
<data>4A06E</data>
<data>4A070</data>
<data>4A072</data>
<data>4A074</data>
<data>4A076</data>
<data>4A078</data>
<data>4A07A</data>
<data>4A07C</data>
<data>4A07E</data>
<data>4A080</data>
<data>4A082</data>
<data>4A084</data>
<data>4A086</data>
<data>4A088</data>
<data>4A08A</data>
<data>4A08C</data>
<data>4A08E</data>
<data>4A090</data>
<data>4A092</data>
<data>4A094</data>
<data>4A096</data>
<data>4A098</data>
<data>4A09A</data>
<data>4A09C</data>
<data>4A09E</data>
</table>
</table>

<table name="Front/Rear 02 Sim Subroutine Part 3 Hex" category="Front/Rear_02" address="4a0a0" type="3D" level="1" scaling="Hex16">
<table name="Code" type="Static X Axis" elements="1">
<data>Hex16</data>
</table>
<table name="Address" type="Static Y Axis" elements="12">
<data>4A0A0</data>
<data>4A0A2</data>
<data>4A0A4</data>
<data>4A0A6</data>
<data>4A0A8</data>
<data>4A0AA</data>
<data>4A0AC</data>
<data>4A0AE</data>
<data>4A0B0</data>
<data>4A0B2</data>
<data>4A0B4</data>
<data>4A0B6</data>
</table>
</table>

--------

3) Download the following ROM: 88590015_front-rear_O2_patched_v6.zip

4) Open the ROM in ECUFlash. Find the newly added entries in this patched ROM, and copy the values over to your ROM.

5) If your 1/mL and bL/mL values are different than mine, then insert your values into the corresponding tables.

6) Closed loop cruise is controlled by three different tables:
A) - Fuel Table: Set your fuel table to whatever values you want for closed loop cruise.
B) - "Cold Engine Global Closed Loop AFR": AFR you want to use while the engine is warming up. 14.7:1 is a good number for stock cams. Something a little richer might help for bigger cams.
C) - "Min Coolant Temp To Use AFR Table": Coolant temp where ECU will begin using the fuel table for AFR control. I suggest a value of about 76C.
7) Upload the ROM to your ECU, and that's it.

********** End instructions for non-tephra ROM *************



********** Start instructions for tephra ROM *************

1) Wire an analog out from your WBO2 controller into the ECU. Instructions are here.

Skip the "ROM Modifications" part of that how-to, but do everything else. In the last part of that how-to, there are instructions for calculating the scaling formula for EvoScan. The values from that formula will need to be used for the front/rear O2 sim patch. The example formula for EvoScan in that how-to is:

0.03137*x + 9.06

In that example, mL = 0.03137, and bL = 9.06. For this patch, you'll need 1/mL and bL/mL. For this example,

1/mL = 1/0.03137 = 31.9

bL/mL = 9.06/0.03137 = 289

2) Copy the following tables to your ECUFlash "88590015.xml" file:

------ (Don't copy the "-------")

<table name="Rear O2 (ADC 0A) RAM variable" category="Front/Rear_02" address="c2be" type="1D" level="1" scaling="Hex16"/>

<table name="MUT Port for Wideband (12)" category="Front/Rear_02" address="3eece" type="1D" level="1" scaling="Hex16"/>

<table name="Front Narrow Band Sim On/Off" category="Front/Rear_02" address="8734" type="1D" level="1" scaling="uint8"/>

<table name="Cold Engine Global Closed Loop AFR" category="Front/Rear_02" address="8736" type="1D" level="1" scaling="AFR16"/>

<table name="Min Coolant Temp To Use AFR Table" category="Front/Rear_02" address="8738" type="1D" level="1" scaling="Temp"/>

<table name="AFR Table Multiplier High Word" category="Front/Rear_02" address="8740" type="1D" level="1" scaling="Hex16"/>
<table name="AFR Table Multiplier Low Word" category="Front/Rear_02" address="8742" type="1D" level="1" scaling="Hex16"/>

<scaling name="mLinverse" units="1/mL" toexpr="x/8" frexpr="x*8" format="%.1f" min="0" max="100" inc="0.1" storagetype="uint16" endian="big"/>

<table name="LC-1 AFR Correlation 1/mL Value" category="Front/Rear_02" address="873A" type="1D" level="1" scaling="mLinverse"/>

<table name="LC-1 AFR Correlation bL/mL Value" category="Front/Rear_02" address="873C" type="1D" level="1" scaling="uint16"/>

<table name="Front/Rear 02 Sim Hook" category="Front/Rear_02" address="c250" type="3D" level="1" scaling="Hex16">
<table name="Code" type="Static X Axis" elements="1" scaling="Hex16">
<data>Hex16</data>
</table>
<table name="Address" type="Static Y Axis" elements="10">
<data>C250</data>
<data>C252</data>
<data>C254</data>
<data>C256</data>
<data>C258</data>
<data>C25A</data>
<data>C25C</data>
<data>C25E</data>
<data>C260</data>
<data>C262</data>
</table>
</table>

<table name="Front/Rear 02 Sim Subroutine Part 1 Hex" category="Front/Rear_02" address="47f00" type="3D" level="1" scaling="Hex16">
<table name="Code" type="Static X Axis" elements="1" scaling="Hex16">
<data>Hex16</data>
</table>
<table name="Address" type="Static Y Axis" elements="40">
<data>47F00</data>
<data>47F02</data>
<data>47F04</data>
<data>47F06</data>
<data>47F08</data>
<data>47F0A</data>
<data>47F0C</data>
<data>47F0E</data>
<data>47F10</data>
<data>47F12</data>
<data>47F14</data>
<data>47F16</data>
<data>47F18</data>
<data>47F1A</data>
<data>47F1C</data>
<data>47F1E</data>
<data>47F20</data>
<data>47F22</data>
<data>47F24</data>
<data>47F26</data>
<data>47F28</data>
<data>47F2A</data>
<data>47F2C</data>
<data>47F2E</data>
<data>47F30</data>
<data>47F32</data>
<data>47F34</data>
<data>47F36</data>
<data>47F38</data>
<data>47F3A</data>
<data>47F3C</data>
<data>47F3E</data>
<data>47F40</data>
<data>47F42</data>
<data>47F44</data>
<data>47F46</data>
<data>47F48</data>
<data>47F4A</data>
<data>47F4C</data>
<data>47F4E</data>
</table>
</table>

<table name="Front/Rear 02 Sim Subroutine Part 2 Hex" category="Front/Rear_02" address="47f50" type="3D" level="1" scaling="Hex16">
<table name="Code" type="Static X Axis" elements="1">
<data>Hex16</data>
</table>
<table name="Address" type="Static Y Axis" elements="40">
<data>47F50</data>
<data>47F52</data>
<data>47F54</data>
<data>47F56</data>
<data>47F58</data>
<data>47F5A</data>
<data>47F5C</data>
<data>47F5E</data>
<data>47F60</data>
<data>47F62</data>
<data>47F64</data>
<data>47F66</data>
<data>47F68</data>
<data>47F6A</data>
<data>47F6C</data>
<data>47F6E</data>
<data>47F70</data>
<data>47F72</data>
<data>47F74</data>
<data>47F76</data>
<data>47F78</data>
<data>47F7A</data>
<data>47F7C</data>
<data>47F7E</data>
<data>47F80</data>
<data>47F82</data>
<data>47F84</data>
<data>47F86</data>
<data>47F88</data>
<data>47F8A</data>
<data>47F8C</data>
<data>47F8E</data>
<data>47F90</data>
<data>47F92</data>
<data>47F94</data>
<data>47F96</data>
<data>47F98</data>
<data>47F9A</data>
<data>47F9C</data>
<data>47F9E</data>
</table>
</table>

<table name="Front/Rear 02 Sim Subroutine Part 3 Hex" category="Front/Rear_02" address="47fa0" type="3D" level="1" scaling="Hex16">
<table name="Code" type="Static X Axis" elements="1">
<data>Hex16</data>
</table>
<table name="Address" type="Static Y Axis" elements="12">
<data>47FA0</data>
<data>47FA2</data>
<data>47FA4</data>
<data>47FA6</data>
<data>47FA8</data>
<data>47FAA</data>
<data>47FAC</data>
<data>47FAE</data>
<data>47FB0</data>
<data>47FB2</data>
<data>47FB4</data>
<data>47FB6</data>
</table>
</table>

--------

3) Download the following ROM: 88590015_front-rear_O2_patched_v6t.zip

4) Open the ROM in ECUFlash. Find the newly added entries in this patched ROM, and copy the values over to your ROM.

5) If your 1/mL and bL/mL values are different than mine, then insert your values into the corresponding tables.

6) Closed loop cruise is controlled by three different tables:
A) - Fuel Table: Set your fuel table to whatever values you want for closed loop cruise.
B) - "Cold Engine Global Closed Loop AFR": AFR you want to use while the engine is warming up. 14.7:1 is a good number for stock cams. Something a little richer might help for bigger cams.
C) - "Min Coolant Temp To Use AFR Table": Coolant temp where ECU will begin using the fuel table for AFR control. I suggest a value of about 76C.
7) Upload the ROM to your ECU, and that's it.

********** End instructions for tephra ROM *************

Last edited by mrfred; Oct 25, 2009 at 01:21 PM.
Old Jul 28, 2008, 09:30 PM
  #2  
EvoM Moderator
iTrader: (10)
 
scheides's Avatar
 
Join Date: Oct 2006
Location: Minneapolis
Posts: 4,827
Likes: 0
Received 12 Likes on 6 Posts
mrfred, you are truely the man. Amazing patch, care to take a whack at 96530006?
Old Jul 29, 2008, 12:36 AM
  #3  
Evolved Member
 
nightwalker's Avatar
 
Join Date: Mar 2004
Location: Butt**** Nowhere
Posts: 1,635
Likes: 0
Received 2 Likes on 2 Posts
excuse my ignorance, but what does changing the front O2 to the wideband improve?
Old Jul 29, 2008, 05:30 AM
  #4  
EvoM Staff Alumni
iTrader: (16)
 
MR Turco's Avatar
 
Join Date: May 2007
Location: Massachusetts
Posts: 3,233
Received 3 Likes on 3 Posts
is this built off a stock rom or one of the tephra variants?
Old Jul 29, 2008, 05:31 AM
  #5  
Evolved Member
iTrader: (17)
 
dudical26's Avatar
 
Join Date: Nov 2005
Location: NNJ
Posts: 2,544
Likes: 0
Received 0 Likes on 0 Posts
Originally Posted by nightwalker
excuse my ignorance, but what does changing the front O2 to the wideband improve?
Mostly fuel economy, but it has other benefits too.

https://www.evolutionm.net/forums/sh...d.php?t=358627
Old Jul 29, 2008, 07:34 AM
  #6  
EvoM Moderator
iTrader: (10)
 
scheides's Avatar
 
Join Date: Oct 2006
Location: Minneapolis
Posts: 4,827
Likes: 0
Received 12 Likes on 6 Posts
Originally Posted by nightwalker
excuse my ignorance, but what does changing the front O2 to the wideband improve?
nothing, but one could use it to improve fuel economy

edit: it also opens up the ecu input for the front o2 sensor to be used for something else.
Old Jul 29, 2008, 07:49 AM
  #7  
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 MR Turco
is this built off a stock rom or one of the tephra variants?
Its built off a stock ROM. ATM, its not compatible with his v5.8 ROM. I could easily make it compatible though. I'll do that tonight since I'm sure most people interested in trying this are already running one of his ROMs.
Old Jul 29, 2008, 07:52 AM
  #8  
EvoM Staff Alumni
iTrader: (16)
 
MR Turco's Avatar
 
Join Date: May 2007
Location: Massachusetts
Posts: 3,233
Received 3 Likes on 3 Posts
Originally Posted by mrfred
Its built off a stock ROM. ATM, its not compatible with his v5.8 ROM. I could easily make it compatible though. I'll do that tonight since I'm sure most people interested in trying this are already running one of his ROMs.
Awesome, thanks!
Old Jul 29, 2008, 07:54 AM
  #9  
Evolved Member
iTrader: (26)
 
travman's Avatar
 
Join Date: Oct 2005
Location: Pittsburgh
Posts: 1,712
Likes: 0
Received 0 Likes on 0 Posts
Originally Posted by mrfred
Its built off a stock ROM. ATM, its not compatible with his v5.8 ROM. I could easily make it compatible though. I'll do that tonight since I'm sure most people interested in trying this are already running one of his ROMs.
super.....
Old Jul 29, 2008, 08:00 AM
  #10  
Evolved Member
 
EvoBroMA's Avatar
 
Join Date: Feb 2006
Location: MA
Posts: 1,345
Likes: 0
Received 1 Like on 1 Post
Awesome work mrfred!

my only question - can we physically remove the sensors yet? or do we still need to run resistors?
Old Jul 29, 2008, 08:28 AM
  #11  
Evolved Member
iTrader: (17)
 
dudical26's Avatar
 
Join Date: Nov 2005
Location: NNJ
Posts: 2,544
Likes: 0
Received 0 Likes on 0 Posts
You can remove the sensors but you will still need resistors since the heater circuit is still active.
Old Jul 29, 2008, 08:47 AM
  #12  
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 dexmix
Awesome work mrfred!

my only question - can we physically remove the sensors yet? or do we still need to run resistors?
I guess I'll take another look at that again.
Old Jul 29, 2008, 09:58 AM
  #13  
Evolved Member
iTrader: (30)
 
fixem2's Avatar
 
Join Date: Dec 2003
Location: USA
Posts: 929
Likes: 0
Received 0 Likes on 0 Posts
Tephra mentioned a 5.9 ROM version. Might be something he can pass to you to change for that release. Would hate to see you work on the 5.8 and have 5.9 released right after.

A 96530006 version would be cool....we only have 5.1 ATM.
Old Jul 29, 2008, 10:25 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 fixem2
Tephra mentioned a 5.9 ROM version. Might be something he can pass to you to change for that release. Would hate to see you work on the 5.8 and have 5.9 released right after.

A 96530006 version would be cool....we only have 5.1 ATM.
Should be no problem with compatibility with future versions. The only issue was using a piece of ROM space that he is not using. There is plenty of room in the 88590015 ROM. :-)

I probably won't port this version to any other ROMs right away as I think I will revise this patch so that the ECU will not only adjust trims to reach target AFRs but also set the base pulse width using the fuel map. That one I would probably port or hopefully convince tephra to use in his patched ROMs.
Old Jul 31, 2008, 10:16 PM
  #15  
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
Added instructions in first post for applying the patch to a tephra ROM.


Quick Reply: patch for 88590015: control front and rear O2 with wideband



All times are GMT -7. The time now is 08:41 PM.