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  
mrfred's Avatar
Thread Starter
EvoM Guru
iTrader: (50)
 
Joined: Mar 2006
Posts: 9,675
Likes: 132
From: Tri-Cities, WA // Portland, OR
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.
Reply
Old Jul 28, 2008 | 09:30 PM
  #2  
scheides's Avatar
EvoM Moderator
iTrader: (10)
 
Joined: Oct 2006
Posts: 4,827
Likes: 13
From: Minneapolis
mrfred, you are truely the man. Amazing patch, care to take a whack at 96530006?
Reply
Old Jul 29, 2008 | 12:36 AM
  #3  
nightwalker's Avatar
Evolved Member
 
Joined: Mar 2004
Posts: 1,635
Likes: 3
From: Butt**** Nowhere
excuse my ignorance, but what does changing the front O2 to the wideband improve?
Reply
Old Jul 29, 2008 | 05:30 AM
  #4  
MR Turco's Avatar
EvoM Staff Alumni
iTrader: (16)
 
Joined: May 2007
Posts: 3,233
Likes: 3
From: Massachusetts
is this built off a stock rom or one of the tephra variants?
Reply
Old Jul 29, 2008 | 05:31 AM
  #5  
dudical26's Avatar
Evolved Member
iTrader: (17)
 
Joined: Nov 2005
Posts: 2,544
Likes: 0
From: NNJ
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
Reply
Old Jul 29, 2008 | 07:34 AM
  #6  
scheides's Avatar
EvoM Moderator
iTrader: (10)
 
Joined: Oct 2006
Posts: 4,827
Likes: 13
From: Minneapolis
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.
Reply
Old Jul 29, 2008 | 07:49 AM
  #7  
mrfred's Avatar
Thread Starter
EvoM Guru
iTrader: (50)
 
Joined: Mar 2006
Posts: 9,675
Likes: 132
From: Tri-Cities, WA // Portland, OR
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.
Reply
Old Jul 29, 2008 | 07:52 AM
  #8  
MR Turco's Avatar
EvoM Staff Alumni
iTrader: (16)
 
Joined: May 2007
Posts: 3,233
Likes: 3
From: Massachusetts
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!
Reply
Old Jul 29, 2008 | 07:54 AM
  #9  
travman's Avatar
Evolved Member
iTrader: (26)
 
Joined: Oct 2005
Posts: 1,712
Likes: 0
From: Pittsburgh
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.....
Reply
Old Jul 29, 2008 | 08:00 AM
  #10  
EvoBroMA's Avatar
Evolved Member
 
Joined: Feb 2006
Posts: 1,345
Likes: 1
From: MA
Awesome work mrfred!

my only question - can we physically remove the sensors yet? or do we still need to run resistors?
Reply
Old Jul 29, 2008 | 08:28 AM
  #11  
dudical26's Avatar
Evolved Member
iTrader: (17)
 
Joined: Nov 2005
Posts: 2,544
Likes: 0
From: NNJ
You can remove the sensors but you will still need resistors since the heater circuit is still active.
Reply
Old Jul 29, 2008 | 08:47 AM
  #12  
mrfred's Avatar
Thread Starter
EvoM Guru
iTrader: (50)
 
Joined: Mar 2006
Posts: 9,675
Likes: 132
From: Tri-Cities, WA // Portland, OR
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.
Reply
Old Jul 29, 2008 | 09:58 AM
  #13  
fixem2's Avatar
Evolved Member
iTrader: (30)
 
Joined: Dec 2003
Posts: 929
Likes: 0
From: USA
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.
Reply
Old Jul 29, 2008 | 10:25 AM
  #14  
mrfred's Avatar
Thread Starter
EvoM Guru
iTrader: (50)
 
Joined: Mar 2006
Posts: 9,675
Likes: 132
From: Tri-Cities, WA // Portland, OR
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.
Reply
Old Jul 31, 2008 | 10:16 PM
  #15  
mrfred's Avatar
Thread Starter
EvoM Guru
iTrader: (50)
 
Joined: Mar 2006
Posts: 9,675
Likes: 132
From: Tri-Cities, WA // Portland, OR
Added instructions in first post for applying the patch to a tephra ROM.
Reply



All times are GMT -7. The time now is 12:14 PM.