Fuel Control

by: Michael Decipha Ponthieux
Posted: 2013-01-02
Last Updated: 2021-10-04


This write up specifically pertains to Ford fuel control but the basis applies to all other ECUs / PCMs both aftermarket and OEM.

Before a vehicle can be tuned properly especially a highly modified vehicle it is of utmost importance that all of the base changes are made in the calibration to incorporate all modifications that the vehicle has been subjected to.

The absolute most important aspect of custom tuning is getting the fuel model correct so that the ecu has accurate fuel data. An often overlooked value that is critical for accurate fuel modeling is putting the most accurate stoichiometric AFR value in your tune.

The following chart lists common fuels and the TYPICAL stoichiometric air/fuel ratio for that fuel.

Stoich (fuel type)

Typical USA Fuel Stoichiometric Air Fuel Ratios
Pump Gas Non-Ethanol14.64Does not exist in most parts of the USA
Pump Gas E1014.08typical fuel at most pumps in the USA
Sunoco Race Fuels
Sunoco MO2X UL (clear 97)14.52.7% oxygenated
Sunoco 260 GTX (98)14.4
Sunoco 260 GT (clear 100) (SS 100 in california)13.93.3% oxygenated
CAM 2 GT 10013.9alternate name of Sunoco 260 GT
Sunoco 260 GT Plus (light blue 104)13.74.8% oxygenated
Sunoco Standard (purple 110)14.85
Sunoco Supreme (blue 112)14.95LEADED
Sunoco MO2X (green 112)14.52.7% oxygenated
Sunoco HCR Plus (orange 114)14.8
Sunoco Maximal (red 116)15.01LEADED
Sunoco MaxNOS (yellow 116)14.9
Turbo Blue Race Fuels
Turbo Blue Unleaded (clear 100)13.93.5% oxygenated
Turbo Blue Unleaded Plus (lt. blue 104)13.74.5% oxygenated
Turbo Blue (blue 110)14.7
Turbo Blue Advantage (lt . blue 112)14.9
Turbo Blue Extreme (orange 116)15.0
VP Race Fuels
VP Street Blaze 100 (orange 100)14.02 - 14.16
VP C10 (clear 100)14.535
VP C12 (green 108 MON)14.45 - 15.00
VP C16 (blue 117 MON)14.775
VP Q16 (yellow 116 MON, 120 RON)13.43
VP C23 (blue 120 MON)14.935
VP C44 (purple 99 MON)12.87 - 14.93
VP 110 (purple 110)14.40 - 15.09
VP 11314.26leaded / oxygenated
VP MS10314.265
VP MS109 (clear 105)13.415
VP Import (clear 120 MON)14.155
**If you have any corrections or additions to add to this chart leave a post on the forum and I will update this chart to keep it as current as possible. The above are TYPICAL stoich AFRs, fuel blends can vary from pump to pump and source to source.

An incorrect stoichiometric AFR value in your tune will result in inconsistencies in the air flow model. In some cases advanced tuners will INTENTIONALLY put inaccurate stoichiometric AFR values in their tunes to allow the reported AFR on the digital gauge cluster to report typical AFR values for alternate fuels such as E-85. In these cases the fuel model must be kept accurate by compensating in the injector data.

Preface / Definitions

Before we can begin to discuss dialing in fuel it is imperative that you understand air fuel ratios, lambda and various miscellaneous terminology.
RAM PIDsNameDescription
KAMRFLTFTThe adaptive fuel multiplier learned over time.
LAMBSEThe commanded AFR the ecu is targeting. On 2010- and older strategies lambse is often mistaken called the STFT
which is misleading because although STFT is lambse when in closed loop during open loop LAMBSE is the target lambda but not a correction.
STFTThe instanteous fuel correction based on o2 sensor feedback. Only exists on 2011+ strategies with factory widebands.

StoichStoichiometric Air Fuel Ratio is where all the fuel is consumed most efficiently == lambda of 1.000

The following is a simplified list of the basic fuel modes for all ecu's (although other modes exist they are not primary control).
  • Underspeed
  • - Cranking PWThe ecu is in Cranking Pulsewidth Fuel Control when you physically hold the key in the crank position before it fires off (meaning <400 rpm).
  • Cold OL Fuel
  • - Base FuelBase fuel is the desired AFR during warm up.
  • Cold Fuel Enrichment
  • - Startup EnrichmentStartup Enrichment is the additional fuel needed to stabilize the engine for every startup, better known as a "Choke" in carburetor's.
  • Closed Loop
  • - o2 Sensor ControlClosed loop fuel control is the normal fuel mode used when the o2s are in control of fuel. In closed loop fuel control the o2 sensors switch to control fuel.
  • Open Loop
  • - WOT Fuel Desired lamda commanded over half throttle for enrichment and WOT - Wide Open Throttle.

    Cranking PW

    Cranking PW is the actual pulsewidth in msec the injectors are fired for every pip signal. If you have difficulty starting and suspect the cranking PW are too high (i.e. too rich) hold the throttle to the floor during crank to shut off the injectors to verify. Cranking PW does not have to be perfect. Typically +/- 25% of ideal will suffice with no ill effects. In summary, If you dont have to hold the key in the crank position with the starter engaged for too long to get the engine to fire then your cranking pw is fine.

    2002 and newer strategies typically require little to no Cranking PW adjustment as the cranking pw is calculated based on the fuel and air model.
    FNCRK_LAM This function is the lambse commanded during cranking. It should be set to the enrichment lambse that makes the engine the happiest at startup.
    FN052C This function is the LOAD commanded during cranking. Scaled coyote tunes will need cranking pw reduced. Adjust as needed to get the fastest fire off possible. More load = more cranking fuel.
    This table is a multiplier to cranking pw. It is used for more precise non linear adjustments to the cranking pw and can be used to reduce pw on extended cranking to prevent flooding the engine. This is only present on 1994+ strategies. GUFX has this added in as a function with the decipha patch.
    FN387 / FN387XThis is the underspeed PW multiplier which is also used during cranking PW. Should always be set to 1.000 in all tunes as this is also used while the engine is stalling / underspeeding if bogged down. This function causes startup inconsistencies with many stock tunes most notably on AHAC2 and KRAF5.

    2001 and older strategies require cranking pw modifications as follow:
    FN348On modified engines, the cranking pw is typically adjusted based on the percentage of injector size and engine size change. The following equation is typically used for startup tunes in these cases. It is common for the warm to hot cranking pw to need further adjustment to fine tune.
    You would multiply the Y-axis of the cranking pw function as a percentage of the following:
    OLD injector size / NEW injector size * NEW engine size / OLD engine size

    Understanding Lambse (Desired Lambda "Commanded Fuel")
    The first step to tuning is dialing in fuel. The ecu controls fuel with LAMBSE. If you've never tuned an engine before its imperative that you understand fuel CAN ONLY be dialed in on a WARM ENGINE. A cold engine can require significantly MORE fuel than a stabilized warm engine. Lambse is a derivative of LAMBDA or the "AFR" (air/fuel ratio) the ecu is demanding. When fuel is dialed in your wideband will match your lambse. YOU CANNOT ADJUST FUEL IN ANY WAY SHAPE OR FORM UNTIL YOU KNOW WHAT YOUR LAMBSES ARE!!! With null modifier's your LAMBSE will be the exact value in your base fuel table at warm stable temps. However, in all cases,
    you adjust your fueling to make your wideband MATCH your lambse, again,
    you adjust your fueling to make your wideband MATCH your lambse, repeat,
    you adjust your fueling to make your wideband MATCH your lambse
    you adjust your fueling to make your wideband MATCH your lambse

    DO NOT change the maf curve to get the wideband to spit out the AFR you want. Adjust the maf curve or injector values to get the wideband to spit out the afr the ecu is telling it to (LAMBSE). The LAMBSE is the Lambda (AFR) the ecu is DEMANDING. If your lambse is 1.160 at WOT and your wideband reads 0.990 lambda at WOT then you are RICH and you need to pull 17% fuel out. Just for clarification the 1.160 lambse at WOT was my example to show you that the wideband reading means nothing if you do not know the lambse the ecu is commanding. No one in their right mind would demand 1.160 at WOT but this extreme example is to emphasize the importance of lambse. Likewise, if your LAMBSE at WOT is 0.550 and your wideband reading is 0.750 then you are LEAN and need to add 20% fuel. Again, no sane person would demand 0.550 Lambse at WOT this extreme example is simply to express the importance of LAMBSE!!!. This understanding is paramount in order to dial in fuel. YOUR FUEL IS NOT DIALED IN UNTIL the wideband lambda matches the ecu's lambse.; When this happens your LTFT's - long term fuel trims "KAMRF" will be very near 1.000 in closed loop at all conditions. And the lambse that the ecu is demanding during closed loop will be the actual lambda measured with a wideband. Once more, you adjust your fueling to make your wideband MATCH your lambse. For all conditions the lambse is the AFR the ecu is demanding. So keep in mind multipliers only modify lambse. THEY ARE INCAPABLE OF DIALING IN FUEL. For example, if your wideband is reading 0.945 and your lambse is 0.875 your fuel is off by ( 0.945 / 0.875 = 8%). Changing the WOT fuel lambse multiplier from 1.000 to 0.926 [ 1 / 1.08 ] will reduce your LAMBSE from 0.875 to (0.875 * 0.926 =) 0.810 now your actual wideband lambda would drop to 0.875 [ 0.945 * 0.926 ] That will give you a wideband lambda of 0.875 that you wanted but lambse is now commanding 0.810 Thus 0.875 / 0.810 = that 8% error still exists and you have not dialed in fuel. Thus as you can see without knowing the lambse that the ecu is commanding the AFR to be you have no way of correcting the actual fuel error.

    PRLDSW - PERLOAD (FN035) - DOES NOT APPLY TO 2005+ Strategies

    PERLOAD CONTROLS FUEL. Perload is the percentage of total load depending on what value the PRLDSW scalar is set to. It is highly recommended to set PRLDSW=0 in all calibrations.

    Note: PRLDSW does not function on the 2002+ strategies that use TP_REL for fuel control natively. Thus 2002 and newer strategies do not support a PRLDSW scalar value of 0 for perload fuel control since the base fuel table uses TP_REL as the Y-axis scaling. In those cases verify if decipha has written code to do so in order to control fuel more precisely. At the time of this writing RZASA does have PERLOAD fuel control and FBGI0 currently does not.
    PERLOAD = LOADNot Recommended
    PERLOAD = TPRELon some 2006+ strategies only

    When PRLDSW=0, the ecu calculates perload as a percentage of LOAD using the "Peak Load" function FN035. In stock calibrations FN035 will be set to the MAXIMUM load the engine can possibly reach. For supercharged applications this will incorrectly INCLUDE the peak load in boost which I DO NOT RECOMMEND.

    In order to have the most efficiently possible fuel control FN035 must be dialed in to the curve of the engines load through-out the RPM range at 0 boost and 0 vacuum. Therefore FN035 must have your typical load value your engine reaches when at WOT Naturally Aspirated regardless if its boosted or not.

    When doing so and FN035 is dialed in properly, PERLOAD will be near 1.00 (+/- 0.05 fluctuations is typical) at WOT at all RPM's for a naturally aspirated engine. When in boost PERLOAD will be > 1.00 representative of the engine moving more air than it can flow naturally aspirated. This method is the MOST accurate method for fuel control on the ford ecu's.
    Note: Doing the above along with setting up the spark table appropriately is how boost can be added later after the engine has been tuned with minimal to no tune changes required. So long that the maf, piping and injectors remain the same.

    If using any of the EFIDynoTuning Base Calibrations, be sure that FN035 contains your maximum N/A load (while not in boost). If you do not have a boost gauge you can approximate 0 vac and 0 boost at approximately half throttle. In some extreme cases you may need to disable boost by removing the supercharger belt if you do not have a vac/boost gauge to find the LOAD at 0 boost / 0 vac. Once you have boost bypassed, do a WOT run in 2nd gear from idle to redline. At each 650 rpm interval, note the LOAD. If using TunerPro RT I have configured a histogram that will give you the correction factor to apply to FN035 under the Data History Tables (Histograms).

    When PRLDSW=1 then PERLOAD=LOAD which effectively disables FN035. This is not recommended since most engines peak load at low rpms is significantly lower than the higher rpms. In engines with larger cam's its typical to reach the same load value in cruise that you reach at 0 vac / 0 boost at lower rpms. If PRLDSW=1 you can only command a given lambse for any given load. Thus, doing so will require you command full enrichment AFRs at cruise. Otherwise at WOT at lower RPMs you will not have enrichment as this is the same load as cruise in the higher rpm's. THIS IS NOT RECOMMENDED. Note: This is typically the default setting on factory supercharged applications, supercoupe, cobra, lightning/harley. It is basically undone with FN1360 which will be discussed later.

    PCT_Load is inferred from the failure management lookup tables most notably FN1036 the failed load table and to a much lesser extent its associated modifier tables for BP and ISC compensation. This is not present in the foxbody and older ecu's thus those older strategies do not support a PRLDSW value of 2. PCT_LOAD is the top row of the FN1036 table divided by the current tables interpolated value. This gives a percentage of peak load based on throttle position which is not ideal.
    WARNING: When PRLDSW=2 perload is CLIPPED to not exceed PCT_LOAD * ARCWOTCOR. This can cause lean out at WOT if not dialed in properly. Note that this ONLY APPLIES when PRLDSW=2.
    Fyi: ARCWOTCOR is the inferred load multiplier for FN1036 at WOT to help compensate for changes in engine output at WOT.
    if PRLDSW=2 be sure that the ARCWOTCOR scalar is maxed out at 2.00 while dialing in the tune. ARCWOTCOR is a multiplier on PCT_LOAD (inferred load) which comes primarily from the FN1036A table. If you hadn't dialed in the PCT_LOAD tables and ARCWOTCOR is not set to 2.00, then you will go lean at WOT if LOAD exceeds FN1036 * ARCWOTCOR.
    If using TunerPro RT, I have setup a histogram to dial in FN1036. In order to use it properly the TOTLDST Adder table FN1039 must be set to all 0s. Then simply apply the corrections from the histogram table into your tunes FN1036 table. After you have dialed in your tune and FN1036A, you can then reduce ARCWOTCOR to a reasonable value if you so choose, typically stock values of 1.3 for boosted engines or 1.1 for N/A engines. However, leaving ARCWOTCOR at 2.0 will not cause any issues and can be kept.

    When changing PRLDSW=0, the following are the MINIMUM changes required. This only applies to 2001- and older strategies. More details to follow.
    GUFX &
    Older EEC-IV
    Later EEC-IV
    & EEC-V
    ParameterOld ValueNew ValueComments
    FN320AFN320AO/L Perload ThresholdY-axis: all 0.95 to 1.20This function forces open loop based on PERLOAD
    FN035FN035Peak Load ScalingWOT load with boost bypassed (n/a - no boost load)
    **DNE**FN1360Stabilized Fuel TableThis table can be disabled by setting ECTSTABL=254 and ECTSTABLTIM=255.
    **DNE**FN337O/L Warm ThresholdY-Axis: all 2.00This function forces open loop only when the engine is warm, maxing to 200 load will disable.
    THBP2FN513WOT TP ThresholdY-Axis: all 650 adcntsThis function forces open loop based on throttle position, 650 adcnts/200 == 3.25 volts TP_REL
    FN1307FN1362Base Fuel Table0.805 > 105 perload
    0.875 at 105 and 90 Perload
    1.000 at 75 perload and less
    The base fuel table. (AFR the ecu is commanding)
    **DNE** = does not exist. See the
    Tips & Tricks Write Up for specifics on Open Loop and Closed Loop controls.

    Base Fuel (Cold Fueling) / Primary Fuel Table(s)

    The base fuel table is the AFR commanded based on engine coolant temperature and either LOAD, PERLOAD or RELATIVE THROTTLE (TP_REL) depending on your specific strategy and can also vary depending on how you have your tune setup for fuel control. In the fuel table the lambse is the afr your telling the ecu you want. If your lambses are 0.850 at WOT and you want them at 0.800 you need to go to the fuel table and change it from 0.850 to 0.800 in those cells. In all of my tunes I always simplify fueling by demanding 1.000 lambda (stoich) up to a perload of 0.75 of the maximum engine efficiency (no boost) and 0.875 at perloads of 0.90 to 1.05 and a lambse of 0.800 at perload of 1.20 and greater.
    Note that N/A engines cannot reach PERLOAD greater than 1.00 (more air than the engine can suck in on its own) when FN035 is dialed in "PER DECIPHA" as described above.
    CopperheadFN1362LBXBase Fuel Table ColdDoes not usually require adjustment.
    PowerPCFN1362LBBase Fuel Table ColdRecommend commanding enrichment lambse at top of table
    RZASAFN1362LXPrimary Base OL Fuel TableOnly used with decipha PERLOAD code, recommend setting as outlined above.
    FBGI0FN1362LXBase OL Fuel Tablerecommend setting to all 1.000 until PERLOAD code is released.
    CVAF1FN1362X_LOSTBase Fuel TableUses LOAD as the y-input. Recommend manually dialing in for now.
    CDAN4FN1362Base Fuel TableRecommend setting as described above.
    AHAC2FN1362Base Fuel Table / WOT MultiplierRecommend setting as described above.
    CBAZAFN1362 / FN1306Base Fuel TableRecommend setting as described above.
    GUFXFN1307 / FN1362Base FuelRecommend setting as described above.

    What about FN1360 - The Stabilized Fuel Table ?
    The stabilized fuel table and base fuel table effective interchange and serve the same purpose. The primary difference is that the stabilized table has rpm input instead of ect for the x-axis scaling. When the ECT Stable flag is set the ecu NO LONGER APPLIES STARTUP ENRICHMENT. More details are below.

    In 2001 and older strategies the base fuel table is used at startup until the ECT stable flag is set. In which it switches to the stabilized fuel table. In 2002 and newer strategies the stabilized fuel table is ALWAYS ACTIVE and the base fuel tables are only effective until the stabilized ect time scalar is exceeded.
    Disabling the ect stable flag from setting will disabled FN1360, FN338 and FN337 which are not needed.
    Note: The FN337 - RPM vs Load Open Loop Function is ONLY ACTIVE once the ECT Stable Flag is set, setting the function to all 0s will not force open loop until the ECT Stable flag is set. If the ect stable flag is disabled to disable FN1360 then that function will be disabled. FN320A is the perload OL threshold and should be used for enrichment based on perload.

    STFT - Short Term Fuel Trims (Lambse)

    Short Term Fuel Trim is the lambse difference from stoich (1.000 - lambse) * 100 , It is the exact same representation of Lambse.

    To put this into perspective, lets say at WOT we have a LAMBSE of 0.800
    1.000 - 0.800 = 0.2 * 100 = 20 (STFT)

    Now, lets say we have a negative STFT value of -18
    1.000 - (-18 / 100) = 1.18 LAMBSE

    as you can infer, a negative STFT means its removing fuel, so lambse will be greater than 1.000 (leaner)
    a positive STFT means it is adding fuel, so lambse is less than 1.000 (richer)
    So lets say for example, we have a STFT of 15

    1.000 - (15 / 100) = 0.85 (Lambse)

    for quick reference heres a table to break it down and help understand it better
    STFTLambseFuel Error%
    -11.010 = [1.000 - ( -1 / 100)]
    -21.020 = [1.000 - ( -2 / 100)]
    -41.040 = [1.000 - ( -4 / 100)]
    -81.080 = [1.000 - ( -8 / 100)]
    -121.120 = [1.000 - ( -12 / 100)]
    -161.160 = [1.000 - ( -16 / 100)]
    -181.180 = [1.000 - ( -18 / 100)]
    -201.200 = [1.000 - ( -20 / 100)]
    -251.250 = [1.000 - ( -25 / 100)]
    01.000 = [1.000 - ( 0 / 100)]
    10.990 = [1.000 - ( 1 / 100)]
    20.980 = [1.000 - ( 2 / 100)]
    40.960 = [1.000 - ( 4 / 100)]
    80.920 = [1.000 - ( 8 / 100)]
    120.880 = [1.000 - ( 12 / 100)]
    160.840 = [1.000 - ( 16 / 100)]
    180.820 = [1.000 - ( 18 / 100)]
    200.800 = [1.000 - ( 20 / 100)]
    250.750 = [1.000 - ( 25 / 100)]

    FN1360 - Stabilized Fuel Table (ALL STRATEGIES)

    When PERLOAD=1 (PERLOAD==LOAD) you cannot allow for different lambses at different loads per RPM. But FN1360 will allow you to. The catch is that FN1360 is ONLY ACTIVE after the engine is warm == ect exceeds the ECTSTABL scalar and the STABLTIM scalar time is exceeded. So basically if you disable FN035 by setting PRLDSW to 1 (as most stock supercharged applications are) you are basically undoing it with the FN1360 table. However, since the FN1360 table ONLY gets used AFTER the engine is warm you CANNOT have efficient COLD fueling control. You WILL have either excessive enrichment or excessive lean out since the base fuel table FN1306 is only scaled by ECT (engine coolant temperature) and LOAD [when prldsw==1;(perload=load)]. Also worth noting is that startup enrichment fuel will be REMOVED when the Stabilized ECT flag is set that allows FN1360 to become active.

    For example:
    Some engines can only reach ~0.55 load up to about 1200 rpm, ~0.65 load below 3k and ~0.75 load at about 4k then reduce back down to about ~0.60 load at 6k rpm. So with PRLDSW=1 you WILL have to force open loop before 0.55 load and set the base fuel table so that at 0.55 load your at commanding enrichment typically 0.875 Lambse for pump gas. For optimal engine efficiency, response and safety, you should typically have lambse's commanding full enrichment at 90% of peak load. Thus, 0.55 * 0.9 == 0.495 load. however this is very inefficient since ~0.50 load is easily attainable at highway crusing rpms (~2200 rpm) which as a result will be enriched. Thus I recommend setting PRLDSW to 0 in all tunes. Most 94+ tunes have PRLDSW=2 in stock tunes, I recommend switching it to 0 and adjusting the
    minimum items listed above.

    Remember: PERLOAD only controls fuel and LOAD controls spark.

    Given the controls of PRLDSW, the "best" option for PERLOAD is to use Load Scaling from FN035 by setting the load scaling switch PRLDSW to 0. Remember, If the PRLDSW scalar is not set to 0 in your tune currently, you WILL have to make the minimum changes listed above.

    Injectors - Inputing Injector Data
    Accurate injector data is MOST CRITICAL to properly dialing in fuel. See the
    Injector Data Reference page to see if your injector data is available.

    and is the IDENTICAL TWIN SIBLING of the injector high slope. The K-Constant defines every single limiter in all of the ecu calculations. For this very reason, the K-Constant should always be set to 30 lbs/hr in all tunes as that gives the maximum resolution in the ecu for any tune.

    So Why 30?
    On eec-v the injector slopes have a maximum limit based on the ecu's processor speed and 30 lbs/hr insures you dont butt up against any of those limits on any ecu. This also includes when deltap modifiers come in to affect on returnless fuel systems. A k-constant of 30 lbs/hr of fuel pegs the injector duty cycle at the airmass clip of 64 lbs/min (~1750 kg/hr) which is the maximum airmass clip on eec-v, powerpc and many other applications. And to even furthur that on returnless fuel systems 30 moves the maximum fuel pump flow rate just past 4 (the maximum the ecu can calculate) so there is no longer a fuel pump flow rate limit when dialing in the fuel pump voltage table. So in summary a k-constant value of 30 lbs/hr is the absolute perfect value for the ecu to no longer have any fueling, airmass or fuel flow limitations yet gives the absolute maximum resolution possible. Its also a nice and easy to remember whole round number. The objective here is easy. As a side bonus you can very easily see exactly where the injectors and maf peg without having to painstakingly calculate it simply by looking at the maximum airmass possible in any of the SP** airmass functions. Simply divide your maximum airmass your reaching at wot by that and you know very easily exactly how much headroom you have left. It might not sound like much but it makes life significantly easier when turning up the boost later down the line not having to question if your going to peg something.

    ADX K-Constant Dependency
    Furthermore the K-Constant must be set to 30 lbs/hr for datalogged values to display correctly. RWHP, RWTQ, AirMass, Fuel Flow amongst almost everything my adx self calculates in tunerpro is based on the K-Constant not changing i.e. remaining "constant". So as you can infer changing the K-Constant will change the entire foundation of the tune.

    Existing Tunes
    If your K-Constant on an existing tune is anything other than 30 lbs/hr then you will need to verify you did not clip the injector maximum slope value with the deltap modifiers taken in to account. If you hadn't then the easiest way to update your tune is to just change the WARNING!!! INJECTOR HIGH SLOPE scalar to your injectors UNSCALED ACTUAL INJECTOR HIGH SLOPE value from the manufacturers published data sheet and save that tune. Now if you go look at any of the SP** values in your tune its going to show you actual unscaled values. If any of those values are incorrect then your tuner did not scale your tune properly. Your K-Constant wont be at 30 lbs/hr as it should be at this point but thats fine for now. However, if your unfortunate enough that your slope did exceed the maximum limit then you will need to completely re-dial in the tune from the top on down. More info can be had on the forum if you request.

    On all fords changing the K-constant or the high slope without physically changing the injectors flow will change the entire tune. Its the same as its always been just more prevalent now.

    Injector High Slope - "Global Fuel K-Constant"

    The injector high slope "AHISL" is the K-CONSTANT for all tuning softwares other than TunerPro. This will be the actual flow rate of the injector so long as it does not exceed the ecu's limitations. Typically this would be the same value as the injector is rated for (ex: 30lb injector would have a high slope of 30, a 60lb injector would have a high slope of 60, etc...) Although, its typically common for most injectors to have a high slope slightly less than their rating as well. For example a 36lb injector could have a high slope of 34.2, this is due to the fact that most injectors are rated at 43.5 psi but are operated at a different fuel pressure thus changing their actual flow rate.

    EEC-V Injector Maximum Injector Slope CLIPS EEC-V ecu's have maximum injector slope values based on the processor speed. For returnless fuel systems (1999+ newer) the deltap multiplier has to be FACTORED in to the maximum slope clip. Below is the maximum FINAL slope value the ecu can calculate.
    ECU Clock SpeedXTALHPSMax Slope Value (lbs/hr)Years
    27 MHz4.060.34Late 2003 and 2004+ vehicles
    24 MHz3.053.641999-2003 most ecus
    21 MHz2.046.931998 ecu's
    18 MHz1.040.231995 ecu's

    Injector Low Slope

    The Injector Low Slope accounts for non-linearities at low pulsewidths, at low pulsewidths most injectors act as larger injectors spraying or drooling more fuel, so to compensate you will have a low slope typically with a value HIGHER than the high slope but not always. Typically the low slope is approximately 15% larger than the high slope on most injectors. So a 30lb injector would typically have a low slope of (30*1.15=) 34.5, a 60lb injector would have a low slope of (60*1.15=) 69 or so (excluding the siemens deka 60lb injectors which are very linear at low pulsewidths). The further apart the low slope is from the high slope the more influence the breakpoint will have, thus IT IS IDEAL AND HIGHLY RECOMMENDED to have the low slope AS CLOSE AS POSSIBLE to the high slope when dialing in unknown injectors; this will insure your fueling is not doing anything odd at the breakpoint. However, the low slope can SOMETIMES be less than the high slope on older larger injectors. This isn't as common on newer style injectors.

    Injector Slope Tuning

    The injector slopes can be thought of as global fuel multipliers. A smaller injector slope (smaller injector size) will spray MORE FUEL than a larger injector to deliver the same air/fuel ratio. Thus, decreasing the injector slope will RICHEN the fuel mix. This can ONLY be done when the MAF curve is correct and measuring airflow accurately.

    Fuel Pressure

    Changing the fuel pressure will change the all injector data, the slopes, breakpoint and voltage Offset for ballpark quick adjustment, I compensate 1% per psi, so if you up the pressure from 40 to 60, I would start by multiplying the slopes by 1.20 if I drop the pressure from 40 to 20, i would multiply the slopes by 0.80, if i went from 40 to 45 the i would multiply by 1.05 not exact, but good enough to begin dialing in the injectors for the new pressure. If you have published manufacturer data for your injectors then obviously use the actual data for the pressure your running.

    MAF Transfer - Dialing in the MAF
    Incorrect injector data will cause inconsistent in fueling resulting in non uniformities in the maf curve when dialing in the maf. With accurate injector data and accurate maf data your fuel should be dialed in theoretically however thats seldom the case in the real world. It's not uncommon to need 10-15% global corrections to the maf curve. However, if you have significant non-linear corrections through-out the maf curve then most likely your injector data is not accurate or you are experiencing turbulence in the maf or you may even have boost or vac leaks. Before dialing in the maf you must be sure that you have accurate injector data. In the case where you do not have accurate injector data you can still verify if the maf is accurate by performing the following test. Knowing that most injectors flow linear on the upper end one can assume that in most cases everything from 500 imaf counts and greater will have a consistent fuel error% if the maf curve is accurate. To test that the maf curve is accurate, simply make a half throttle log accelerating from idle up to about half throttle at 6000 rpm. If done correctly you should have a very smooth rise in imaf counts increasing in a controlled and uniform fashion. Now calculate out your fuel error% at each imaf count point and compare your error percentage. If you come up with a constant error% for everything over a given imaf count, then your maf curve is accurate!!

    For example:
    If during your imaf counts sweep your LAMBSE is at 0.875 and your wideband reads 0.95 but stays there CONSISTENT then the maf curve is accurate!
    Later on in the dialing in the injectors section below I will discuss how you can reduce your high slope and get your 0.95 wideband reading down to exactly 0.875 that the ecu is demanding (LAMBSE).

    Using KAMRFs to dial in the MAF
    LAMBSE's in closed loop are based purely on hego feedback, when in closed loop your lambse's will jump around to hit stoich (make the hegos switch.) Once it does, adaptives will update the KAMRF's. When in closed loop you do not need to dial in fuel, the KAMRFs will do that for you!!! Then once you've gathered sufficient KAMRF data you use that info to dial in your fuel.

    Note: The highest MAF voltage in the MAF transfer must be the maximum the ecu allows!!!! NO EXCEPTIONS!!! This will be 16 volts for EEC-IV and 5.12 volts for EEC-V unless your strategy has decipha's MAF Clip Code enabled. The MAF curve must be in chronlogical order, thus all numbers must be in order from least to greatest, YOU CANNOT HAVE A LOWER FLOW FOR A HIGHER VOLTAGE!! else the ecu will reset everytime it reaches that point. On some EEC-V's the LOAD will spike to 2.0 and pulsewidth and fuel flow will also max out when the ecu interpolates a non-chronological value in the maf curve causing bucking and maybe even severe head trauma if you have a full roll cage in the vehicle and are not wearing a helmet. Note that powerpc's are far less forgiving when interpolating a non-chronological maf point as it just causes a slight hiccup usually. Enough to know something is wrong but not quite enough to propel one through the windshield or impale ones torso with the gear shift selector.

    Organizing the MAF Points for Maximum Resolution
    In ALL calibrations and especially so for those that do not have a known maf curve. I highly recommend to organize the maf points like so:
    AD Cnts

    Remember from the tuning dos and don't write up that the bottom most point must be 0 ad counts! No exceptions. You can now work your flows much easier. Decipha's histograms in tunerpro are populated in this order as well to expedite the process.

    Fuel Error% - Calculating Fuel Corrections

    Fuel error is calculated using the following formula
    So for example, lets say our engine idles at 175 imaf ad counts for referencing the maf transfer area for correction.

    Now With the engine at a warm stable idle the wideband lambda jumps around between .97 and 1.01 while lambse's are jumping between 1.14 and 1.18 and kamrf is at 0.945 we have:

    0.99 / 1.16 * 0.945 == 0.806
    (average wideband lambda) / (average lambses) * KAMRF

    We would now go to the maf transfer and multiply the FLOW at 175 ad counts by 0.806 to make the fuel perfectly dialed in at 175 ad counts now.

    Repeat the process and calculate the fuel error percentage at each imaf point in your maf curve to dial in the maf.


    Scaling is required to compensate for injectors or maf's that exceeding the maximum limits.
    On Coyotes the 86 lb/min airflow clip limit occurs at 700rwhp.

    If you have a MAF that flows over 64 lbs/min (1,750 kg/hr) for EEC-V or PowerPC; or 86 lbs/min (2,350 kg/hr) for EEC-IV or Coyote ECU's you will have to scale your tune.

    In all calibrations make sure the MAF flow DOES NOT exceed these values, (even lower at 1,000 kg/hr or 36#/min for some select v6 and 4 cyl strategies) although you can put a higher value in the maf transfer, the ecu is incapable of calculating it. So you would compensate by scaling.

    This does not apply if using Deciphas Definitions with TunerPro.
    As of Feb. 2020 TunerPro has scaling included integral to the definition with Decipha's exclusive K-Constant variable.

    But FOR GREATER KNOWLEDGE to scale the maf and injectors you would do the following:

    DIVIDE YOUR ACTUAL INJECTORS HIGH SLOPE lbs/hr BY 30 lbs/hr, the resulting value will be your SCALING PERCENTAGE,

    For example:
    Lets say you have siemens deka 80lb / hr injectors with an actual high slope value of 75.156.
    76.156 divided by 30 == 2.5052 ; 2.5052 is your SCALING PERCENTAGE.

    you will now apply that SCALING PERCENTAGE to the following:
    PID - Early EEC-IVPID Late EEC-IV and EEC-VParametervalueDescription
    AHISLAHISLInjector High Slope75.157 / SP == New Value
    ALOSLALOSLInjector Low Slope101.459 / SP == New Valuenow reduce your ACTUAL injector slopes and breakpoint by your scaling percentage to bring fueling back to where it was
    REMEMBER, a smaller injector sprays LONGER than a larger injector for the same AFR
    Reducing the slope will RICHEN the mix to compensate for reducing the MAF transfer which LEANED the mix
    FN389FUEL_BRKPTInjector Breakpoint0.00002421 / SP == New Value
    FN036FN036MAF Transfer116 / SP == New Valueby scaling your ACTUAL maf transfer your measuring a percentage of actual airflow
    SARCHGSARCHGCID scalar302 / SP == New ValueThis would normally have the value for your cubic inch displacement like 301.08
    SARCHG and MAF flow is how LOAD is calculated
    Skipping this step is going to cause engine damage with excessive ignition timing due to low load
    **DNEAIR_MAN_VOLManifold Volume5 / SP == New Valuereduce the manifold volume scalar by your scaling percentage to aid in transients (this is not available in older ecu's)
    FN1358FN040AInferred Airmassapply your scaling percentage to reduce all cells on the y-axis
    FN041FN041Normalized Airmassapply your scaling percentage to reduce x axis values except top, used for adaptive update rate table
    FNRFNRM_FLOWFNRFNM_FLOWFuel Pump Flow Rateapply your scaling percentage to reduce all cells on the x-axis except the top most
    FN096FN096Inferred TPRELapply your scaling percentage to reduce all x axis cells except the top most value
    IDLMAFIDLMAFMinimum Idle Airmass Clip 0 This should always be set to 0 on scaled tunes to prevent overfueling on decel or at idle.
    **DNE = does not exist
    NOTE: Injector voltage offsets DO NOT GET SCALED
    Since we are measuring the SCALING PERCENTAGE of the MAF and the SCALING PERCENTAGE of the injectors we haven't changed fueling because the ratio of air to fuel is equivalent, but yet we don't exceed the ECU's maximum airmass clip of 64 lb/min (1,750 kg/hr) and now we won't split a V8 into two inline 4s.
    Note: On pre-existing tunes often times adjustments to the MAF curve are necessary to get fuel dialed back since mistakenly clipping the injector size is common.

    EEC-V Max Injector Slope

    The EEC-V also has a maximum injector slope size clip similar to the maf flow clip. Just as outlined above, the scaling percentage must also accomdate the maximum slope value otherwise the ecu cannot calculate the injector size value you have in the calibration. The table below is the MAXIMUM slope size permissible for the given ECU clock speed. Be sure your scaled percentage puts the slope values BELOW this maximum clip.

    EEC-V - Injector Slope Maximum Value
    XTALHPSMhzMax Slope ValueTypical Applications
    1.01840.23 94-96 early eec-v
    2.02146.93 most 96-98 vehicles
    3.02453.64 most 99-02 vehicles, all 99-03 trucks
    4.02760.34 most 03/04 cars, excludes trucks

    Putting a value higher than those listed in the above chart for any given processor clock speed EEC-V will result in the value being clipped to the value in the table. NEVER EXCEED THE VALUES GIVEN.

    Scaling LOAD - 200 LOAD CLIP

    The older ford ECU's can only calculate up to 200 LOAD, once the ecu reaches 2.00 LOAD it cannot calculate further. This does not apply to the CAN-BUS ECU's that can be modified to calculate up to 400 LOAD.

    Wideband/Narrowband Tuning

    A narrowband will report a stoich switch before a wideband will, if it doesn't then something isn't right. A widband (WBo2) is nice but it not absolutely necessary to dial in fuel, with a known curve you can watch the kams peal the fuel curve into place the easy way to tell if your maf transfer is correct is that your wideband AFR will stay consistent, if your fuel is constantly jumping all over the place then your maf transfer is off, but if your LAMBSEs are static (one value) and your AFR is off by a percentage then you can make that correction with the SLOPE(s)

    for example, lets say you have your fuel table setup so that from 0 to 75 PERLOAD your LAMBSE is 1.000, at 90 to 105 perload LAMBSE is 0.875, 120+ load LAMBSE is 0.800 (see A9L2 for example) with all lambse multipliers null (set to 1 = no effect on lambse) including the global open loop fuel multiplier scalar null (set at 1.00) your lambse will be what we demanded in the fuel table at WOT lambse drops to 0.800 (perload exceeds 120) yet the wideband stays consistent reading 1.058, you can very easily drop the high slope from say 40 to 34.5 and in the next pull the WOT wideband will be exactly 0.800, now everything over the injector breakpoint is going to have a kam correction of 1.00 since your linear flow fuel is dialed in !! The only 2 variables remaining are the low slope and breakpoint, I start off by setting the breakpoint high, say 0.000020 (GUFB = ~6) for example, then adjust the low slope to get idle right where it needs to be, I then re enable closed loop and let the hegos and adaptives dial in the fuel, once the kams have learned you can organize the imaf numerically in the datalog and see how the kams have adapted, if you have a kam correction less than 1.00 in the lower voltages of the maf curve then you know you need to increase the low slope, REMEMBER, you must dial in the low slope BEFORE you can dial in the breakpoint as it will be constantly moving once you have the low slope dialed in and the high slope dialed in you'll see exactly where the breakpoint is as the KAM's will not be 1.00 in that MAF voltage range

    Open Loop / Closed Loop

    In open loop the lambse's do not respond to hego feedback, the lambse calculated from the fuel table(s) and multipliers is what you get since the hegos are cold during startup all ecu's crank into open loop fuel mode, one can logically figure out that since the hegos can only report STOICH = 1.000 lambda, that open loop must be entered at WOT and high loads as well where enrichment is needed (more fuel than stoich) So short, in open loop the hegos are just ignored but they can still give you insight on if your lean or rich by the voltage they are reporting. At WOT the hegos should be reporting 0.800 volts or more indicating your not lean. If you see them drop below that you know your lean unless the hegos heaters aren't getting power.

    During closed loop the ecu constantly adds and subtracts lambse to get the hego to switch if the hego is lean ( < 0.4 volts) then the ecu drops the lambse to enrichen the mix until the hego switches rich ( goes above > 0.4 volts) once the hego has switched rich, the ecu then increases lambses to get it to switch lean again in a never ending closed loop once the hegos are controlling fuel correctly, the ecu will save that fuel correction in the KAMRF data and use it the next time the ecu is in that cell (load and rpm range) the narrowbands and ecu can dial in your fuel much more accurately than a human can by looking at a wideband and making adjustments
    See the
    HEGO Write Up for more details.

    Closed Loop Tuning / KAMRF (LTFT)

    KAMRF is the absolute fuel error% at that specific imaf count which is how much fuel it took for the hego to reach actual CL stoich reported by the hego VS what you told the ecu it should be there is no fuel table for closed loop since fueling is controlled purely by the o2 sensors switching. The KAMRF as a direct multiplier to maf flow at that specific imaf. But make sure you remain at that imaf count for at least 10 seconds with the lambses switching above and below 1.0 so you know the kam's have matured and are accurate.

    By datalogging and comparing MAF voltage (ad counts) to KAMRF we can dial in fuel perfectly but since the hegos only report stoich they can not be used to dial in WOT fuel... or can they? the beauty about mass air is that you tune the ecu to the peripherals not specifically to the engine by this i mean you don't dial in a VE table to calculate fuel like you would in a speed density setup once you have your maf and injectors dialed in, so long that your not exceeding their capacity, your fuel will be exactly where you set it

    its highly recommended to have a wideband for dialing in WOT but if you don't have a wideband you can still dial in your fuel by letting the hego's do it for you the ecu will default to open loop at WOT, in order to force closed loop at WOT you MUST set the WOT Breakpoint (threshold) to max either 5.1 volts or 1023 ad counts since relative_throttle position can never reach that the WOT flag will never be set, you must ALSO disable the OL vs RPM and OL vs ECT functions from forcing you into open loop the easiest way to do this is to set the time delay scalars to 20 seconds, you can now use the hegos to dial in WOT fuel, you must pull a few degrees of timing out to prevent a bunch of heat in the engine, an engines burns hottest at just a tad leaner than STOICH, and we all know HEAT MAKES POWAH so by pulling out say 6 degrees or more you will reduce the amount of heat in the engine and make it safer to beat on at STOICH
    for example, with a dialed in low and high slope your kams might look like this

    at 350 imaf cts and below, the kams fluctuate between 1.00 to 1.03 which is perfect.
    at 375 imaf cts, kams=1.05
    at 400 imaf cts, kams=1.06
    at 425 imaf cts, kams=1.04
    from 450 to 1000 imaf cts, kams fluctuate between 1.00 and 1.02

    you then know you need to reduce the breakpoint to give it a little more fuel where the slopes meet which is approx. 400 imaf cts in the example given

    think of it like this

    low slope=low load, cruise and idle
    high slope=high load, wot and aggressive acceleration
    breakpoint, is the center of where it mixes both together

    E-85 Adjustments

    If you've previously tuned your vehicle for pump gas and are switching to E-85 the following are the minimum changes that should be made when switching fuels.

    reduce stoich_afr "z_afr" to e85
    shoot mbt timing to it
    kick up the crank pw by 25%
    drop the 90+ load lambses (top 3 rows) by 0.05 lambda

    Dial her in from there.


  • Multipliers and fuel tables only modify lambse, THEY DO NOT DIAL IN FUELING!!
  • You can use the wot fuel multiplier if you want, in fact I use it on a lot of my mail order tunes, but remember though its a multiplier on lambse it cannot dial in fueling. So remember if your demanding 0.888 and your wideband is saying 0.820 even if your in boost, your running rich, once again the purpose in this write up is to emphasize that the wideband reading is useless without knowing the lambse, there is no possible way to know if your rich or lean since its relative to lambse
  • If you want a WOT AFR of 0.800 and your wideband reads an AFR of 0.800, yet the LAMBSE is 0.860 (the computer wants 0.860) THEN YOU ARE RICH and you need to change your fuel table to 0.800 instead of 0.860 and then reduce fueling so your wideband then reads 0.800 again which would coincide with your lambse, since your 6% richer now if you just changed the lambse to 0.800 without changing your fueling you'll be down to 0.740 lambda
  • LAMBSE is the AFR the ecu is demanding, widebands read the actual lambda, thats why you dial in fuel by getting the actual lambda (wideband) to match the commanded lambda = "LAMBSE"
  • Side Note: Table rescaling has no effect on FUELING, for the record, no one has to rescale any tables, its ONLY done to gain more control, if you want to do it the quick way you can simply increase the SARCHG (cubic inch displacement scalar) and adjust your tables accordingly, same principle
  • LAMBSE is the afr you tell the ecu you want, once fuel is dialed in correctly, the wideband will spit out the same value as LAMBSE
  • The lambse should be whats in the fuel table unless your in closed loop and its varying around stoich or if theres a multiplier thats modifying the lambse, like the wot multiplier, global fuel scalar, startup enrichment, lug multipliers, etc..
  • The injector slopes have nothing to do with lambse
  • Its often easiest to get fuel close in open loop then enable closed loop and use the kams to mold the fueling into place perfectly
  • The older ecu's used lbs/rev as a variable for the breakpoint (half the engine cylinders), where as with the newer ecu's its static thus the single breakpoint lb fuel scalar

    Startup Enrichment

    Startup Enrichment is the additional fuel needed to stabilize the engine for every startup, better known as a "Choke" in carburetor's. If you haven't dialed in base fuel yet then you can't dial in startup enrichment yet. Once your base fuel is dialed in for startup fueling compensation you have to dial in the startup enrichment "lambse subtractor" table.

    Also note the other big contributor to startup is dialing in the isc multiplier table(s) fn1861 / fn1862n / fn1862d.

    This is covered in the

    Cold / Startup Enrichment Write Up

    Resetting the ECU / KAM Memory

    Once your fuel has been dialed in, the KAM memory will not need to be reset.
    It is NOT recommended to reset the KAM memory for any purposes, the adaptive memory can ONLY benefit the tune.
    An unintentional memory reset such as a loss of battery power will not warrant any tune adjustments.
    If the vehicle has been sitting for an extended amount of time without the engine ran, so long as the injectors and MAF
    sensor remain the same as it was when tuned, no tune adjustments are required.

    Keep Alive Memory SHOULD ONLY be reset when fuel modeling has been changed
    this will occur under the following conditions:
    • MAF Transfer Function adjustments greater than 5%
    • Injector High Slope adjustments greater than 0.5 lbs/min
    • Sarchg (CID - Engine Size) adjustments greater than 50 cubic inches

    Adjustments made to LAMBSE in the fuel tables WILL NOT require KAM to be reset.

    to reset KAM's do any of the following:
    • The easiest method is to change the kam clear scalar to clear then hit update, then change it back to normal and hit update again, key must be on
    • OR... you can select an empty tune slot with the key on then select back to the tune
      for example, (if using BE) open up hardware >> moates config >> select tune slot 7 which should be blank, the pump will run, then select tune slot 8 again and the pump will shut off (if thats where you have your tune written)
    • OR... or you can write a corrupt tune to it like a CBAZA tune to a GUFB ecu for example
    • OR... you can disconnect the battery for 30 minutes
    Any of these methods will reset the learned adaptive fuel KAMRF's and idle air ISCKAM corrections.

    Retuning Required

    Retuning is required under any of the following circumstances

    • MAF sensor changes - all changes must be made in the MAF transfer ONLY
    • Fuel Injector changes - all changes must be made in the injector parameters ONLY
    • Fuel Pressure changes - all changes must be made in the injector parameters ONLY
    • Cylinder Head Replacement - spark table and peak load function must be updated
    • Camshaft Replacement - dashpot MAY need to be updated
    • Base Timing changes - Ignition timing (spark table) and injector timing must be updated
    • Fuel Grade changes, ex: E-85 or 87 Octane - AFR parameter and/or spark table must be updated

    Tuning Fuel Blind - No Fueling Feedback

    In some cases you will run in to some vehicles that do not cooperate. In these instances often the hegos are non-functional and an aftermarket wideband sensor either isn't possible due to the setup or just non-functional or reading incorrectly. In most instances it is due to burning oil and/or cam timing events or large exhaust with poor velocity. In any case in order to dial in these setups you must return to the old school carburetor style methods of dialing in fuel by feel. This is my method that works for me.

    First you will have to force open loop which goes without saying if you have incorrect or no hego feedback.
    Force OL Then simply go play with the maf transfer to get the engine running as best as you can. Without having any way to read the afr you cannot dial your fuel in so you have to tune it like a carb and adjust the maf transfer to see if the engine likes it or not. The best way to do this is to get the engine up to operating temp then at idle go adjust the maf flow at that imaf ct your idling at by reducing the flow multiplying it by 0.95 and updating. Continue to reduce the flow in 5% intervals until the engine starts dropping rpm and you will also see IPSIBR starts shooting up to add air to maintain idle. You have now reached the lean best idle fuel. Now multiply the flow by 1.05% to give it back 5% to make her happy again. At this point you've now reached the leanest point the engine will happily idle at and you've dialed in that maf point. Now use the throttle to reach the next imaf ct point and start over again. Dial in each point as well as you can until you reach the highest imaf cts point possible. Then to dial in those higher points you have to drive the vehicle. Hold the maf stable at that next imaf while driving and dial it in. Keep repeating until you reach half throttle. After half throttle it is safer to add fuel in 10% intervals by multiplying the flow at that imaf point and all the points above it by 1.10 until you've reached the point where adding fuel seems to slow the engine down or make it not as responsive. At that point remove 5% and your at the richest best fuel point for enrichment fuel and WOT. This is a tedious process so be patient. If a dyno is not available and street tuning is required its always best to have someone ride with you if possible to make operating the vehicle and tuning safer and easier.



    Even with known values fuel is seldom dialed in hence the need for custom tuning. Typically with known data its usual to be lean on the big end at WOT. Usually the mid-range is fairly close and idle will almost always need adjustment regardless.

    If PRLDSW=0 and FN035 is scaled properly as per the Scaling Write Up your fuel table should be set as follows: FN1362 Base Fuel Table


    if you input the actual flow values for your injectors from a flow bench as well as the maf values from the flow bench your fuel will probably be off a tad, it should be perfect in a perfect world but we don't live there. A flow bench has nothing to do with injectors or a curve or anything, a flow bench just measures flow, a good starting point but thats it Free reving an engine to dial in the maf meter is a very valid and effective means of creating the curve down low, you can typically dial it in enough to drive it out of state This is maf not speed density, the maf measures airflow, it doesn't matter if your engine is at 2v on the maf at a steady 60mph cruise or if its at 2v on the maf free reving at 4500 rpm. Its still flowing the same amount of air, a non lab-spec wideband is not as accurate as a narrowband at finding stoich, a narrowband ONLY measures stoich You can't use them to dial in fuel for anything other than stoich, however, you can should always use the narrowbands to verify the wideband is accurate If the narrowband voltage isn't over 0.8 volts at WOT then it would be wise to start snooping around and questioning the wideband could also be a faulty hego ground (check out
    Hego for more details).
  • Changing the injector slopes DOES NOT CHANGE LAMBSE.
  • Adaptives does not change anything, it only closes the gap from lambse and afr
  • PW is irrelevelt, thats the beauty of mass air, if the fuel is dialed in at 180kg/hr then its dialed in at 180kg/hr, rpm or pw is irrelevent
  • Fuel is proportionate to airflow the ecu will adjust pw for the rpm to reach the same lambse, thus mass air flow
  • Think of the breakpoint as an amount of fuel, because thats exactly what it is, in the older ecu's with a breakpoint function the breakpoint does
    actually get effected by rpm but its very minute, this is exactly why you can't convert from a breakpoint scalar to function
  • in open loop, lambse1=lambse2 the actual air/fuel ratio commanded matches what the engine is actually getting. This is the most critical aspect of your tune which lays the foundation since any error in fuel modeling will directly affect air modeling which is how load is calculated. Since load is how spark, transient fuel and almost all other major algorithms is the ecu are referenced it is very important that fuel be dialed in first otherwise everything else will need to be re-dialed in. dialing in the maf is typical when tuning and mass-air flow Before any 'tuning' can begin the ecu must have the correct stoichiometric air fuel ratio entered into the calibration data. The stoichiometric ratio is the ideal ratio in which all energy in the fuel is consumed. A numerically lower stoichiometric ratio consumes more fuel (lower MPGs) as compared to a fuel with a numerically higher stoichiometric ratio (higher MPGs). The stoichiometric scalar should be changed to reflect the actual fuel being burned.


    Load controls spark, load is calculated by the MAF (airmass) and SARCHG (engine size "CID") load is ford's equivalent to VE (volumetric efficiency). A bone stock E7 headed SBF 5.0L 302ci should reach a maximum peak load of ~78 at approximately 4k rpm, with LOAD reducing above and below peak tq.
    Thus, SARCHG on mass air ecu's is primarily used for spark control being that the major influence is LOAD. SARCHG has no direct affect on fueling for mass air ecu's. Changing the load value will not enrich or enlean the mix directly. However, changing SARCHG will change LOAD, and that could cause you to be in a different load cell causing enrichment or lean out if the above minimum changes required aren't adjusted to compensate.

    Continue reading on to
    Startup Enrichment Write Up.

    Return Home
    Jump to Forum
    www.EFIDynoTuning.com - EFIDynoTuning LC - New Orleans, LA