how-to: control closed loop AFR with your wideband O2 system
Ok so I figured it out I just take numbers I'm using in Evoscan and use the formulas posted. I end up with 1/mL=36.5 and bL/mL=328 But now my problem is I'm not sure where to insert these numbers. Do I replace the 1/mL and bL/mL in the xml file with these numbers. Or Change those tables in ecuflash?
Can someone Please help me with this I would really like to get this up and running.
I would think I just change the values in ecuflash but when I open the tables they are nowhere near the numbers I would change them to.
I would think I just change the values in ecuflash but when I open the tables they are nowhere near the numbers I would change them to.
Hello,
Okay I have the AEM UEGO wired to rear o2 and can log accurate AFR with the right formula, now I would like to control my closed loop AFR.
How I read that it will only work with 96530006 like the 96530706 (v7) maybe ?! I tried to put only the line as Logic posted to my 96530706 (v7) XML file but I coudnt see the tables. Than I downloaded the 96530006_wideband_closed-loop_AFR-v2.hex and edit the original 96530006.xml files in the ecuflash dir with logic posted lines and coud see FRont/Rear O2 tables when I opened the downloaded 96530006_wideband_closed-loop_AFR-v2.hex file !
MY question will this work with 96530706 (v7) ?? If yes than how what to do ? Maybe I shoud edit the .bin files ?! but how ?
When copy the lines in #1 post to my 94170015 V7 xml file than I coud see the Front/Rear O2 tables too ! without any trick . Will this work with 94170015 V7 ? :O
Okay I have the AEM UEGO wired to rear o2 and can log accurate AFR with the right formula, now I would like to control my closed loop AFR.
How I read that it will only work with 96530006 like the 96530706 (v7) maybe ?! I tried to put only the line as Logic posted to my 96530706 (v7) XML file but I coudnt see the tables. Than I downloaded the 96530006_wideband_closed-loop_AFR-v2.hex and edit the original 96530006.xml files in the ecuflash dir with logic posted lines and coud see FRont/Rear O2 tables when I opened the downloaded 96530006_wideband_closed-loop_AFR-v2.hex file !
MY question will this work with 96530706 (v7) ?? If yes than how what to do ? Maybe I shoud edit the .bin files ?! but how ?
When copy the lines in #1 post to my 94170015 V7 xml file than I coud see the Front/Rear O2 tables too ! without any trick . Will this work with 94170015 V7 ? :O
Last edited by VGergo; Jun 16, 2010 at 12:08 PM.
can not believe nobodys here with the patch and the V7.
"3) Download the following ROM: 88590015_front-rear_O2_patched_v10t.zip
http://se30.dyndns.org:8080/evo/8859...tched_v10t.zip
4) Open the ROM in ECUFlash. Find the newly added entries in this patched ROM, and copy the values over to your ROM.
How to do that copy ? :$
What does that mean ?! "Find the newly added entries in this patched ROM, and copy the values over to your ROM." how can I copy that in my rom like in the V7 ?!
"3) Download the following ROM: 88590015_front-rear_O2_patched_v10t.zip
http://se30.dyndns.org:8080/evo/8859...tched_v10t.zip
4) Open the ROM in ECUFlash. Find the newly added entries in this patched ROM, and copy the values over to your ROM.
How to do that copy ? :$
What does that mean ?! "Find the newly added entries in this patched ROM, and copy the values over to your ROM." how can I copy that in my rom like in the V7 ?!
can not believe nobodys here with the patch and the V7.
"3) Download the following ROM: 88590015_front-rear_O2_patched_v10t.zip
http://se30.dyndns.org:8080/evo/8859...tched_v10t.zip
4) Open the ROM in ECUFlash. Find the newly added entries in this patched ROM, and copy the values over to your ROM.
How to do that copy ? :$
What does that mean ?! "Find the newly added entries in this patched ROM, and copy the values over to your ROM." how can I copy that in my rom like in the V7 ?!
"3) Download the following ROM: 88590015_front-rear_O2_patched_v10t.zip
http://se30.dyndns.org:8080/evo/8859...tched_v10t.zip
4) Open the ROM in ECUFlash. Find the newly added entries in this patched ROM, and copy the values over to your ROM.
How to do that copy ? :$
What does that mean ?! "Find the newly added entries in this patched ROM, and copy the values over to your ROM." how can I copy that in my rom like in the V7 ?!
The link to download the modified rom is dead. Are there any other links we can download it from?
http://se30.dyndns.org:8080/evo/8859...tched_v10t.zip <-----------dead
http://se30.dyndns.org:8080/evo/8859...tched_v10t.zip <-----------dead
Thread Starter
EvoM Guru
iTrader: (50)
Joined: Mar 2006
Posts: 9,675
Likes: 132
From: Tri-Cities, WA // Portland, OR
The link to download the modified rom is dead. Are there any other links we can download it from?
http://se30.dyndns.org:8080/evo/8859...tched_v10t.zip <-----------dead
http://se30.dyndns.org:8080/evo/8859...tched_v10t.zip <-----------dead
just in case your box is full... jgonzales@csupomona.edu
Thread Starter
EvoM Guru
iTrader: (50)
Joined: Mar 2006
Posts: 9,675
Likes: 132
From: Tri-Cities, WA // Portland, OR
just in case your box is full... jgonzales@csupomona.edu
When using the 9653 rom, have you properly setup your MUT table to read the values correctly? Have you setup evoscan correctly? Chances are if you can't get it to work with 9653, your not going to have much luck with another rom. It works and it is very easy.
First things first: Forget the patch. go back to a normal 9653 rom (V7) and get the WB02 working correctly. Follow the threads about this and get evoscan logging your WB02, while the car is running off the front narrow band.
It really sounds like your having issues trying to mod two things at once. Once you get the WB02 logging correctly with 9653, applying the patch is a 5 minuet process, heck not even that long.
and...
Yes you have to enable the patch: see the following pic: the first box to the left under the MUT has a one to enable closed loop WB logging.

First things first: Forget the patch. go back to a normal 9653 rom (V7) and get the WB02 working correctly. Follow the threads about this and get evoscan logging your WB02, while the car is running off the front narrow band.
It really sounds like your having issues trying to mod two things at once. Once you get the WB02 logging correctly with 9653, applying the patch is a 5 minuet process, heck not even that long.
and...
Yes you have to enable the patch: see the following pic: the first box to the left under the MUT has a one to enable closed loop WB logging.

mfred, if you want, feel free to toss any of that stuff up on the wiki if you want a mirror for it (or when you get your server back online, let me know, and I can set up a scheduled job to mirror it automatically, if you'd find it useful).
seems like it is working.. great fuel economy tool !
My only question is the wbo2 gauges shoud show me a fix AFR value what is in the map 15,6:1 or little fluctuation is normal like between 15,1-15,7 : 1 @ fix tps and speed ?
My only question is the wbo2 gauges shoud show me a fix AFR value what is in the map 15,6:1 or little fluctuation is normal like between 15,1-15,7 : 1 @ fix tps and speed ?
Edited 5/20/2010: Uploaded v2, which changed "Cold Engine Closed Loop AFR" to a much more reasonable 14.7.
----
Cool, I actually found a few minutes this afternoon to tackle this.
Here's a completely untested 96530006 patch, based on mrfred's original code. I've run it through a disassembler and it looks correct, but I can't stress this enough: I haven't even loaded this on my own car yet, so if something breaks, you get to keep both pieces. If something goes wrong, turn the car off and flash it back to your old ROM, and post here about what happened.
I tried to take care to avoid collisions, so this should work with at both a stock 96530006, as well as with v5.10 and v7 of tephra's ROMs (including the SD- and DMA-patched versions of v7).
Download a patched 96530006 here (you don't actually flash this to your car; you only copy stuff from it): http://evoecu.logic.net/mirror/patch...oop_AFR-v2.hex
Add this XML to 96530006.xml in your rommetadata directory:
All the rest of mrfred's instructions apply, including EvoScan changes.
(For the geeks: I used FFFF8906 and FFFF890A for rear/front O2 RAM locations, as they appeared to be unused. Any other differences should just be accounting for different RAM and ROM locations in 9653, and most should be obvious from the XML.)
----
Cool, I actually found a few minutes this afternoon to tackle this.
Here's a completely untested 96530006 patch, based on mrfred's original code. I've run it through a disassembler and it looks correct, but I can't stress this enough: I haven't even loaded this on my own car yet, so if something breaks, you get to keep both pieces. If something goes wrong, turn the car off and flash it back to your old ROM, and post here about what happened.

I tried to take care to avoid collisions, so this should work with at both a stock 96530006, as well as with v5.10 and v7 of tephra's ROMs (including the SD- and DMA-patched versions of v7).
Download a patched 96530006 here (you don't actually flash this to your car; you only copy stuff from it): http://evoecu.logic.net/mirror/patch...oop_AFR-v2.hex
Add this XML to 96530006.xml in your rommetadata directory:
PHP Code:
<scaling name="AFR16" units="AFR" toexpr="14.7*128/x" frexpr="14.7*128/x" format="%.1f" min="8" max="20" inc="0.1" storagetype="uint16" endian="big"/>
<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="Closed Loop Wideband On/Off" category="Front/Rear_02" address="7FC0" type="1D" level="1" scaling="uint8"/>
<table name="Cold Engine Closed Loop AFR" category="Front/Rear_02" address="7FC2" type="1D" level="1" scaling="AFR16"/>
<table name="Min Coolant Temp To Use AFR Table" category="Front/Rear_02" address="7FC4" type="1D" level="1" scaling="Temp"/>
<table name="Wideband AFR Correlation 1/mL Value" category="Front/Rear_02" address="7FC6" type="1D" level="1" scaling="mLinverse"/>
<table name="Wideband AFR Correlation bL/mL Value" category="Front/Rear_02" address="7FC8" type="1D" level="1" scaling="uint16"/>
<table name="AFR Table Multiplier High Word" category="Front/Rear_02" address="7FCC" type="1D" level="1" scaling="Hex16"/>
<table name="AFR Table Multiplier Low Word" category="Front/Rear_02" address="7FCE" type="1D" level="1" scaling="Hex16"/>
<table name="Front O2 (ADC 04) RAM variable" category="Front/Rear_02" address="AA0E" type="1D" level="1" scaling="Hex16"/>
<table name="Rear O2 (ADC 0A) RAM variable" category="Front/Rear_02" address="AA0A" type="1D" level="1" scaling="Hex16"/>
<table name="MUT12 Value (To Read Wideband)" category="Front/Rear_02" address="3624A" type="1D" level="1" scaling="Hex16"/>
<table name="MUT19 Value (To Read Front O2 ADC)" category="Front/Rear_02" address="36266" type="1D" level="1" scaling="Hex16"/>
<table name="ADC Value Mod Hook" category="Front/Rear_02" address="A8F8" 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>A8F8</data>
<data>A8FA</data>
<data>A8FC</data>
<data>A8FE</data>
<data>A900</data>
<data>A902</data>
<data>A904</data>
<data>A906</data>
<data>A908</data>
<data>A90A</data>
</table>
</table>
<table name="Hook For Closed Loop Pulse Control Hex" category="Front/Rear_02" address="14DB4" 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="8">
<data>14DB4</data>
<data>14DB6</data>
<data>14DB8</data>
<data>14DBA</data>
<data>14DBC</data>
<data>14DBE</data>
<data>14DC0</data>
<data>14DC2</data>
</table>
</table>
<table name="Front/Rear 02 Sim Subroutine Part 1" category="Front/Rear_02" address="36980" 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>36980</data>
<data>36982</data>
<data>36984</data>
<data>36986</data>
<data>36988</data>
<data>3698A</data>
<data>3698C</data>
<data>3698E</data>
<data>36990</data>
<data>36992</data>
<data>36994</data>
<data>36996</data>
<data>36998</data>
<data>3699A</data>
<data>3699C</data>
<data>3699E</data>
<data>369A0</data>
<data>369A2</data>
<data>369A4</data>
<data>369A6</data>
<data>369A8</data>
<data>369AA</data>
<data>369AC</data>
<data>369AE</data>
<data>369B0</data>
<data>369B2</data>
<data>369B4</data>
<data>369B6</data>
<data>369B8</data>
<data>369BA</data>
<data>369BC</data>
<data>369BE</data>
<data>369C0</data>
<data>369C2</data>
<data>369C4</data>
<data>369C6</data>
<data>369C8</data>
<data>369CA</data>
<data>369CC</data>
<data>369CE</data>
</table>
</table>
<table name="Front/Rear 02 Sim Subroutine Part 2" category="Front/Rear_02" address="369D0" 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>369D0</data>
<data>369D2</data>
<data>369D4</data>
<data>369D6</data>
<data>369D8</data>
<data>369DA</data>
<data>369DC</data>
<data>369DE</data>
<data>369E0</data>
<data>369E2</data>
<data>369E4</data>
<data>369E6</data>
<data>369E8</data>
<data>369EA</data>
<data>369EC</data>
<data>369EE</data>
<data>369F0</data>
<data>369F2</data>
<data>369F4</data>
<data>369F6</data>
<data>369F8</data>
<data>369FA</data>
<data>369FC</data>
<data>369FE</data>
<data>36A00</data>
<data>36A02</data>
<data>36A04</data>
<data>36A06</data>
<data>36A08</data>
<data>36A0A</data>
<data>36A0C</data>
<data>36A0E</data>
<data>36A10</data>
<data>36A12</data>
<data>36A14</data>
<data>36A16</data>
<data>36A18</data>
<data>36A1A</data>
<data>36A1C</data>
<data>36A1E</data>
</table>
</table>
<table name="Front/Rear 02 Sim Subroutine Part 3" category="Front/Rear_02" address="36A20" 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="18">
<data>36A20</data>
<data>36A22</data>
<data>36A24</data>
<data>36A26</data>
<data>36A28</data>
<data>36A2A</data>
<data>36A2C</data>
<data>36A2E</data>
<data>36A30</data>
<data>36A32</data>
<data>36A34</data>
<data>36A36</data>
<data>36A38</data>
<data>36A3A</data>
<data>36A3C</data>
<data>36A3E</data>
<data>36A40</data>
<data>36A42</data>
</table>
</table>
<table name="Closed Loop Fuel Pulse Control Subroutine" category="Front/Rear_02" address="36A44" 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="16">
<data>36A44</data>
<data>36A46</data>
<data>36A48</data>
<data>36A4A</data>
<data>36A4C</data>
<data>36A4E</data>
<data>36A50</data>
<data>36A52</data>
<data>36A54</data>
<data>36A56</data>
<data>36A58</data>
<data>36A5A</data>
<data>36A5C</data>
<data>36A5E</data>
<data>36A60</data>
<data>36A62</data>
</table>
</table>
(For the geeks: I used FFFF8906 and FFFF890A for rear/front O2 RAM locations, as they appeared to be unused. Any other differences should just be accounting for different RAM and ROM locations in 9653, and most should be obvious from the XML.)
Logic. I downloaded your rom 96530006 and I also pasted your xml patch to the 96530006.xml file in ecu flash. When I open your rom to copy tables, the tables for closed loop control don't show. I also posted the patch in my 94170015.xml file because that is where my rom reads from even though I use phenoms 0706 version of v7 and I still cant see your tables to copy from. Any help would be greatly appreciated. thank you in advance




