Tuning Tips and Methodology

by Michael Decipha Ponthieux
Posted: 2013-04-16
Last Updated: 2019-08-16

Force TCC & Trans Gear Lock - While Dyno Tuning

ECU YearPIDParameterActionComments
1993+SW_MLKForce TCC Locked - Overrideset scalar to 1 or "set"Forces TCC hard Locked
1993+Force Trans Gear Lock - Overrideset scalar to 1 or "set"Forces the transmission to stay locked in the "Gear Locked" value
1993+Gear Locked Overrideset scalar to 3rd gearGear locked into when the "Force Trans Gear Lock - Override" is enabled.
This can be set in TunerPro by simply clicking Enable on the Dyno Pull patch.

How to Force Open Loop - ALWAYS

ECU YearPIDParameterActionComments
1998-FN320AOpen Loop vs ECTSet y-axis to all 0sForces open loop when perload is exceeded
1999+FN311Open Loop vs TPSet Y-axis to all 0sForces open loop when relative throttle position is exceeded (3.8 is approx maximum)

How to Force Open Loop - IDLE ONLY (NEUTRAL)

NIOLDCL Neutral Idle Fuel Max Time1CTHIGH must be exceeded to function
NIHYSCT Neutral Timer Hysteresis1value of 0 will disable functioning
CTHIGHECT Min Hot Start-252ECT must exceed this value for the CT Timer to count up
TEMPFBECT Min Warm-254set to keep temperature consecutive
CTLOWECT Max Cold Start-256set to keep temperatures consecutive

How to Force Open Loop Decel - Low Loads

FN338Decel OL Perloadset y-axis to the minimum perload value you want to allow closed loopOL is forced BELOW these perload values (not in fox ecu)
LOLODLow Load OL30 (does not exist in newer ecus 94+)Will force open loop when perload is less than this value, the minimum perload closed loop clip
LOLODHDecel OL Hysteresis3value of 0 will disable FN338

How to stay in Closed Loop at WOT

ECU YearPIDParameterActionComments
1999-FN320AOpen Loop vs ECTSet y-axis to maximum (200 or 2.0) Forces open loop when perload is exceeded
1994+FN337Open Loop vs RPM (warm)Set y-axis to maximum (200 or 2.0) Forces open loop when perload is exceeded
1994+FN338Open Loop vs RPM DecelSet y-axis to 0 Forces open loop when load falls below this threshold
1999-FN311Open Loop vs TPSet Y-axis to maximum (5.12v or 1020 ad cnts)Forces open loop when relative throttle position is exceeded (3.8 is approx tprel maximum)
1994+FN513WOT TPREL ThresholdSet y-axis to maximum (5.12v or 1020 ad cnts) sets the wot flag and forces open loop when tprel is exceeded
1993-THBP5OL TPREL Thresholdset scalar to maximum (5.12v or 1020 ad cnts) forces open loop when tprel exceeds this value

Note: CBAZA uses FN513 and FN320A. GUFX uses FN320A and THBP5. CVAF1 uses FN311, FN320A, and FN513. Most other EEC-V uses all of the above excluding THBP5.

How to Disable Adaptives

AFACT1Adaptive ACT Min254Minimum ACT required to update adaptives
FADP_SWAllow Adaptive Fuel SWEEC-V only, setting this scalar will disable adaptives and all learned values.
Keep in mind, AFACT1 will ONLY disable adaptives from UPDATING, any adaptive info the ecu has already learned will still be applied. So be sure you clear the KAMs to remove any saved Adaptive/KAM data memory.

Disable Hego 2

Hego 2 should be disabled for all turbo setups and those with
X pipes but can also be done for testing or to bypass a faulty hego. Only hego 2 can be disabled correctly. To disable hego 2, set numego to 1 and change the injector output ports for cylinders 5 through 8 to bank 0.
PIDNew ValOld ValComments
NUMEGO12number of hegos present, defines the number of "banks" present
FN13270-0-0-0-0-0-0-00-0-0-0-2-2-2-2injector output port / bank assignment
The same applies for all year EEC's. ALTERNATELY, in some strategy files FN1327 may show bank 0 == 1 and bank 2 == 2. In those instances assign all of bank2 to bank1 to disable hego2.

Returnless to Return-style Fuel Pump Settings w/ FPDM and FRPS

PIDParameterReturnless ValueReturn ValueComments
FP_VTRIM_ENAEFRS Adaptives Allowed SW (RFS)10Disables fuel pump trim corrections
P1233SWP1233 Code10Disables the FPDM Offline code
P1237SWP1237 Code10Disables the Fuel pump secondary circuit fault code
FNRF_SSFFPump Voltage Tablexxx15set table to all 15s for return style (for good measure)

Returnless to Return-style Fuel Pump Settings w/o FPDM and FRPS

PIDParameterReturnless ValueReturn ValueComments
FP_TYPE_SELFuel Pump Type Select300=return,1=2spd,2=modulating,3=returnless
RFS_TYPESELFuel Pump System Type200=return,1=mechanical returnless,2=electric returnless
FP_DRIVERFuel Pump Driver Type100=relay,1=AMP
RF_MODEFixed Duty Cycle SW10
FPUMP_FREQFuel Pump Frequency15060
FPDM_OFFFPDM Off Value0.750
PUMP_OFF_DCPump Off DC0.750
RF_DC_CALPump DC in RF_MODE0.700.99
FP_EO_RP_SWRail Pres Sensor Test SW10to disable codes for fuel rail pres sensor
FP_ER_RP_SWRail Pres Sensor Test SW10to disable codes for fuel rail pres sensor
FNRF_SSFFPump Voltage Tablexxx15set table to all 15s for return style (for good measure)
OBDII_TST_SWOBD-II Tests BitmaskXXclear bit 1 to disable CCM tests (FRPS Sensor tests)
OBDII_MIL_SWOBD-II MIL BitmaskXXclear bit 1 to disable CCM tests (FRPS Sensor tests)


Dialing in fuel should be your first priority, not only does an excessively rich mixture waste fuel, it can also wash down the cylinders and destroy an engine. Remember, gasoline vapors are highly volatile and IS what you want in your combustion chamber, gasoline in the liquid form is much more tolerant to ignition. When too much fuel enters the combustion chamber either 1 of 3 things happens,


This goes without saying, a stuck injector will usually cause engine damage. So be warned, skimping on injectors is not wise, also as of lately, there's been a bunch of knock-off injectors hitting the market with terrible flow control. In higher horse engines its always wise to have flow matched injectors, this will help keep each cylinder consistent and will prevent excessively lean cylinders.


Idle fuel is best dialed in with a vacuum gauge, if you don't have a vac gauge you can log the instantaneous air correction payload IPSIBR and the neutral airmass correction payload ISCKAM2 (with A/C off) and adjust fuel until you idle with the MINIMUM AIRMASS which should be very near the MAXIMUM VACUUM if using a vac gauge. Fuel has more control over idle stability than spark.

Once you have the idle fuel dialed in you can then move on to idle spark, adjust the spark advance until the you measure the MAXIMUM VACUUM or the MINIMUM AIRMASS, this is the MBT timing for idle, I typically remove 6 degrees to use as a "TORQUE RESERVE". Reason being, you want that torque reserve to be there to help stabilize the engine for immediate loads such as a fan coming on or the a/c clutch engaging. To utilize this torque reserve you must allow the ecu to add in up to that maximum amount of timing for idle rpm fluctuations. This can be achieved in the idle spark rpm error multiplier function FN841N. As the rpm's drop below the desired idle rpm you want to advance timing and as the rpm's exceed the desired idle rpm you want to retard timing. Spark will adjust idle rpm faster than the idle air control valve can respond.
Download and open the A9L2 base calibration from the download section to see a visual representation of how this is implemented correctly.


The perfect Air to Fuel Ratio is known as stoichiometric (german word). Stoich is the most efficient AFR for a given fuel type, which means all of the fuel is consumed leaving none wasted. At stoich an engines Exhaust Gas Temperature will be hottest. So if your tuning via EGT, then it would be wise to periodically add fuel to verify the EGT drops in temp, if you add fuel and the EGT raises, then you know your on the wrong side of stoich!!!! At stoich an engine is running a LAMBDA of 1.000 a lambda of 0.999 and less is rich, a lambda of 1.001 and greater is lean.

Understanding an Engines Fuel Requirements

An internal combustion engine produces its own power, unlike a "motor" which consumes external power (electric). When an engine is at less than half of its maximum pumping capacity (half throttle) running the engine as lean as possible is very unlikely to cause engine harm. More times than not the engine will stumble, break-up, pop, etc.. However, none of these are likely to cause engine damage because the engine is just not making enough power to be damaging to itself. You'll also observe that most engines can tolerate being leaner as cylinder pressure and engine speed (RPM) increases.

Understanding LEAN

Most engine failures are due to running lean!!! When an engine runs lean its producing more heat. Think of a piece of paper burning. If you blow on the burn it will intensify and glow cherry red. This is because the AFR has been oxygen enriched from your blow job. The ideal perfect AFR is only obtainable by adding and pulling fuel to see if the engine responds in a positive or negative way. A typical Wide Open Throttle (maximum pumping) AFR for naturally aspirated gasoline engines is 0.874 - 0.901 lambda (high 12s and low 13s AFR for stoich of 14.64). This is the typical AFR where engines make the most power and are the most responsive. Ideally you want to run an engine AS EFFICIENTLY RICH AS POSSIBLE. By that I mean, you want to run an engine at an AFR that will not cause the engine to loose power nor cause the engine to accelerate slower. Fuel typically has little effect on an engines output so long that its in the ballpark, leaning an engine from 0.853 (12.5:1 AFR) to 0.894 (13:1 AFR) is not likely to cause much gains in performance. In fact, with the significant changes in fuel types recently, some engines benefit from running a tad richer than one would expect.

Understanding RICH

The definition of rich is up to user interpretation, it seems to vary by person since most folks tend to consider an engine "rich' relative to their own predetermined mixture. Technically, an engine is considered to be burning "RICH" when its burning more fuel than stoich. Most engines tend to like 0.874 to 0.901 (high 12s to low 13s) for maximum power, however for boosted and nitrous applications its neccessary to increase fuel (richen the mix) to increase safety. Boosted engines typically respond quite well in the 0.833 to 0.855 range (low to mid 12s) but thats not very wise to run that lean of an AFR under high boost with regular pump gas. If you have enough octane that you know your not going to run into detonation, its ok to run ~0.850 or so (mid 12s) in highly boosted engines, in fact most big horse high boosted engines on race gas typically run 0.820 - 0.855 (12.0-12.5s) at WOT down the track because they have the octane to do so safely.

Ignition Timing

Ignition timing has the most effect on engine performance. Its common to gain 50+rwhp just by adding a single degree of timing on high horse engines that are running retarded from MBT.

THE VALUE IN YOUR SPARK TABLES ARE THE ACTUAL SPARK DELIVERED TO THE ENGINE AS MEASURED AT THE CRANK WITH A TIMING LIGHT, the ecu does not add 10 degrees to those values, the ecu is programmed for a 10 degree btdc offset, thus your actual base timing (spout unplugged) must be 10 degrees btdc for both spark and injector timing to be accurate, NO EXCEPTIONS!!!
For more on timing see the
Timing Write Up.

For Modular and Coyote engines, cylinder #8 is a troubled cylinder that is most prone to failure, it is recommended to retard cylinder #8 by 2 degrees for modular engines and to not let cylinder #8 on Coyote engines exceed 22 degrees at WOT naturally aspirated.

Conversion Calcs

cc/min / 10.515 = lbs/hr
kg/hr / 2.03 = CFM
lbs/min * 60 / 2.2 = kg/hr
kg/hr * 2.2 / 60 = lbs/min
kg/hr / 3.232 = useable hp (rwhp)
lbs/min * 8.4 = useable hp (rwhp)
1/8 mile et * 1.56 = 1/4 mile et
Nm / 1.355 = ft lbs
ft lbs * 1.355 = newton meter

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