Toyota GR86, 86, FR-S and Subaru BRZ Forum & Owners Community - FT86CLUB

Toyota GR86, 86, FR-S and Subaru BRZ Forum & Owners Community - FT86CLUB (https://www.ft86club.com/forums/index.php)
-   Software Tuning (https://www.ft86club.com/forums/forumdisplay.php?f=88)
-   -   Open source Over Boost Fuel Cut (https://www.ft86club.com/forums/showthread.php?t=93000)

ztan 08-07-2015 08:28 PM

Open source Over Boost Fuel Cut
 
3 Attachment(s)
***Use at your own risk.***

This implementation hijacks the speed limiting fuel cut routine and assesses MAP instead of vehicle speed.

Defined for A00G/A01G ROM: a single value in the speed limiting fuel cut routine is changed (from 0x58 to 0x5A) to get MAP loaded instead of speed and MAP limits are entered in place of speed limits. To clarify, no additional patch is needed for this modification besides the single value switch in the code - thanks to Subaru engineers who just lifted the speed limit rather than write new code.

Defs and test log with 1.35 Bar cut limit and 4400 RPM active.
First ramp showing MAP > 1.35, RPM < 4400: No fuel cut.
Second ramp showing MAP > 1.35, fuel cut when RPM hits 4400.
Third ramp showing RPM > 4400, fuel cut when MAP hits 1.35.

This is a neck-snapping hard fuel cut, but probably better than a blown engine due to major overboost. Haven't done extensive testing and you'll lose your speed limiter fuel cut if you apply this (default set to fuel cut over 500 km/h).

Def for A00G/A01G:
Code:

   
    <table name="Boost Limit (Fuel Cut) enable" storageaddress="66831" />
    <table name="Boost Limit (Fuel Cut)" storageaddress="10C540" />
    <table name="Boost Limit (Fuel Cut) Resume" storageaddress="10C550" />
    <table name="Boost Limit (RPM) Active" storageaddress="10C554" />
   
<!--<table name="Speed Limiting Enable (Fuel Cut)" storageaddress="10C540" />
    <table name="Speed Limiting Disable (Fuel Cut)" storageaddress="10C548" />
   
<table type="Switch" name="Boost Limit (Fuel Cut) enable" category="Miscellaneous - Limits" sizey="1">
      <description>Enable Boost Limit (Fuel Cut)</description>
      <state name="Enabled" data="5A" />
      <state name="Stock ROM" data="58" />
</table>
       
<table type="2D" name="Boost Limit (Fuel Cut)" category="Miscellaneous - Limits" storagetype="float" endian="little" sizey="4" userlevel="4">
      <scaling units="Manifold Abs Pressure Bar" expression="x*.001333224" to_byte="x/.001333224" format="#0.000" fineincrement=".001" coarseincrement="0.01" />
      <table type="Static Y Axis" name="Boost Limit Fuel Cut" sizey="4">
        <data>On Above</data>
        <data>On Above</data>
        <data>Off Below</data>
        <data>Off Below</data>
    </table>
          <description>These are the MAP values at which the boost limiter is engaged and disengaged. When engine speed is equal to or exceeds the 'On' value, fuel cut is active, after which, if engine speed drops below the 'Off' value, fueling is resumed.</description>
    </table>   

<table type="2D" name="Boost Limit (Fuel Cut) Resume" category="Miscellaneous - Limits" storagetype="float" endian="little" sizey="1" userlevel="4">
      <scaling units="Manifold Abs Pressure Bar" expression="x*.001333224" to_byte="x/.001333224" format="#0.000" fineincrement=".001" coarseincrement="0.01" />
      <table type="Static Y Axis" name="Boost Limit Fuel Resume (MAP)" sizey="1">
        <data>Below</data>
      </table>
      <description>After the boost limiter is engaged and engine speed drops below the 'Off' RPM, fueling will not resume until manifold pressure drops below this table's value.</description>
      </table>     
     
<table type="2D" name="Boost Limit (RPM) Active" category="Miscellaneous - Limits" storagetype="float" endian="little" sizey="1" userlevel="4">
      <scaling units="Engine Speed (RPM)" expression="x" to_byte="x" format="#" fineincrement="50" coarseincrement="100" />
      <table type="Static Y Axis" name="Boost Limit Active over" sizey="1">
        <data>Over</data>
      </table>
      <description>The boost limiter is active over this RPM</description>
      </table>


ztan 08-07-2015 09:15 PM

Just realized that I set my cut and resume values the wrong way around during that test and in the above example, cut would be > 1.3 Bar with resume < 1.35 Bar (no hysteresis with values set as above).

Shiv@Openflash 08-08-2015 03:33 AM

Quote:

Originally Posted by ztan (Post 2350198)
***Use at your own risk.***

This implementation hijacks the speed limiting fuel cut routine and assesses MAP instead of vehicle speed.

Defined for A01G ROM: a single value in the speed limiting fuel cut routine is changed (from 0x58 to 0x5A) to get MAP loaded instead of speed and MAP limits are entered in place of speed limits.

Defs and test log with 1.35 Bar cut limit and 4400 RPM active.
First ramp showing MAP > 1.35, RPM < 4400: No fuel cut.
Second ramp showing MAP > 1.35, fuel cut when RPM hits 4400.
Third ramp showing RPM > 4400, fuel cut when MAP hits 1.35.

This is a neck-snapping hard fuel cut, but probably better than a blown engine due to major overboost. Haven't done extensive testing and you'll lose your speed limiter fuel cut if you apply this (default set to fuel cut over 500 km/h).

Def for A01G:
Code:

   
    <table name="Boost Limit (Fuel Cut) enable" storageaddress="66831" />
    <table name="Boost Limit (Fuel Cut)" storageaddress="10C540" />
    <table name="Boost Limit (Fuel Cut) Resume" storageaddress="10C550" />
    <table name="Boost Limit (RPM) Active" storageaddress="10C554" />
   
<!--<table name="Speed Limiting Enable (Fuel Cut)" storageaddress="10C540" />
    <table name="Speed Limiting Disable (Fuel Cut)" storageaddress="10C548" />
   
<table type="Switch" name="Boost Limit (Fuel Cut) enable" category="Miscellaneous - Limits" sizey="1">
      <description>Enable Boost Limit (Fuel Cut)</description>
      <state name="Enabled" data="5A" />
      <state name="Stock ROM" data="58" />
</table>
       
<table type="2D" name="Boost Limit (Fuel Cut)" category="Miscellaneous - Limits" storagetype="float" endian="little" sizey="4" userlevel="4">
      <scaling units="Manifold Abs Pressure Bar" expression="x*.001333224" to_byte="x/.001333224" format="#0.000" fineincrement=".001" coarseincrement="0.01" />
      <table type="Static Y Axis" name="Boost Limit Fuel Cut" sizey="4">
        <data>On Above</data>
        <data>On Above</data>
        <data>Off Below</data>
        <data>Off Below</data>
    </table>
          <description>These are the MAP values at which the boost limiter is engaged and disengaged. When engine speed is equal to or exceeds the 'On' value, fuel cut is active, after which, if engine speed drops below the 'Off' value, fueling is resumed.</description>
    </table>   

<table type="2D" name="Boost Limit (Fuel Cut) Resume" category="Miscellaneous - Limits" storagetype="float" endian="little" sizey="1" userlevel="4">
      <scaling units="Manifold Abs Pressure Bar" expression="x*.001333224" to_byte="x/.001333224" format="#0.000" fineincrement=".001" coarseincrement="0.01" />
      <table type="Static Y Axis" name="Boost Limit Fuel Resume (MAP)" sizey="1">
        <data>Below</data>
      </table>
      <description>After the boost limiter is engaged and engine speed drops below the 'Off' RPM, fueling will not resume until manifold pressure drops below this table's value.</description>
      </table>     
     
<table type="2D" name="Boost Limit (RPM) Active" category="Miscellaneous - Limits" storagetype="float" endian="little" sizey="1" userlevel="4">
      <scaling units="Engine Speed (RPM)" expression="x" to_byte="x" format="#" fineincrement="50" coarseincrement="100" />
      <table type="Static Y Axis" name="Boost Limit Active over" sizey="1">
        <data>Over</data>
      </table>
      <description>The boost limiter is active over this RPM</description>
      </table>


Fantastic work! :clap:

Shiv@Openflash 08-08-2015 11:17 PM

You have email :)

ztan 08-09-2015 06:32 AM

I've sent Shiv addresses for OFT_B01C ROM to test (only for OFT 2.xx ROMs). If anyone else with FI running A00C or A01C ROM wants some addresses to test before general release, get in touch with me.

Also note above that I have defined MAP pressure for fuel cut rather than boost (MRP) pressure. Just so no-one gets ideas of running at 1.3 Bar Boost = 19psi Boost, I did my testing on low boost: 1.3 Bar MAP = 0.3 Bar Boost = 4.35 psi Boost.

Shiv@Openflash 08-09-2015 02:41 PM

Quote:

Originally Posted by ztan (Post 2351319)
I've sent Shiv addresses for OFT_B01C ROM to test (only for OFT 2.xx ROMs). If anyone else with FI running A00C or A01C ROM wants some addresses to test before general release, get in touch with me.

Also note above that I have defined MAP pressure for fuel cut rather than boost (MRP) pressure. Just so no-one gets ideas of running at 1.3 Bar Boost = 19psi Boost, I did my testing on low boost: 1.3 Bar MAP = 0.3 Bar Boost = 4.35 psi Boost.

Thank ztan, I'll be testing in our turbo car on Monday. Once again, fantastic work and big kudos on your desire to contribute to the open source community :thumbsup:

ztan 08-13-2015 10:30 AM

1 Attachment(s)
Shiv: thanks for the recommendation.

Shiv@Openflash 08-13-2015 01:32 PM

Quote:

Originally Posted by ztan (Post 2355921)
Shiv: thanks for the recommendation.

Nice! That's all my wife's doing. I haven't been to India in 10+ years! Have a great time :cheers:

Shiv@Openflash 08-20-2015 09:44 PM

ztan knocked it out of the park. I just tested his update in our turbo FRS and it works beautifully. So beautifully, that I'll be adding it to all OFT350 customer tunes. In the datalog below, I have the boost cut to set to 9psi:

http://datazap.me/u/shivvishnu/oft-z...=0&data=2-9-13

Great work ztan. The community appreciates it!

ztan 08-24-2015 05:19 AM

Quote:

Originally Posted by Shiv@Openflash (Post 2364409)
ztan knocked it out of the park. I just tested his update in our turbo FRS and it works beautifully. So beautifully, that I'll be adding it to all OFT350 customer tunes. In the datalog below, I have the boost cut to set to 9psi:

http://datazap.me/u/shivvishnu/oft-z...=0&data=2-9-13

Great work ztan. The community appreciates it!

For those of you on B01C, this is what I sent to Shiv:

Note that I have set this .xml description to "boost" pressure in psi over atmospheric. Use the descriptor at the top of the post if you work in absolute Bar.

B01C:
Code:

   
    <table name="Boost Limit (Fuel Cut) enable" storageaddress="69171" />   
    <table name="Boost Limit (Fuel Cut)" storageaddress="10E5EC" />
    <table name="Boost Limit (Fuel Cut) Resume" storageaddress="10E5FC" />
    <table name="Boost Limit (RPM) Active" storageaddress="10E600" />
   
    <table type="Switch" name="Boost Limit (Fuel Cut) enable" category="Miscellaneous - Limits" sizey="1">
      <description>Enable Boost Limit (Fuel Cut)</description>
      <state name="Enabled" data="5A" />
      <state name="Stock ROM" data="58" />
    </table>
    <table type="2D" name="Boost Limit (Fuel Cut)" category="Miscellaneous - Limits" storagetype="float" endian="little" sizey="4" userlevel="4">
      <scaling units="Manifold Pressure (psi relative sea level)" expression="(x-760)*.01933677" to_byte="(x/.01933677)+760" format="#0.00" fineincrement=".01" coarseincrement=".5" />
      <table type="Static Y Axis" name="Boost Limit Fuel Cut" sizey="4">
        <data>On Above</data>
        <data>On Above</data>
        <data>Off Below</data>
        <data>Off Below</data>
    </table>
      <description>These are the MAP values at which the boost limiter is engaged and disengaged. When engine speed is equal to or exceeds the 'On' value, fuel cut is active, after which, if engine speed drops below the 'Off' value, fueling is resumed.</description>
    </table>
        <table type="2D" name="Boost Limit (Fuel Cut) Resume" category="Miscellaneous - Limits" storagetype="float" endian="little" sizey="1" userlevel="4">
      <scaling units="Manifold Pressure (psi relative sea level)" expression="(x-760)*.01933677" to_byte="(x/.01933677)+760" format="#0.00" fineincrement=".01" coarseincrement=".5" />
      <table type="Static Y Axis" name="Boost Limit Fuel Resume (MAP)" sizey="1">
        <data>Below</data>
      </table>
      <description>After the boost limiter is engaged and engine speed drops below the 'Off' RPM, fueling will not resume until manifold pressure drops below this table's value.</description>
      </table>
        <table type="2D" name="Boost Limit (RPM) Active" category="Miscellaneous - Limits" storagetype="float" endian="little" sizey="1" userlevel="4">
      <scaling units="Engine Speed (RPM)" expression="x" to_byte="x" format="#" fineincrement="50" coarseincrement="100" />
      <table type="Static Y Axis" name="Boost Limit Active over" sizey="1">
        <data>Over</data>
      </table>
      <description>The boost limiter is active over this RPM</description>
      </table>


Grip Ronin 09-04-2015 10:19 PM

this is great im going to need to add this to the sbd tune. would the same codes work on a A00c rom?

ztan 09-05-2015 05:38 AM

Quote:

Originally Posted by Grip Ronin (Post 2380844)
this is great im going to need to add this to the sbd tune. would the same codes work on a A00c rom?

I don't think so, but I haven't checked A00C.
Send me a PM and we can work on pulling them for A00C.

ztan 09-09-2015 08:44 PM

Pulled on Grip Ronin's request for A00C/A01C, no feedback yet.

Can someone test and report on the following if you have FI and A00C or A01C (use one of the two .xml descriptors above):

Code:

<table name="Boost Limit (Fuel Cut) enable" storageaddress="68F71" />
<table name="Boost Limit (Fuel Cut)" storageaddress="10E600" />
<table name="Boost Limit (Fuel Cut) Resume" storageaddress="10E610" />
<table name="Boost Limit (RPM) Active" storageaddress="10E614" />


Grip Ronin 10-04-2015 02:54 PM

Quote:

Originally Posted by ztan (Post 2385117)
Pulled on Grip Ronin's request for A00C/A01C, no feedback yet.

Can someone test and report on the following if you have FI and A00C or A01C (use one of the two .xml descriptors above):

Code:

<table name="Boost Limit (Fuel Cut) enable" storageaddress="68F71" />
<table name="Boost Limit (Fuel Cut)" storageaddress="10E600" />
<table name="Boost Limit (Fuel Cut) Resume" storageaddress="10E610" />
<table name="Boost Limit (RPM) Active" storageaddress="10E614" />


ya turbos still in my living room. just finished porting the turbine housing and wg. still weeks away from install lol.


All times are GMT -4. The time now is 03:12 AM.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2026, vBulletin Solutions Inc.
User Alert System provided by Advanced User Tagging v3.3.0 (Lite) - vBulletin Mods & Addons Copyright © 2026 DragonByte Technologies Ltd.


Garage vBulletin Plugins by Drive Thru Online, Inc.