<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://content.epicefi.com/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Agnese</id>
	<title>epicEFI Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://content.epicefi.com/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Agnese"/>
	<link rel="alternate" type="text/html" href="https://content.epicefi.com/wiki/index.php/Special:Contributions/Agnese"/>
	<updated>2026-08-29T07:32:39Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://content.epicefi.com/wiki/index.php?title=Config:Idle&amp;diff=493</id>
		<title>Config:Idle</title>
		<link rel="alternate" type="text/html" href="https://content.epicefi.com/wiki/index.php?title=Config:Idle&amp;diff=493"/>
		<updated>2026-08-07T14:54:13Z</updated>

		<summary type="html">&lt;p&gt;Agnese: Stepper acceleration profile&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- section:idleSettings --&amp;gt;&lt;br /&gt;
= Idle settings =&lt;br /&gt;
Configuration for engine idle: the target speed, the open- and closed-loop control that holds it, idle ignition timing, and the idle air hardware (IAC solenoid, stepper, or electronic throttle).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:idleBasicSettings --&amp;gt;&lt;br /&gt;
== Idle settings ==&lt;br /&gt;
Core idle behaviour: how idle is controlled and the conditions under which the ECU decides the engine is idling.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idleMode --&amp;gt;&lt;br /&gt;
==== Idle control mode ====&lt;br /&gt;
See also idleRpmPid&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Open Loop + Closed Loop&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Open Loop&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idlePidDeactivationTpsThreshold --&amp;gt;&lt;br /&gt;
==== TPS threshold ====&lt;br /&gt;
Below this throttle position, the engine is considered idling. If you have an electronic throttle, this checks accelerator pedal position instead of throttle position, and should be set to 1-2%.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:forceIdleBelowTpsThreshold --&amp;gt;&lt;br /&gt;
==== Force idle below throttle threshold ====&lt;br /&gt;
Force idle STATE below DriveIntent threshold.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:forceIdleIgnitionBelowTps --&amp;gt;&lt;br /&gt;
==== Force timing only below pedal threshold ====&lt;br /&gt;
Force idle ignition (delta target only) below DriverThreshold threshold, only for ignition timing&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:forceIdleIgnitionUseDFCO --&amp;gt;&lt;br /&gt;
==== Idle force delayed by DFCO ====&lt;br /&gt;
Do not force idle ignition while DFCO is active for either of the above.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idleDeltaRpmAdjAvgFactor --&amp;gt;&lt;br /&gt;
==== Delta target rpm smoothing factor ====&lt;br /&gt;
Smoothing factor for delta target rpm ignition adjustment&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idlePidRpmUpperLimit --&amp;gt;&lt;br /&gt;
==== RPM upper limit ====&lt;br /&gt;
How far above idle speed do we consider idling, i.e. coasting detection threshold.&lt;br /&gt;
For example, if target = 800, this param = 200, then anything below 1000 RPM is considered idle.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idlePidRpmDeadZone --&amp;gt;&lt;br /&gt;
==== RPM deadzone ====&lt;br /&gt;
If the RPM closer to target than this value, disable closed loop idle correction to prevent oscillation&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:maxIdleVss --&amp;gt;&lt;br /&gt;
==== Max vehicle speed ====&lt;br /&gt;
Above this speed, disable closed loop idle control. Set to 0 to disable (allow closed loop idle at any speed).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:idleOverrides --&amp;gt;&lt;br /&gt;
== Idle overrides ==&lt;br /&gt;
Optional tables and ramps that override normal idle fuel and timing: separate idle/coasting ignition and VE tables, return-to-idle target ramping, and cranking-taper handling.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:useSeparateAdvanceForIdle --&amp;gt;&lt;br /&gt;
==== Separate idle ignition table ====&lt;br /&gt;
This activates a separate ignition timing table for idle conditions, this can help idle stability by using ignition retard and advance either side of the desired idle speed. Extra advance at low idle speeds will prevent stalling and extra retard at high idle speeds can help reduce engine power and slow the idle speed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:useIdleAdvanceWhileCoasting --&amp;gt;&lt;br /&gt;
==== Use idle ignition table while coasting ====&lt;br /&gt;
When enabled, the idle ignition table is also applied during coasting (overrun), not only at idle. Limited by [[Idle#Max RPM for idle advance while coasting|Max RPM for idle advance while coasting]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:useIdleAdvanceWhileCoastingMaxRpm --&amp;gt;&lt;br /&gt;
==== Max RPM for idle advance while coasting ====&lt;br /&gt;
Maximum RPM for which idle advance while coasting is enabled&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:useSeparateVeForIdle --&amp;gt;&lt;br /&gt;
==== Separate idle VE table ====&lt;br /&gt;
This activates a separate fuel table for Idle, this allows fine tuning of the idle fuelling.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idleVeOverrideMode --&amp;gt;&lt;br /&gt;
==== Override Idle VE table load axis ====&lt;br /&gt;
Allows you to change the default load axis used for the VE table, which is typically MAP (manifold absolute pressure).&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;None&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;MAP&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;TPS&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;PERCENT BARO&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idleReturnTargetRamp --&amp;gt;&lt;br /&gt;
==== Ramp target RPM on return to idle ====&lt;br /&gt;
Ramp the idle target down from the entry threshold over N seconds when returning to idle. Helps prevent overshooting (below) the idle target while returning to idle from coasting.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;no&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;yes&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idleReturnTargetRampDuration --&amp;gt;&lt;br /&gt;
==== Ramp target duration ====&lt;br /&gt;
idle return target ramp duration&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:useSeparateIdleTablesForCrankingTaper --&amp;gt;&lt;br /&gt;
==== Separate idle tables for cranking taper ====&lt;br /&gt;
This uses separate ignition timing and VE tables not only for idle conditions, also during the postcranking-to-idle taper transition (See also afterCrankingIACtaperDuration).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:useIacTableForCoasting --&amp;gt;&lt;br /&gt;
==== Separate coasting idle table ====&lt;br /&gt;
Override the IAC position during overrun conditions to help reduce engine breaking, this can be helpful for large engines in light weight cars or engines that have trouble returning to idle.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:idleOpenLoop --&amp;gt;&lt;br /&gt;
== Open Loop Idle ==&lt;br /&gt;
Open-loop idle adders. Each active accessory load (A/C, transmission in gear, fans, CAN idle-up) raises the base idle air and/or the target RPM so the engine does not sag when the load engages.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:acIdleExtraOffset --&amp;gt;&lt;br /&gt;
==== A/C adder ====&lt;br /&gt;
Additional idle % while A/C is active&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:acIdleRpmTarget --&amp;gt;&lt;br /&gt;
==== A/C RPM target ====&lt;br /&gt;
Idle target speed when A/C is enabled. Some cars need the extra speed to keep the AC efficient while idling.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:transmissionIdleExtraOffset --&amp;gt;&lt;br /&gt;
==== Transmission idle up adder ====&lt;br /&gt;
Additional idle % while transmission idle up is active&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:transmissionIdleRpmTarget --&amp;gt;&lt;br /&gt;
==== Transmission idle up RPM target ====&lt;br /&gt;
Idle target speed when transmission idle up is enabled. Some transmissions need extra idle speed when engaged.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:fan1ExtraIdle --&amp;gt;&lt;br /&gt;
==== Fan #1 adder ====&lt;br /&gt;
Additional idle % when fan #1 is active. In PWM mode this is scaled according to PWM %&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:fan1ExtraIdleRpmTarget --&amp;gt;&lt;br /&gt;
==== Fan #1 RPM target ====&lt;br /&gt;
Idle RPM target adder when fan #1 is active. Raises the idle RPM target so the closed-loop PID does not fight the open-loop IAC adder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:fan2ExtraIdle --&amp;gt;&lt;br /&gt;
==== Fan #2 adder ====&lt;br /&gt;
Additional idle % when fan #2 is active. In PWM mode this is scaled according to PWM %&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:fan2ExtraIdleRpmTarget --&amp;gt;&lt;br /&gt;
==== Fan #2 RPM target ====&lt;br /&gt;
Idle RPM target adder when fan #2 is active. Raises the idle RPM target so the closed-loop PID does not fight the open-loop IAC adder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canBoxIdleUpRpm --&amp;gt;&lt;br /&gt;
==== CAN idle-up target RPM adder ====&lt;br /&gt;
can box idle up demand&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canBoxIdleUpPercentage --&amp;gt;&lt;br /&gt;
==== CAN idle-up % adder ====&lt;br /&gt;
can box idle up demand %&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:idlePidSettings --&amp;gt;&lt;br /&gt;
== Closed Loop Idle ==&lt;br /&gt;
Closed-loop idle PID. The ECU trims idle air (IAC duty or ETB angle) to hold the target RPM, working on top of the open-loop position. See https://content.epicefi.com/wiki/index.php/Guides:PID_Control for tuning the gains.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idleRpmPid_pFactor --&amp;gt;&lt;br /&gt;
==== P gain ====&lt;br /&gt;
Proportional value.&lt;br /&gt;
See https://content.epicefi.com/wiki/index.php/Guides:PID_Control&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idleRpmPid_iFactor --&amp;gt;&lt;br /&gt;
==== I gain ====&lt;br /&gt;
Integral value&lt;br /&gt;
 See https://content.epicefi.com/wiki/index.php/Guides:PID_Control.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idleRpmPid_dFactor --&amp;gt;&lt;br /&gt;
==== D gain ====&lt;br /&gt;
Derivative value&lt;br /&gt;
 See https://content.epicefi.com/wiki/index.php/Guides:PID_Control.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idleRpmPid_minValue --&amp;gt;&lt;br /&gt;
==== Min ====&lt;br /&gt;
PID controller output minimum duty value.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idleRpmPid_maxValue --&amp;gt;&lt;br /&gt;
==== Max ====&lt;br /&gt;
PID controller output maximum duty value.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idlerpmpid_iTermMin --&amp;gt;&lt;br /&gt;
==== iTerm Min ====&lt;br /&gt;
iTerm min value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idlerpmpid_iTermMax --&amp;gt;&lt;br /&gt;
==== iTerm Max ====&lt;br /&gt;
iTerm max value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:pidExtraForLowRpm --&amp;gt;&lt;br /&gt;
==== PID Extra for low RPM ====&lt;br /&gt;
Increases PID reaction for RPM&amp;lt;target by adding extra percent to PID-error&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:useIacPidMultTable --&amp;gt;&lt;br /&gt;
==== Use PID output gain table ====&lt;br /&gt;
This flag allows to use a special &#039;PID Multiplier&#039; table (0.0-1.0) to compensate for nonlinear nature of IAC-RPM controller&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:etbIdle --&amp;gt;&lt;br /&gt;
== ETB idle settings ==&lt;br /&gt;
Idle settings specific to electronic throttle (ETB) cars, where idle air is metered by the throttle plate itself instead of a separate IAC valve.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:etbIdleThrottleRange --&amp;gt;&lt;br /&gt;
==== ETB idle maximum angle ====&lt;br /&gt;
This sets the range of the idle control on the ETB. At 100% idle position, the value specified here sets the base ETB position.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:dashpotEmulation --&amp;gt;&lt;br /&gt;
== Dashpot emulation ==&lt;br /&gt;
Dashpot (coasting-to-idle) emulation. Adds a temporary slug of idle air when dropping back to idle from a coast, then holds it and decays it away, softening the transition and preventing stall — emulating a mechanical throttle dashpot. Separate values are provided for when A/C is on.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:iacByTpsTaper --&amp;gt;&lt;br /&gt;
==== Dashpot coasting-to-idle Initial idle Adder ====&lt;br /&gt;
This value is an added for base idle value. Idle Value added when coasting and transitioning into idle.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:iacByTpsHoldTime --&amp;gt;&lt;br /&gt;
==== Dashpot coasting-to-idle Hold time ====&lt;br /&gt;
How long initial idle adder is held before starting to decay.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:iacByTpsDecayTime --&amp;gt;&lt;br /&gt;
==== Dashpot coasting-to-idle Decay time ====&lt;br /&gt;
How long it takes to remove initial IAC adder to return to normal idle.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:iacByTpsTaperAC --&amp;gt;&lt;br /&gt;
==== Dashpot coasting-to-idle Initial idle Adder(AC ON) ====&lt;br /&gt;
This value is an added for base idle value(AC ON). Idle Value added when coasting and transitioning into idle.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:iacByTpsHoldTimeAC --&amp;gt;&lt;br /&gt;
==== Dashpot coasting-to-idle Hold time(AC ON) ====&lt;br /&gt;
How long initial idle adder is held before starting to decay(AC ON).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:iacByTpsDecayTimeAC --&amp;gt;&lt;br /&gt;
==== Dashpot coasting-to-idle Decay time(AC ON) ====&lt;br /&gt;
How long it takes to remove initial IAC adder to return to normal idle(AC ON).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:ignitionIdle --&amp;gt;&lt;br /&gt;
== Ignition idle settings ==&lt;br /&gt;
Idle ignition timing. Lets idle be stabilised with spark as well as air — advancing to recover from a sag and retarding to bleed off speed, for faster correction than air alone.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:useIdleTimingTargetError --&amp;gt;&lt;br /&gt;
==== Open loop idle timing (RPM-error) ====&lt;br /&gt;
Use Idle Target Error Delta timing curve&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:useIdleTimingTargetErrorMode --&amp;gt;&lt;br /&gt;
==== Include corrections in idle timing ====&lt;br /&gt;
If enabled, adds the result from the RPM-error curve to the corrected idle advance. If disabled, it discards all corrections (IAT, CLT, PID etc.) and uses the curve value directly.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:ignitionIdlePid --&amp;gt;&lt;br /&gt;
=== Closed loop ignition timing (PID) ===&lt;br /&gt;
Closed-loop idle ignition timing: a fast PID that adjusts spark advance around the idle target for quick correction, working alongside the slower air-based idle PID.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:useIdleTimingPidControl --&amp;gt;&lt;br /&gt;
==== Enable PID control ====&lt;br /&gt;
Gain is in degrees advance per rpm away from target, a good starting point is 0.1 = 10 deg per 100 rpm&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idleTimingPid_pFactor --&amp;gt;&lt;br /&gt;
==== P gain ====&lt;br /&gt;
Proportional value.&lt;br /&gt;
See https://content.epicefi.com/wiki/index.php/Guides:PID_Control&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idleTimingPid_iFactor --&amp;gt;&lt;br /&gt;
==== I gain ====&lt;br /&gt;
Integral value&lt;br /&gt;
 See https://content.epicefi.com/wiki/index.php/Guides:PID_Control.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idleTimingPid_dFactor --&amp;gt;&lt;br /&gt;
==== D gain ====&lt;br /&gt;
Derivative value&lt;br /&gt;
 See https://content.epicefi.com/wiki/index.php/Guides:PID_Control.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idleTimingPid_minValue --&amp;gt;&lt;br /&gt;
==== Min adjustment (retard) ====&lt;br /&gt;
PID controller output minimum duty value.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idleTimingPid_maxValue --&amp;gt;&lt;br /&gt;
==== Max adjustment (advance) ====&lt;br /&gt;
PID controller output maximum duty value.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idleTimingSoftEntryTime --&amp;gt;&lt;br /&gt;
==== Soft entry time ====&lt;br /&gt;
When entering idle, and the PID settings are aggressive, it&#039;s good to make a soft entry upon entering closed loop&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:idlehw --&amp;gt;&lt;br /&gt;
= Idle hardware =&lt;br /&gt;
Physical idle air hardware: the IAC solenoid or stepper outputs and their drive settings. Electronic-throttle cars meter idle air through the throttle plate instead — see [[Idle#ETB idle settings|ETB idle settings]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:idleSolenoid --&amp;gt;&lt;br /&gt;
== Solenoid ==&lt;br /&gt;
PWM idle air control (IAC) solenoid valve output(s). Supports a single valve or a Subaru/BMW-style double solenoid.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idle_solenoidPin --&amp;gt;&lt;br /&gt;
==== Idle Solenoid Primary output ====&lt;br /&gt;
Primary output pin driving the PWM idle air control (IAC) solenoid valve.&lt;br /&gt;
&lt;br /&gt;
To find the actual value for your hardware, see [[Hardware]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:isDoubleSolenoidIdle --&amp;gt;&lt;br /&gt;
==== Double Solenoid Mode ====&lt;br /&gt;
Subaru/BMW style where default valve position is somewhere in the middle. First solenoid opens it more while second can close it more than default position.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:secondSolenoidPin --&amp;gt;&lt;br /&gt;
==== Idle Solenoid Secondary output ====&lt;br /&gt;
Second output pin for double-solenoid idle valves (some Subaru and Mazda), where one solenoid opens the valve further and the other closes it past the default position. Only used in [[Idle#Double Solenoid Mode|Double Solenoid Mode]].&lt;br /&gt;
&lt;br /&gt;
To find the actual value for your hardware, see [[Hardware]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idle_solenoidPinMode --&amp;gt;&lt;br /&gt;
==== Idle Solenoid output(s) Mode ====&lt;br /&gt;
Output mode for the idle solenoid pin(s). See [[Hardware:ECU output mode selection|ECU output mode selection]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idle_solenoidFrequency --&amp;gt;&lt;br /&gt;
==== Idle Solenoid Frequency ====&lt;br /&gt;
PWM frequency for the idle air control solenoid output. Match it to your valve: too low buzzes audibly and meters air unevenly, too high and the valve cannot respond. Two-wire IAC solenoids are typically driven around 200–300 Hz.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:cltIdleRPMCurve --&amp;gt;&lt;br /&gt;
= Idle target RPM =&lt;br /&gt;
Target idle RPM as a function of coolant temperature. A cold engine targets a higher idle, tapering down to the warm idle as it heats up.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:cltIdleTable --&amp;gt;&lt;br /&gt;
= Idle open loop position =&lt;br /&gt;
Open-loop idle air position (IAC % or stepper steps) versus coolant temperature. This is the base feed-forward opening; closed-loop control trims around it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:cltCrankingCurveDialog --&amp;gt;&lt;br /&gt;
= Idle cranking position =&lt;br /&gt;
Idle air position held while cranking, versus coolant temperature. Sets how far the valve opens to get the engine to fire, before the crank-to-run taper takes over.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:etbIdleThrottleRange#1 --&amp;gt;&lt;br /&gt;
==== ETB idle maximum angle ====&lt;br /&gt;
This sets the range of the idle control on the ETB. At 100% idle position, the value specified here sets the base ETB position.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:cltCrankingCurve --&amp;gt;&lt;br /&gt;
== Cranking Idle Valve Curve ==&lt;br /&gt;
2D curve — X: Coolant (-40 to 120), Y: Percent (0 to 100).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:afterCrankingIACtaperDurationDialog --&amp;gt;&lt;br /&gt;
= Idle after start (crank-to-run) taper =&lt;br /&gt;
After the engine starts, the extra cranking idle air is tapered out over a number of engine cycles (versus coolant temperature) down to the running idle position.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:afterCrankingIACtaperCurve --&amp;gt;&lt;br /&gt;
== Idle valve Crank-to-Run Taper ==&lt;br /&gt;
2D curve — X: Coolant (-40 to 120), Y: cycles (0 to 500).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:iacPidMultTbl --&amp;gt;&lt;br /&gt;
= Idle PID output gain =&lt;br /&gt;
Optional PID output multiplier (0.0–1.0) versus RPM, used to compensate for the non-linear relationship between IAC position and RPM. Enabled by [[Idle#Use PID output gain table|Use PID output gain table]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:idleExtraPidCurve --&amp;gt;&lt;br /&gt;
= Idle PID error gain =&lt;br /&gt;
Extra PID gain applied as a function of RPM error, letting the controller react harder the further idle is from target.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:iacCoastingCurve --&amp;gt;&lt;br /&gt;
= Coasting idle position override =&lt;br /&gt;
Idle air position used during overrun/coasting (versus coolant temperature) when the separate coasting idle table is enabled, used to manage engine braking and return-to-idle.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:idleValveForceClose --&amp;gt;&lt;br /&gt;
= Valve force close / stepper re-park =&lt;br /&gt;
Gradually drives the idle valve closed and re-parks the stepper once the engine is clearly off-idle (above an RPM and TPS threshold). Prevents manifold pressure leaking through the valve at cruise and resets accumulated stepper step-loss without a full homing cycle.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idleValveForceCloseRpm --&amp;gt;&lt;br /&gt;
==== Force close: RPM threshold ====&lt;br /&gt;
Gradually close the idle valve and re-park the stepper when RPM is above this value AND TPS is above idleValveForceCloseTps. Prevents manifold pressure leakage through the valve at cruise, and resets accumulated stepper step-loss errors. Set to 0 to disable.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idleValveForceCloseDelay --&amp;gt;&lt;br /&gt;
==== Force close: delay (s) ====&lt;br /&gt;
Seconds to wait after RPM and TPS conditions are both met before beginning to close the idle valve. Prevents closing on brief throttle blips.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idleValveForceCloseTps --&amp;gt;&lt;br /&gt;
==== Force close: TPS taper start (%) ====&lt;br /&gt;
TPS at which the idle valve starts closing toward zero (taper start). Used together with idleValveForceCloseRpm and idleValveForceCloseTpsEnd.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idleValveForceCloseTpsEnd --&amp;gt;&lt;br /&gt;
==== Force close: TPS taper end (%) ====&lt;br /&gt;
TPS at which the idle valve reaches fully closed and the stepper is re-parked (taper end). Position is linearly interpolated from current to zero between idleValveForceCloseTps and this value. Should be greater than idleValveForceCloseTps.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idleValveForceCloseReparkSteps --&amp;gt;&lt;br /&gt;
==== Force close: re-park overstep (steps) ====&lt;br /&gt;
Number of extra steps to overstep toward closed when re-parking after force-close. Compensates for stepper drift without needing the full startup homing sequence. 5 is a good starting point.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:IdleTimingTargetErrorDialog --&amp;gt;= Stepper acceleration profile =&lt;br /&gt;
Complete theory explained by Texas Instruments: https://www.ti.com/lit/an/slyt482/slyt482.pdf?ts=1781468773748&lt;br /&gt;
&lt;br /&gt;
=== The problem ===&lt;br /&gt;
An idle &#039;&#039;&#039;stepper&#039;&#039;&#039; IAC is open-loop: the ECU counts steps; it does not know if the motor actually moved. Commanding a high step rate from a standstill often causes &#039;&#039;&#039;lost steps&#039;&#039;&#039;, noise, or a valve that only works if you keep the rate unrealistically low.&lt;br /&gt;
&lt;br /&gt;
The older logic used a single &#039;&#039;&#039;Stepper reaction time&#039;&#039;&#039; (ms) as a fixed delay between steps — safe, but slow on long moves.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Stepper acceleration profile&#039;&#039;&#039; ramps speed: start slow → accelerate → cruise → decelerate → stop soft. Long moves finish faster without demanding full rate from a standstill.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Mode&lt;br /&gt;
!How to get it&lt;br /&gt;
!Behavior&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Constant speed (legacy)&#039;&#039;&#039;&lt;br /&gt;
|Set &#039;&#039;&#039;Starting speed&#039;&#039;&#039;, &#039;&#039;&#039;Target speed&#039;&#039;&#039;, &#039;&#039;&#039;Accel rate&#039;&#039;&#039;, or &#039;&#039;&#039;Decel rate&#039;&#039;&#039; to &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
|Fixed pace from reaction time (old behavior)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Accel/decel profile&#039;&#039;&#039;&lt;br /&gt;
|Starting, Target, Accel, and Decel all &#039;&#039;&#039;&amp;gt; 0&#039;&#039;&#039;&lt;br /&gt;
|Trapezoid on long moves; triangle on short moves&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;code&amp;gt;Stopping speed&amp;lt;/code&amp;gt; of 0 is treated as at least 1 step/s when the profile is enabled.&lt;br /&gt;
&lt;br /&gt;
=== Parameters ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Unit&lt;br /&gt;
!Role&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Stepper reaction time&#039;&#039;&#039;&lt;br /&gt;
|ms&lt;br /&gt;
|Caps how fast the profile may run. Treat as: &#039;&#039;&#039;reactionTime = 1000 / (max steps/s)&#039;&#039;&#039;. Also used for pauses (direction change, sleep, parking).&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Stepper total steps&#039;&#039;&#039;&lt;br /&gt;
|count&lt;br /&gt;
|Full valve travel. Independent of the speed profile.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Starting speed&#039;&#039;&#039;&lt;br /&gt;
|steps/s&lt;br /&gt;
|Rate at the beginning of a move. &#039;&#039;&#039;0 disables the profile.&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Target speed&#039;&#039;&#039;&lt;br /&gt;
|steps/s&lt;br /&gt;
|Cruise / maximum rate on long moves.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Stopping speed&#039;&#039;&#039;&lt;br /&gt;
|steps/s&lt;br /&gt;
|Rate at the end of a move (soft stop).&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Acceleration rate&#039;&#039;&#039;&lt;br /&gt;
|steps/s²&lt;br /&gt;
|Ramp from starting → target.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Deceleration rate&#039;&#039;&#039;&lt;br /&gt;
|steps/s²&lt;br /&gt;
|Ramp down toward stopping.&lt;br /&gt;
|}&lt;br /&gt;
Firmware also keeps starting ≤ target and stopping ≤ starting, and clamps speeds that exceed what the hardware can achieve.&lt;br /&gt;
&lt;br /&gt;
=== Reaction time and maximum speed ===&lt;br /&gt;
&#039;&#039;&#039;Reaction time limits the maximum speed the acceleration profile can reach.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
(Strictly this ceiling is most important on H-bridge drive; for safety, configure it the same on every setup.)&lt;br /&gt;
&lt;br /&gt;
Set reaction time from the motor’s maximum rated step rate:&lt;br /&gt;
 &amp;lt;code&amp;gt;reactionTime (ms) = 1000 / max_steps_per_second&amp;lt;/code&amp;gt;&lt;br /&gt;
Example: motor rated &#039;&#039;&#039;500 steps/s&#039;&#039;&#039; → reaction time &#039;&#039;&#039;2 ms&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
If reaction time is left too large, the profile will never reach the target speed you configured, no matter how high target/accel are.&lt;br /&gt;
&lt;br /&gt;
== Starting from scratch ==&lt;br /&gt;
You can use this to get the stepper working. Tune the values according to how the stepper behaves. Faster target speed or acceleration/deceleration can be achieved if the motor doesn&#039;t skip steps. Meanwhile some motors might need slower starting and stopping speeds.&lt;br /&gt;
&lt;br /&gt;
1. Set &#039;&#039;&#039;total steps&#039;&#039;&#039;, wiring, and parking so the valve homes correctly.&lt;br /&gt;
&lt;br /&gt;
2. From the motor rating, set:&lt;br /&gt;
&lt;br /&gt;
- &#039;&#039;&#039;Target speed&#039;&#039;&#039; = maximum rated steps/s&lt;br /&gt;
&lt;br /&gt;
If the manufacturer gives &#039;&#039;&#039;step time at max speed&#039;&#039;&#039; (ms per step):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Target speed = 1000 / step_time_ms&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- &#039;&#039;&#039;Reaction time&#039;&#039;&#039; = &amp;lt;code&amp;gt;1000 / Target speed&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(same number as above, expressed as ms)&lt;br /&gt;
&lt;br /&gt;
3. Initial profile values:&lt;br /&gt;
&lt;br /&gt;
- &#039;&#039;&#039;Starting speed&#039;&#039;&#039; = Target speed / 10&lt;br /&gt;
&lt;br /&gt;
- &#039;&#039;&#039;Stopping speed&#039;&#039;&#039; = Target speed / 10&lt;br /&gt;
&lt;br /&gt;
- &#039;&#039;&#039;Acceleration rate&#039;&#039;&#039; = Target speed &#039;&#039;(numerically equal to target steps/s → reaches cruise in about 1 second from a low start)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
- &#039;&#039;&#039;Deceleration rate&#039;&#039;&#039; = Target speed &#039;&#039;(same idea for the ramp-down)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
4. Test large moves (parking, big IAC swings) and small corrections. If you lose steps or hear harsh buzz at the start/stop, lower starting/stopping further or soften accel/decel. If moves are clean but slow, raise accel/decel first; only push target if the motor rating allows it.&lt;br /&gt;
&lt;br /&gt;
5. Keep reaction time matched to the &#039;&#039;&#039;rated&#039;&#039;&#039; max speed so it does not silently cap a correctly set target.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
== Migrating from fixed step time ==&lt;br /&gt;
If the old constant-speed tune (&#039;&#039;&#039;reaction time only&#039;&#039;&#039;) was &#039;&#039;&#039;not&#039;&#039;&#039; losing steps:&lt;br /&gt;
&lt;br /&gt;
1. Use the &#039;&#039;&#039;old reaction time&#039;&#039;&#039; only to seed the soft ends of the move:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Starting speed = Stopping speed = 1000 / old_reaction_time&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Set &#039;&#039;&#039;everything else as when starting from scratch&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
- &#039;&#039;&#039;Target speed&#039;&#039;&#039; from the motor’s max rated speed (or &amp;lt;code&amp;gt;1000 / manufacturer_step_time&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
- &#039;&#039;&#039;Reaction time&#039;&#039;&#039; = &amp;lt;code&amp;gt;1000 / Target speed&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- &#039;&#039;&#039;Accel rate&#039;&#039;&#039; = Target&lt;br /&gt;
&lt;br /&gt;
- &#039;&#039;&#039;Decel rate&#039;&#039;&#039; = Target&lt;br /&gt;
&lt;br /&gt;
So migration reuses the proven old pace as a conservative start/stop rate, then adopts full rated cruise and the same 1-second ramp starting points as a new setup.&lt;br /&gt;
&lt;br /&gt;
If the old tune &#039;&#039;was&#039;&#039; losing steps, do not use it for starting/stopping — go back to &#039;&#039;&#039;Target /&#039;&#039;&#039; &#039;&#039;&#039;10&#039;&#039;&#039; (or lower) and fix mechanical/electrical issues before chasing speed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To keep pure legacy behavior instead, leave Starting / Target / Accel / Decel at 0.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Open loop ignition idle timing (RPM-error) =&lt;br /&gt;
Open-loop idle timing curve: ignition advance/retard as a function of how far RPM is from the idle target. Enabled by [[Idle#Open loop idle timing (RPM-error)|Open loop idle timing (RPM-error)]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:idleTimingTargetErrorCRV --&amp;gt;&lt;br /&gt;
== Idle Target Error ==&lt;br /&gt;
2D curve — X: Delta (-500 to 500), Y: Deg (-30 to 30).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:idleVeTableTbl --&amp;gt;&lt;br /&gt;
= Idle fuel table =&lt;br /&gt;
Separate VE/fuel table used at idle when [[Idle#Separate idle VE table|Separate idle VE table]] is enabled, for fine control of idle fuelling independent of the main table.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:idleAdvanceCurve --&amp;gt;&lt;br /&gt;
= Idle ignition table =&lt;br /&gt;
Separate ignition timing table used at idle when [[Idle#Separate idle ignition table|Separate idle ignition table]] is enabled. Advance at low idle speed prevents stalling; retard at high idle speed bleeds off power to settle the idle.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:rotIdleDialog --&amp;gt;&lt;br /&gt;
= Rotational idle =&lt;br /&gt;
Rotational idle (a race/anti-lag-style lumpy idle): deliberately cuts spark and/or fuel in a rotating pattern at idle to produce a distinctive idle sound, with three accumulators that shift the pattern for different exhaust notes. Can be engaged manually by pin or automatically by TPS/CLT.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rotIdleEnabled --&amp;gt;&lt;br /&gt;
==== Enable ====&lt;br /&gt;
Enable rotational idle.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rotationalIdlePin --&amp;gt;&lt;br /&gt;
==== Pin ====&lt;br /&gt;
Switch input that activates [[Idle#Rotational idle|rotational idle]] when held.&lt;br /&gt;
&lt;br /&gt;
To find the actual value for your hardware, see [[Hardware]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rotationalIdlePinMode --&amp;gt;&lt;br /&gt;
==== Pin Mode ====&lt;br /&gt;
Input mode for the rotational idle pin. See [[Hardware:ECU input mode selection|ECU input mode selection]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rot_idle_zero_stft --&amp;gt;&lt;br /&gt;
==== Stop STFT for rotational idle (no fuel trim) ====&lt;br /&gt;
Zero STFT for rotational idle.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rotational_cut_spark --&amp;gt;&lt;br /&gt;
==== Rotational cut spark ====&lt;br /&gt;
Rotational cut spark.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rotational_cut_fuel --&amp;gt;&lt;br /&gt;
==== Rotational cut fuel ====&lt;br /&gt;
Rotational cut fuel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rot_idle_auto_engage --&amp;gt;&lt;br /&gt;
==== Enable automatic engagement for TPS ====&lt;br /&gt;
Enable automatic engagement of rotational idle.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rot_idle_max_tps --&amp;gt;&lt;br /&gt;
==== Engage rotational idle below this Driver Intent(TPS/PPS) ====&lt;br /&gt;
Engage rotational idle under this Driver Intent.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rot_idle_auto_engage_clt_enable --&amp;gt;&lt;br /&gt;
==== Enable auto engage for CLT ====&lt;br /&gt;
Enable Rotational Idle Auto engage CLT.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rot_idle_auto_engage_clt --&amp;gt;&lt;br /&gt;
==== Auto engage above this CLT ====&lt;br /&gt;
Rotational Idle Auto engage CLT.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rot_idle_min_clt --&amp;gt;&lt;br /&gt;
==== Minimum CLT ====&lt;br /&gt;
Minimum CLT for the rotational idle.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rot_idle_max_tps_global --&amp;gt;&lt;br /&gt;
==== Maximum TPS/PPS  (0 to disable) ====&lt;br /&gt;
Disengage rotational idle above this Driver Intent.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rot_idle_min_rpm --&amp;gt;&lt;br /&gt;
==== Minimum RPM ====&lt;br /&gt;
Minimum RPM for the rotational idle.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rot_idle_max_rpm --&amp;gt;&lt;br /&gt;
==== Maximum RPM ====&lt;br /&gt;
Maximum RPM for the rotational idle.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rot_idle_disable_closed_loop_idle --&amp;gt;&lt;br /&gt;
==== Disable closed loop idle when rotational idle active ====&lt;br /&gt;
Disable closed loop idle control when rotational idle is active.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rot_idle_add_air --&amp;gt;&lt;br /&gt;
==== Add idle % idle output ====&lt;br /&gt;
Add air to the idle.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rot_idle_add_air_percent --&amp;gt;&lt;br /&gt;
==== Add/Remove air percentage ====&lt;br /&gt;
Percentage of air to add/remove to the idle.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rot_idle_override_etb_authority --&amp;gt;&lt;br /&gt;
==== Override ETB Idle Authority (0 to disable override) ====&lt;br /&gt;
Override the ETB authority for the rotational idle.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rotIdleFuelMultiplierPercent --&amp;gt;&lt;br /&gt;
==== Fuel Multiplier (1.5 = 150% , 0 to 2.5) ====&lt;br /&gt;
Rotational idle fuel multiplier&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rotIdleIgnitionAdder --&amp;gt;&lt;br /&gt;
==== Rotational Absolute Timing (-30 = 30 ATDC, 0 =  original timing, 10 - -100) ====&lt;br /&gt;
Rotational idle absolute ignition (-20 = atdc 20 degrees)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:old_new_rotational_idle_logic --&amp;gt;&lt;br /&gt;
==== Old rotational idle logic (true = old, false = new) - see tooltip ====&lt;br /&gt;
Old rotational idle logic, New logic is based on global spark counter, the three layers of accumulators and adders run at the same time, offset shifts the pattern forward or backward with relation to each other, this should allow different sound patterns by combining different offsets;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rot_idle_fuel_offset --&amp;gt;&lt;br /&gt;
==== Rotational Fuel Offset (should be 0, this shifts fuel cut in relation to ignition signal) ====&lt;br /&gt;
Rotational idle fuel offset (should be 0, this shifts fuel cut in relation to ignition signal). At 0, in sequential injection/ignition the fuel pulse is cut before the ignition pulse. so fuel is not wasted.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rot_idle_acc_max1 --&amp;gt;&lt;br /&gt;
==== Accumulator Max 1 ====&lt;br /&gt;
Max value for the rotational idle accumulator to skip&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rot_idle_acc_adder1 --&amp;gt;&lt;br /&gt;
==== Accumulator Adder 1 ====&lt;br /&gt;
Accumulator adder&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rot_idle_offset1 --&amp;gt;&lt;br /&gt;
==== Accumulator Offset 1 ====&lt;br /&gt;
Rotational pattern shift #1&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rot_idle_acc_max2 --&amp;gt;&lt;br /&gt;
==== Accumulator Max 2 ====&lt;br /&gt;
Max value for the rotational idle accumulator to skip&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rot_idle_acc_adder2 --&amp;gt;&lt;br /&gt;
==== Accumulator Adder 2 ====&lt;br /&gt;
Accumulator adder&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rot_idle_offset2 --&amp;gt;&lt;br /&gt;
==== Accumulator Offset 2 ====&lt;br /&gt;
Rotational pattern shift #2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rot_idle_acc_max3 --&amp;gt;&lt;br /&gt;
==== Accumulator Max 3 ====&lt;br /&gt;
Max value for the rotational idle accumulator to skip&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rot_idle_acc_adder3 --&amp;gt;&lt;br /&gt;
==== Accumulator Adder 3 ====&lt;br /&gt;
Accumulator adder&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rot_idle_offset3 --&amp;gt;&lt;br /&gt;
==== Accumulator Offset 3 ====&lt;br /&gt;
Rotational pattern shift #3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:transmissionIdleUpSettings --&amp;gt;&lt;br /&gt;
= Transmission idle compensation =&lt;br /&gt;
Raises idle air and/or target RPM when an automatic transmission is put in gear (switch input), so the engine does not sag under the torque-converter load.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:transmissionIdleUpPin --&amp;gt;&lt;br /&gt;
==== Transmission idle up switch ====&lt;br /&gt;
Switch input that signals the transmission is in gear, activating transmission idle-up.&lt;br /&gt;
&lt;br /&gt;
To find the actual value for your hardware, see [[Hardware]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:transmissionIdleUpPinMode --&amp;gt;&lt;br /&gt;
==== Transmission idle up switch mode ====&lt;br /&gt;
Input mode for the transmission idle-up switch. See [[Hardware:ECU input mode selection|ECU input mode selection]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:transmissionIdleExtraOffset#1 --&amp;gt;&lt;br /&gt;
==== Transmission idle up adder ====&lt;br /&gt;
Additional idle % while transmission idle up is active&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:transmissionIdleRpmTarget#1 --&amp;gt;&lt;br /&gt;
==== Transmission idle up RPM target ====&lt;br /&gt;
Idle target speed when transmission idle up is enabled. Some transmissions need extra idle speed when engaged.&lt;/div&gt;</summary>
		<author><name>Agnese</name></author>
	</entry>
	<entry>
		<id>https://content.epicefi.com/wiki/index.php?title=Config:Fuel&amp;diff=492</id>
		<title>Config:Fuel</title>
		<link rel="alternate" type="text/html" href="https://content.epicefi.com/wiki/index.php?title=Config:Fuel&amp;diff=492"/>
		<updated>2026-08-07T14:21:41Z</updated>

		<summary type="html">&lt;p&gt;Agnese: Added DFCO exit enrichment example table&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Fuel menu.jpg|thumb|Fuel menu]]&lt;br /&gt;
&lt;br /&gt;
= Fuel =&lt;br /&gt;
This menu is used for any fuel-related configuration and tuning. &lt;br /&gt;
&lt;br /&gt;
This menu enables the configuration of:&lt;br /&gt;
&lt;br /&gt;
* Physical hardware - output pins&lt;br /&gt;
* VE tables&lt;br /&gt;
* Fuel trims (short and long)&lt;br /&gt;
* Lambda control (AFR correction)&lt;br /&gt;
* IAT/CLT/Other corrections&lt;br /&gt;
* Table switch&lt;br /&gt;
* And others...&lt;br /&gt;
&lt;br /&gt;
You can find the individual options below.&lt;br /&gt;
&lt;br /&gt;
= VE Table =&lt;br /&gt;
This is the main VE table used for fuel calculations.&lt;br /&gt;
&lt;br /&gt;
==== Override VE table load axis ====&lt;br /&gt;
Override the Y axis (load) value used for the VE table.&lt;br /&gt;
&lt;br /&gt;
{{Warning|This is for advanced users only. If you aren&#039;t sure you need this, you probably don&#039;t need this.}}&lt;br /&gt;
&lt;br /&gt;
==== Fuel strategy ====&lt;br /&gt;
See [[Setup#Fuel strategy|Fuel strategy.]]&lt;br /&gt;
&lt;br /&gt;
= Injector setup =&lt;br /&gt;
This menu enables the configuration of the physical injector layout and output configuration&lt;br /&gt;
&lt;br /&gt;
== Injection configuration ==&lt;br /&gt;
&lt;br /&gt;
=== Injection ===&lt;br /&gt;
&lt;br /&gt;
==== Injection Enabled ====&lt;br /&gt;
Fuel Injection is enabled&lt;br /&gt;
&lt;br /&gt;
==== Disable Fuel Pump ====&lt;br /&gt;
Disable fuel pump&lt;br /&gt;
&lt;br /&gt;
==== Disable injector prime pulse ====&lt;br /&gt;
Do not prime injectors&lt;br /&gt;
&lt;br /&gt;
==== Mode ====&lt;br /&gt;
This configures the injection model:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Simultaneous&#039;&#039;&#039; - All injectors are opened at the same time, with the fuel load being divided over the whole 720 degree cycle (a 4 cylinder engine will squirt 4 times over 720 degrees).&lt;br /&gt;
* &#039;&#039;&#039;Sequential&#039;&#039;&#039; - All injectors are opened at their commanded angle and the cycle is tracked over 720 degrees. Requires [[Cam Sensor]] or [[Setup#Guess sync RPM threshold(rpm)|phase guessing]] to function properly.&lt;br /&gt;
* &#039;&#039;&#039;Batch&#039;&#039;&#039; - Injectors are opened at their commanded angle along with their wasted pair. The same principle as wasted spark.&lt;br /&gt;
* &#039;&#039;&#039;Single Point&#039;&#039;&#039; - The same as simultaneous but with a single channel, with fuel calculations to suit.&lt;br /&gt;
{{Warning|Injectors are always wired to their respective cylinders and epicEFI handles the firing order and injector opening. Batch wiring is only needed when the ECU does not have enough outputs to wire single injectors to a single channel.}}&lt;br /&gt;
&lt;br /&gt;
==== Alpha-N uses IAT density correction ====&lt;br /&gt;
When set to true, it enables intake air temperature-based corrections for Alpha-N tuning strategies.&lt;br /&gt;
&lt;br /&gt;
==== Override VE table load axis ====&lt;br /&gt;
Override the Y axis (load) value used for the VE table.&lt;br /&gt;
&lt;br /&gt;
{{Warning|This is for advanced users only. If you aren&#039;t sure you need this, you probably don&#039;t need this.}}&lt;br /&gt;
&lt;br /&gt;
==== Override AFR table load axis ====&lt;br /&gt;
Override the Y axis (load) value used for the AFR table.&lt;br /&gt;
&lt;br /&gt;
{{Warning|This is for advanced users only. If you aren&#039;t sure you need this, you probably don&#039;t need this.}}&lt;br /&gt;
&lt;br /&gt;
==== Injection phase control mode ====&lt;br /&gt;
Defines when fuel is injected relative to the intake valve opening. Options include End of Injection or other timing references.&lt;br /&gt;
&lt;br /&gt;
=== Injector Settings ===&lt;br /&gt;
&lt;br /&gt;
==== Injector flow ====&lt;br /&gt;
This is your injector flow at the fuel pressure used in the vehicle.&lt;br /&gt;
&lt;br /&gt;
See units setting below.&lt;br /&gt;
&lt;br /&gt;
==== Injector flow units ====&lt;br /&gt;
Select whether to configure injector flow in volumetric flow (default, cc/min) or mass flow (g/s).&lt;br /&gt;
&lt;br /&gt;
==== Fuel rail pressure sensor ====&lt;br /&gt;
Select which fuel pressure sensor measures the pressure of the fuel at your injectors.&lt;br /&gt;
&lt;br /&gt;
==== Injector flow compensation mode ====&lt;br /&gt;
This is the injector flow compensation mode.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Manifold Referenced Pressure Regulator&#039;&#039;&#039; - The car is equipped with a manifold-pressure referenced pressure regulator.&lt;br /&gt;
* &#039;&#039;&#039;Returnless fuel system&#039;&#039;&#039; - The car is equipped with a returnless fuel system (regulator in tank or dead-head system).&lt;br /&gt;
* &#039;&#039;&#039;Sensed fuel pressure&#039;&#039;&#039;  - The car is equipped with a fuel pressure sensor.&lt;br /&gt;
&lt;br /&gt;
==== Injector reference pressure ====&lt;br /&gt;
This is the pressure at which your injector flow is known.&lt;br /&gt;
&lt;br /&gt;
For example if your injectors flow 400cc/min at 3.5 bar, enter 350 here.&lt;br /&gt;
&lt;br /&gt;
This is gauge pressure reference to atmospheric.&lt;br /&gt;
&lt;br /&gt;
==== Use small pulsewidth correction lookup curve ====&lt;br /&gt;
Use the [[Config:Fuel#Primary Injector Small Pulsewidth Table|small pulsewidth correction table]] to correct small injector pulse width behaviour.&lt;br /&gt;
&lt;br /&gt;
{{Warning_Mild|This feature should only be needed if running very big injectors (&amp;gt;1500cc) and you have idle fueling problems, or you want to limit the minimum pulsewidth. Do not use otherwise.}}&lt;br /&gt;
&lt;br /&gt;
=== Fuel characteristics ===&lt;br /&gt;
&lt;br /&gt;
==== Gasoline (E0) Stoichiometric ratio ====&lt;br /&gt;
Stoichiometric ratio for your primary fuel. When Flex Fuel is enabled, this value is used when the Flex Fuel sensor indicates E0.&lt;br /&gt;
&lt;br /&gt;
E0 = 14.7&lt;br /&gt;
&lt;br /&gt;
E10 = 14.1&lt;br /&gt;
&lt;br /&gt;
E85 = 9.9&lt;br /&gt;
&lt;br /&gt;
E100 = 9.0&lt;br /&gt;
&lt;br /&gt;
==== Ethanol (E100) Stoichiometric ratio ====&lt;br /&gt;
Stoichiometric ratio for your secondary fuel. This value is used when the Flex Fuel sensor indicates E100, typically 9.0&lt;br /&gt;
&lt;br /&gt;
==== Current Ethanol Content ====&lt;br /&gt;
Some pump gas has ethanol in it. Please adjust this to match what you fill up with.&lt;br /&gt;
&lt;br /&gt;
Use this as default ethanol content for fueling when no flex sensor present.&lt;br /&gt;
&lt;br /&gt;
This will scale Air/Fuel ratios and fueling accordingly.&lt;br /&gt;
&lt;br /&gt;
==== Global Fuel Correction (1=100%) ====&lt;br /&gt;
This is the global fuel correction applied to the final pulse width.&lt;br /&gt;
&lt;br /&gt;
{{Warning|Please note that this is a rudimentary correction and should be used only for troubleshooting and diagnostics.}}&lt;br /&gt;
&lt;br /&gt;
==== Fuel flow rate smoothed alpha (display only) ====&lt;br /&gt;
This controls the logged &amp;quot;fuel flow rate&amp;quot; and how much smoothing is applied to that logged value. This has no actual impact on fuelling and the fuelling model.&lt;br /&gt;
&lt;br /&gt;
==== Use absolute fuel pressure for dead time calculation ====&lt;br /&gt;
This changes the deadtime calculation to use absolute pressure. Otherwise, differential pressure is used.&lt;br /&gt;
&lt;br /&gt;
== Injection hardware ==&lt;br /&gt;
&lt;br /&gt;
=== Injector Outputs ===&lt;br /&gt;
&lt;br /&gt;
==== Injection Output x ====&lt;br /&gt;
This is the physical output pin for the injector output for cylinder x.&lt;br /&gt;
&lt;br /&gt;
=== Injector Enable/Disable ===&lt;br /&gt;
&lt;br /&gt;
==== Injector x  disable ====&lt;br /&gt;
This menu is used to disable individual injector outputs for troubleshooting.&lt;br /&gt;
&lt;br /&gt;
=== Cylinder Banks - Closed Loop Feedback ===&lt;br /&gt;
&lt;br /&gt;
==== Cylinder x ====&lt;br /&gt;
Select which fuel correction bank this cylinder belongs to. Group cylinders that share the same O2 sensor 1.&lt;br /&gt;
&lt;br /&gt;
== Injector Deadtimes (BatV vs fuel pressure) ==&lt;br /&gt;
This table defines the [[Injector Dead Time]]. The dead time is the time in milliseconds that it takes for the injector to open and start spraying fuel. It is pressure and voltage dependant.&lt;br /&gt;
&lt;br /&gt;
This table configures the relation of pressure/voltage and deadtime in ms.&lt;br /&gt;
&lt;br /&gt;
== Injector Timing Advance ==&lt;br /&gt;
This is injection angle in relation to TDC ignition stroke. Values are ATDC. i.e. If ignition timing is 14 advance, this value has to be -14 to match that event. -400 in this table would put injection well into the intake stroke. 50 here is 50 degrees after TDC compression stroke&lt;br /&gt;
&lt;br /&gt;
==== Override the Y axis (load) value used for the injector advance table. ====&lt;br /&gt;
Override the Y axis (load) value used for the injector advance table.&lt;br /&gt;
&lt;br /&gt;
{{Warning|Please note that this is a rudimentary correction and should be used only for troubleshooting and diagnostics.}}&lt;br /&gt;
&lt;br /&gt;
== Primary Injector Small Pulsewidth Table ==&lt;br /&gt;
&lt;br /&gt;
This is the injector [[Config:Fuel#Use small pulsewidth correction lookup curve|small pulsewidth correction]]. This table is used to re-map a small pulsewidth to a bigger one or vice-versa.&lt;br /&gt;
&lt;br /&gt;
This is used to improve idle behaviour and other transient situations.&lt;br /&gt;
&lt;br /&gt;
{{Warning_Mild|This feature should only be needed if running very big injectors (&amp;gt;1500cc) and you have idle fueling problems, or you want to limit the minimum pulsewidth. Do not use otherwise.}}&lt;br /&gt;
&lt;br /&gt;
== Primary Injector Small Pulsewth vs BatV multiplier ==&lt;br /&gt;
&lt;br /&gt;
This is the  [[Config:Fuel#Use small pulsewidth correction lookup curve|small pulsewidth correction]] in relation to battery voltage. Small pulse width behavour can change with battery voltage, and this can be used to correct that behaviour.&lt;br /&gt;
&lt;br /&gt;
{{Warning_Mild|This feature should only be needed if running very big injectors (&amp;gt;1500cc) and you have idle fueling problems, or you want to limit the minimum pulsewidth. Do not use otherwise.}}&lt;br /&gt;
&lt;br /&gt;
== Injector deadtime assisted tuning ==&lt;br /&gt;
&lt;br /&gt;
epicEFI firmware includes an &#039;&#039;&#039;Injector Deadtime Tuning Tool&#039;&#039;&#039; that works by alternating between sequential injection and batch injection on a schedule.&lt;br /&gt;
&lt;br /&gt;
This method works because switching between these two modes changes the number of injection events per engine cycle. In batch mode, the injector fires &#039;&#039;&#039;twice per cycle&#039;&#039;&#039;, while in sequential mode it fires &#039;&#039;&#039;once per cycle&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
In both cases, the total amount of fuel delivered per cycle remains the same. The difference is that in batch mode the fuel is split into two injection events, whereas in sequential mode it is delivered in a single event. Since injector deadtime is added to every injection event, the total added deadtime per cycle differs between the two modes.&lt;br /&gt;
&lt;br /&gt;
If the deadtime values are not accurate, switching between batch and sequential injection will result in a measurable change in AFR at the exhaust.&lt;br /&gt;
&lt;br /&gt;
The epicEFI Injector Deadtime Tuning Assist automatically switches between sequential and batch modes on a set schedule, allowing you to log the AFR difference. You can then adjust the deadtime table until no AFR change is observed between the two modes, indicating that the injected fuel quantity is consistent in both cases.&lt;br /&gt;
&lt;br /&gt;
It’s advisable to disable [[Config:Fuel#Short term fuel trim Setup|short-term fuel trims]] and to run this test with the engine fully warmed up.&lt;br /&gt;
&lt;br /&gt;
At first, the engine may struggle to stay running when the mode switch occurs. This is expected if your deadtime values are off, since those inaccuracies are usually already “hidden” in the VE table.&lt;br /&gt;
&lt;br /&gt;
If the engine goes too lean and won’t stay running, you can use the [[Config:Fuel#Global Fuel Correction (1=100%)|Global Fuel Correction]] to richen the mixture enough to keep it alive.&lt;br /&gt;
&lt;br /&gt;
The Global Fuel Correction does not affect injector deadtime. It simply scales the overall fuel delivery, allowing you to keep the engine running while you dial in the correct deadtime values.&lt;br /&gt;
&lt;br /&gt;
==== Enable deadtime tuning cycle ====&lt;br /&gt;
This is the master switch for the tool.&lt;br /&gt;
&lt;br /&gt;
==== Use sequential ====&lt;br /&gt;
Enable sequential [[Config:Fuel#Mode|fuel mode]] into the scheduled switching.&lt;br /&gt;
&lt;br /&gt;
==== Use batch ====&lt;br /&gt;
Enable batch [[Config:Fuel#Mode|fuel mode]] into the scheduled switching.&lt;br /&gt;
&lt;br /&gt;
==== Use simultaneous ====&lt;br /&gt;
Enable simultaneous  [[Config:Fuel#Mode|fuel mode]] into the scheduled switching.&lt;br /&gt;
&lt;br /&gt;
==== Cycles ====&lt;br /&gt;
Switch fuel strategy every this many cycles of the engine.&lt;br /&gt;
&lt;br /&gt;
==== Min RPM ====&lt;br /&gt;
Minimum RPM for the tool to run.&lt;br /&gt;
&lt;br /&gt;
== Injector Advance Assisted Tuning ==&lt;br /&gt;
&lt;br /&gt;
epicEFI firmware includes the &#039;&#039;&#039;Injector Advance Tuning Tool&#039;&#039;&#039;. This enables the optimization of the injector close angle (also called end-of-injection) by offsetting it on a schedule. This enables you to test out the injection end angle by listening how the engine runs.&lt;br /&gt;
&lt;br /&gt;
Let&#039;s say the injector needs to close at 90 degrees crankshaft angle and the tool is enabled and configured for -10 and +10 degrees. The injection end-of-injection will be changed by each step each number of cycles from 80 to 100 degrees.&lt;br /&gt;
&lt;br /&gt;
==== Enable ====&lt;br /&gt;
Enable Injector Advance Tuning Assist&lt;br /&gt;
&lt;br /&gt;
==== Degrees per step ====&lt;br /&gt;
How many degrees to increment each scheduled event.&lt;br /&gt;
&lt;br /&gt;
==== Cycles per step ====&lt;br /&gt;
How many crankshaft cycles occur per step.&lt;br /&gt;
&lt;br /&gt;
==== Min RPM ====&lt;br /&gt;
Enable above this RPM&lt;br /&gt;
&lt;br /&gt;
==== Max RPM ====&lt;br /&gt;
Disable above this RPM&lt;br /&gt;
&lt;br /&gt;
==== Start Retard (deg) ====&lt;br /&gt;
Start injector advance offset&lt;br /&gt;
&lt;br /&gt;
==== End Retard (deg) ====&lt;br /&gt;
End injector advance offset&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl x ==&lt;br /&gt;
&lt;br /&gt;
This is the fuel trim per-cylinder.&lt;br /&gt;
&lt;br /&gt;
= Staged injection =&lt;br /&gt;
This is the configuration for [[Staged Injection]]. Used for staging of injectors (primary-secondary) and the associated corrections.&lt;br /&gt;
&lt;br /&gt;
== Staged Injector Settings ==&lt;br /&gt;
&lt;br /&gt;
==== Staged Injection Enable ====&lt;br /&gt;
This is the master switch for staged injection.&lt;br /&gt;
&lt;br /&gt;
==== Secondary injector flow ====&lt;br /&gt;
The flow rate of the secondary injectors.&lt;br /&gt;
&lt;br /&gt;
See [[Config:Fuel#Injector flow|Injector flow]]&lt;br /&gt;
&lt;br /&gt;
==== Secondary injector flow compensation mode ====&lt;br /&gt;
The flow compensation mode.&lt;br /&gt;
&lt;br /&gt;
See [[Config:Fuel#Injector flow compensation mode|Injector flow compensation mode]]&lt;br /&gt;
&lt;br /&gt;
==== Secondary injector reference pressure ====&lt;br /&gt;
The secondary injectors reference pressure.&lt;br /&gt;
&lt;br /&gt;
See [[Config:Fuel#Injector reference pressure|Injector reference pressure]]&lt;br /&gt;
&lt;br /&gt;
==== Use small pulsewidth correction lookup curve ====&lt;br /&gt;
See [[Config:Fuel#Use small pulsewidth correction lookup curve|Use small pulsewidth correction lookup curve]]&lt;br /&gt;
&lt;br /&gt;
== Staged Injector Deadtimes ==&lt;br /&gt;
This is the deadtime of the secondary injectors.&lt;br /&gt;
&lt;br /&gt;
See [[Config:Fuel#Injector Deadtimes (BatV vs fuel pressure)|Injector Deadtimes (BatV vs fuel pressure)]]&lt;br /&gt;
&lt;br /&gt;
== Staged Injector outputs ==&lt;br /&gt;
&lt;br /&gt;
==== Injection Stage 2 Output x ====&lt;br /&gt;
These are the physical output pins for the secondary injection stage.&lt;br /&gt;
&lt;br /&gt;
== Staged Injector % table ==&lt;br /&gt;
&lt;br /&gt;
Dtaged injector % table is how much of the staged injector to be used at RPM vs load. 0% means here all primary, and 100% all secondary fuel injectors.&lt;br /&gt;
&lt;br /&gt;
== Staged Injector Small Pulsewidth Table ==&lt;br /&gt;
&lt;br /&gt;
This is the small pulsewidth correction for the secondary injection stage.&lt;br /&gt;
&lt;br /&gt;
See [[Config:Fuel#Primary Injector Small Pulsewidth Table|Primary Injector Small Pulsewidth Table]]&lt;br /&gt;
&lt;br /&gt;
= Target AFR =&lt;br /&gt;
This is the target lambda/air fuel ratio that is used for corrections, [[Config:Fuel#Long Term Fuel Trim|LTFT]], [[Config:Fuel#Short Term Fuel Trim|STFT]] and fuel calculations.&lt;br /&gt;
&lt;br /&gt;
= Target AFR warmup enrichment (CLT) =&lt;br /&gt;
This is the AFR ratio target correction in regards to warmup enrichment.&lt;br /&gt;
&lt;br /&gt;
1.0 means no correction.&lt;br /&gt;
&lt;br /&gt;
1.2 means 20% richer fuel target&lt;br /&gt;
&lt;br /&gt;
0.8 means 20% leaner fuel target&lt;br /&gt;
&lt;br /&gt;
= Manual warmup enrichment (CLT) =&lt;br /&gt;
This is the manual warmup enrichment in regards to coolant temperature. This is a global multiplier.&lt;br /&gt;
&lt;br /&gt;
1.0 means no correction.&lt;br /&gt;
&lt;br /&gt;
1.2 means 20% richer mixture&lt;br /&gt;
&lt;br /&gt;
0.8 means 20% leaner mixture&lt;br /&gt;
&lt;br /&gt;
= Intake air temp correction (IAT) =&lt;br /&gt;
This is the intake air temp correction curve. This is a global multiplier.&lt;br /&gt;
&lt;br /&gt;
1.0 means no correction.&lt;br /&gt;
&lt;br /&gt;
1.2 means 20% richer mixture&lt;br /&gt;
&lt;br /&gt;
0.8 means 20% leaner mixture&lt;br /&gt;
&lt;br /&gt;
= Deceleration fuel cutoff (DFCO) =&lt;br /&gt;
&lt;br /&gt;
==== Enable Coasting Fuel Cutoff ====&lt;br /&gt;
This setting disables fuel injection while the engine is in overrun, this is useful as a fuel saving measure and to prevent back firing.&lt;br /&gt;
&lt;br /&gt;
==== Disable fuel cut on clutch ====&lt;br /&gt;
Inhibits DFCO from activating when the clutch is pressed. This helps prevent transient knock during shifts.&lt;br /&gt;
&lt;br /&gt;
==== No cut below CLT ====&lt;br /&gt;
Fuel cutoff is disabled when the engine is cold.&lt;br /&gt;
&lt;br /&gt;
==== RPM cut fuel above ====&lt;br /&gt;
This sets the RPM above which fuel cut is active.&lt;br /&gt;
&lt;br /&gt;
==== RPM restore fuel below ====&lt;br /&gt;
This sets the RPM below which fuel cut is deactivated, this prevents jerking or issues transitioning to idle&lt;br /&gt;
&lt;br /&gt;
==== Vehicle speed cut above ====&lt;br /&gt;
Above this speed, allow DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears.&lt;br /&gt;
&lt;br /&gt;
==== Vehicle speed restore below ====&lt;br /&gt;
Below this speed, disable DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears.&lt;br /&gt;
&lt;br /&gt;
==== Cut fuel below TPS ====&lt;br /&gt;
Throttle position below which fuel cut is active. With an electronic throttle enabled, this checks against pedal position.&lt;br /&gt;
&lt;br /&gt;
==== Cut fuel below MAP mode ====&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039; - MAP threshold cut fuel when conditions are met&lt;br /&gt;
* &#039;&#039;&#039;Table -&#039;&#039;&#039; Use a curve to vary the MAP threshold based on engine RPM&lt;br /&gt;
&lt;br /&gt;
==== Cut fuel below MAP ====&lt;br /&gt;
MAP value above which fuel injection is re-enabled.&lt;br /&gt;
&lt;br /&gt;
==== Fuel cut delay ====&lt;br /&gt;
Delay before cutting fuel. Set to 0 to cut immediately with no delay. May cause rumbles and pops out of your exhaust...&lt;br /&gt;
&lt;br /&gt;
==== Inhibit closed loop fuel after cut ====&lt;br /&gt;
Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut.&lt;br /&gt;
&lt;br /&gt;
==== Ignition retard during cut ====&lt;br /&gt;
Retard timing by this amount during DFCO. Smooths the transition back from fuel cut. After fuel is restored, ramp timing back in over the period specified.&lt;br /&gt;
&lt;br /&gt;
==== After cut timing ramp-in time ====&lt;br /&gt;
Smooths the transition back from fuel cut. After fuel is restored, ramp timing back in over the period specified.&lt;br /&gt;
&lt;br /&gt;
=== Use DFCO exit enrichment ===&lt;br /&gt;
&lt;br /&gt;
===== The phenomenon =====&lt;br /&gt;
During &#039;&#039;&#039;DFCO&#039;&#039;&#039;, injection stops while coasting. Fuel that normally sits as a film on the intake port / valve area keeps evaporating, so the walls dry out.&lt;br /&gt;
&lt;br /&gt;
When fuel returns, part of the first pulses sticks to those dry walls instead of reaching the cylinder. Commanded fuel is “correct” for steady state, but chamber AFR goes lean for a short time → hesitation, stumble, harsh re-fire, or (near idle) a stall risk.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DFCO exit enrichment&#039;&#039;&#039; is a brief rich multiplier applied right after DFCO ends, sized vs &#039;&#039;&#039;RPM × time-since-exit&#039;&#039;&#039;, to rebuild that film quickly. Many engines do not need it; enable it when logs show a lean spike or stumble at fuel restore.&lt;br /&gt;
&lt;br /&gt;
In epicEFI it sits early in the fuel path (after DFCO cut, before TPS AE). Wall-wetting, if enabled, still runs later per cylinder. Related helpers: DFCO timing retard/ramp, and pausing STFT after DFCO so closed loop does not fight the transient.&lt;br /&gt;
&lt;br /&gt;
==== Tip-in out of DFCO: why exit enrichment if TPS AE already exists? ====&lt;br /&gt;
In theory, opening the throttle after DFCO should be handled by &#039;&#039;&#039;TPS AE&#039;&#039;&#039;: delta TPS is large, AE fires, extra fuel covers the accel transient.&lt;br /&gt;
&lt;br /&gt;
That only holds if the wall film is in a &#039;&#039;&#039;normal&#039;&#039;&#039; state. TPS AE is tuned for tip-in &#039;&#039;with fuel already flowing&#039;&#039; — some film already present, AE mainly covering extra air and the &#039;&#039;incremental&#039;&#039; wetting from the load step.&lt;br /&gt;
&lt;br /&gt;
After DFCO the starting condition is different:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!&lt;br /&gt;
!Normal tip-in&lt;br /&gt;
!Tip-in from DFCO&lt;br /&gt;
|-&lt;br /&gt;
|Wall film&lt;br /&gt;
|Roughly at steady state&lt;br /&gt;
|Depleted / dry&lt;br /&gt;
|-&lt;br /&gt;
|What TPS AE “knows”&lt;br /&gt;
|Throttle rate / TPS change&lt;br /&gt;
|Same — &#039;&#039;&#039;not&#039;&#039;&#039; cut duration or dryness&lt;br /&gt;
|-&lt;br /&gt;
|Typical AE sizing&lt;br /&gt;
|Enough for air + normal film dynamics&lt;br /&gt;
|Under-compensates the dry-wall deficit&lt;br /&gt;
|}&lt;br /&gt;
So AE answers “how fast did the driver open the throttle?” Exit enrichment answers “fuel just came back after a cut onto dry walls.” Those are different errors:&lt;br /&gt;
&lt;br /&gt;
* A &#039;&#039;&#039;gentle&#039;&#039;&#039; tip-in after a long cut → little AE, large film deficit → lean stumble even though AE “worked.”&lt;br /&gt;
* A &#039;&#039;&#039;sharp&#039;&#039;&#039; tip-in → lots of AE for air, but the film rebuild need is still largely set by how dry the walls are, not only by TPS rate → easy to get lean first, then rich if you inflate AE to fix DFCO.&lt;br /&gt;
&lt;br /&gt;
Exit enrichment supplies a &#039;&#039;&#039;DFCO-specific film rebuild&#039;&#039;&#039; (time/RPM table). TPS AE can stay tuned for normal accel. Use a modest exit % so the two do not stack into a rich misfire; if tip-in after DFCO is too rich, reduce one of them rather than both fighting the same symptom.&lt;br /&gt;
&lt;br /&gt;
Wall wetting can reduce how much exit enrichment you need (it models film continuously), but it is not a perfect substitute for an explicit “just exited fuel cut” feedforward when τ/β are imperfect or the cut was long.&lt;br /&gt;
&lt;br /&gt;
==== Closed-throttle return to idle ====&lt;br /&gt;
DFCO often ends because RPM falls below the DFCO-off threshold with the &#039;&#039;&#039;pedal still closed&#039;&#039;&#039;. TPS AE usually &#039;&#039;&#039;does not fire&#039;&#039;&#039;. Fuel must restart while RPM is falling into idle — low inertia, changing idle air/spark. A lean re-light here is much more likely to stumble or stall than the same spike at mid-RPM tip-in.&lt;br /&gt;
&lt;br /&gt;
For that case, exit enrichment (plus timing ramp and STFT pause) is the main dedicated fix; bias the table and &#039;&#039;&#039;dfcoExitEnrichmentMaxRpm&#039;&#039;&#039; toward the low-RPM / first few hundred ms window.&lt;br /&gt;
&lt;br /&gt;
==== Practical takeaway ====&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Idle catch after coast:&#039;&#039;&#039; exit enrichment matters because TPS AE is absent.&lt;br /&gt;
* &#039;&#039;&#039;Tip-in after DFCO:&#039;&#039;&#039; exit enrichment still helps because TPS AE assumes a wet film; after cut the film is dry, and AE magnitude tracks throttle rate, not dryness. Use exit enrich for the film, AE for the tip-in — lightly combined, not as two copies of the same correction.&lt;br /&gt;
&lt;br /&gt;
==== DFCO exit enrichment max RPM ====&lt;br /&gt;
This is the maximum RPM for DCFO exit enrichment.&lt;br /&gt;
&lt;br /&gt;
= DFCO MAP to RPM threshold =&lt;br /&gt;
DFCO will activate when operating below this curve. Used to allow a higher threshold at low RPM where less vaccuum is generated.&lt;br /&gt;
&lt;br /&gt;
= DFCO Exit Enrichment (%) =&lt;br /&gt;
Example table: &lt;br /&gt;
[[File:DFCOExitEnrichment Example Table.png|none|thumb|Use this just as an example. These values may or may not work well on your engine]]&lt;br /&gt;
&lt;br /&gt;
= Long Term Fuel Trim =&lt;br /&gt;
This configures the Long Term Fuel Trim. This is used to trim fuel over long periods of time, such as injector aging or similar factors.&lt;br /&gt;
&lt;br /&gt;
{{Info|To enable long term fuel trims, short term fuel trims should be configured and active.}}&lt;br /&gt;
&lt;br /&gt;
== Long term fuel trims ==&lt;br /&gt;
&lt;br /&gt;
=== Trim bank 1 ===&lt;br /&gt;
&lt;br /&gt;
=== Long term fuel trim ===&lt;br /&gt;
&lt;br /&gt;
==== Gathering Data ====&lt;br /&gt;
Enables lambda sensor long term fuel corrections data gathering into LTFT trim tables&lt;br /&gt;
{{Info|To enable long term fuel trims, short term fuel trims should be configured and active.}}&lt;br /&gt;
&lt;br /&gt;
==== Time const ====&lt;br /&gt;
Commonly referred as Integral gain.&lt;br /&gt;
&lt;br /&gt;
Time constant for correction while in this cell: this sets responsiveness of the closed loop correction. A value of 30.0 means it will try to make most of the correction within 30 seconds, and a value of 300.0 will try to correct within 5 minutes.&lt;br /&gt;
&lt;br /&gt;
Lower values makes the correction more sensitive, higher values slow the correction down.&lt;br /&gt;
&lt;br /&gt;
==== Max add ====&lt;br /&gt;
Maximum % that the long term fuel trim can add&lt;br /&gt;
&lt;br /&gt;
==== Max remove ====&lt;br /&gt;
Maximum % that the long term fuel trim can remove&lt;br /&gt;
&lt;br /&gt;
==== Learning deadband ====&lt;br /&gt;
When close to correct AFR, pause correction. This can improve stability by not changing the adjustment if the error is extremely small, but is not required.&lt;br /&gt;
&lt;br /&gt;
==== Apply Correction ====&lt;br /&gt;
Apply LTFT trims into fuel calculation on top of VE table.&lt;br /&gt;
&lt;br /&gt;
We do not adjust VE table automatically, please click &#039;Apply to VE&#039; if you want to adjust your VE tables and reset trims.&lt;br /&gt;
&lt;br /&gt;
==== Enable Autosave LTFT ====&lt;br /&gt;
Automatically save Long Term Fuel trim to backup&lt;br /&gt;
&lt;br /&gt;
==== Enable Writes While Engine runs (experimental) every 10 minutes ====&lt;br /&gt;
This enables configuration writes every 10 minutes while the engine runs.&lt;br /&gt;
{{Warning|This feature is experimental and could result in tune loss on the ECU. Use with caution.}}&lt;br /&gt;
&lt;br /&gt;
==== Refresh TS with live write every 10 minutes ====&lt;br /&gt;
Refreshes TunerStudio with the live write.&lt;br /&gt;
{{Warning|This feature is experimental and could result in tune loss on the ECU. Use with caution.}}&lt;br /&gt;
&lt;br /&gt;
==== Flash Write delay after engine off - seconds ====&lt;br /&gt;
Delay flash write after engine stop for this long.&lt;br /&gt;
&lt;br /&gt;
== Long Term Fuel Trim Bank 1 - BACKUP ==&lt;br /&gt;
This is the bank 1 long term fuel trim backup. On ECU boot, this is copied into the active table.&lt;br /&gt;
&lt;br /&gt;
== Long Term Fuel Trim Bank 2 - BACKUP ==&lt;br /&gt;
This is the bank 1 long term fuel trim backup. On ECU boot, this is copied into the active table.&lt;br /&gt;
&lt;br /&gt;
= Short Term Fuel Trim =&lt;br /&gt;
This is used to configure STFT. This trim is applied fast and used to correct the fuel in very short periods of time.&lt;br /&gt;
&lt;br /&gt;
== Short term fuel trim Setup ==&lt;br /&gt;
&lt;br /&gt;
=== Short term fuel trim ===&lt;br /&gt;
&lt;br /&gt;
==== Short term fuel trim ====&lt;br /&gt;
Enables lambda sensor closed loop feedback for fuelling.&lt;br /&gt;
&lt;br /&gt;
==== CAN BOX AFR Trim range ADD MAX (+) (lambda) ====&lt;br /&gt;
maximum afr trim&lt;br /&gt;
&lt;br /&gt;
==== CAN BOX AFR Trim range REMOVE MAX(-)(lambda) ====&lt;br /&gt;
minimum afr trim&lt;br /&gt;
&lt;br /&gt;
==== Logged Tuned VE correction multiplier ====&lt;br /&gt;
Multiplier for corrections applied to tuned VE that&#039;s logged&lt;br /&gt;
&lt;br /&gt;
==== Startup delay ====&lt;br /&gt;
Delay after starting the engine before beginning closed loop correction.&lt;br /&gt;
&lt;br /&gt;
==== After DFCO delay ====&lt;br /&gt;
Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut.&lt;br /&gt;
&lt;br /&gt;
==== After DFCO pause or disable STFT ====&lt;br /&gt;
This eliminates the interference between [[Config:Fuel#Deceleration fuel cutoff (DFCO)|DFCO]] and SFTF.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;True&#039;&#039;&#039; - Pauses the short term fuel trim&lt;br /&gt;
* &#039;&#039;&#039;False&#039;&#039;&#039; - Disable STFT after DFCO is active   &lt;br /&gt;
&lt;br /&gt;
==== Minimum CLT for correction ====&lt;br /&gt;
Below this temperature, correction is disabled.&lt;br /&gt;
&lt;br /&gt;
==== Use AFR (Gasoline scale) or Lambda for limits ====&lt;br /&gt;
Use Lambda or AFR for limits&lt;br /&gt;
&lt;br /&gt;
==== Minimum AFR for correction (Gasoline scale) ====&lt;br /&gt;
Below this AFR, correction is paused&lt;br /&gt;
&lt;br /&gt;
This is corrected for current flex fuel percentage.&lt;br /&gt;
&lt;br /&gt;
==== Maximum AFR for correction (Gasoline scale) ====&lt;br /&gt;
Above this AFR, correction is paused&lt;br /&gt;
&lt;br /&gt;
This is corrected for current flex fuel percentage.&lt;br /&gt;
&lt;br /&gt;
==== Minimum Lambda for correction ====&lt;br /&gt;
Below this Lambda, correction is paused&lt;br /&gt;
&lt;br /&gt;
This is corrected for current flex fuel percentage.&lt;br /&gt;
&lt;br /&gt;
==== Maximum Lambda for correction ====&lt;br /&gt;
Above this Lambda, correction is paused&lt;br /&gt;
&lt;br /&gt;
This is corrected for current flex fuel percentage&lt;br /&gt;
&lt;br /&gt;
==== Adjustment deadband_rich - MAX RICH % ====&lt;br /&gt;
When close to correct AFR from rich side, pause correction. This can improve stability by not changing the adjustment if the error is extremely small, but is not required.&lt;br /&gt;
&lt;br /&gt;
==== Adjustment deadband_lean - MAX LEAN % ====&lt;br /&gt;
When close to correct AFR from lean side , pause correction. This can improve stability by not changing the adjustment if the error is extremely small, but is not required.&lt;br /&gt;
&lt;br /&gt;
==== Ignore error magnitude (error is always 0.1% - simple mode) ====&lt;br /&gt;
If enabled, adjust at a constant rate instead of a rate proportional to the current lambda error. This mode may be easier to tune, and more tolerant of sensor noise.&lt;br /&gt;
&lt;br /&gt;
== Short term fuel trim Time Constant (I) ==&lt;br /&gt;
&lt;br /&gt;
This is the integral component of the short term fuel trim.&lt;br /&gt;
&lt;br /&gt;
== Short term fuel trim Add Authority (+) ==&lt;br /&gt;
Define how much fuel the short-term trim system is allowed to add at a given RPM vs. load (MAP/AFR) point.&lt;br /&gt;
&lt;br /&gt;
For example, if you want the system to only add fuel in boost and never remove it, you can set the &#039;&#039;&#039;Remove Map&#039;&#039;&#039; to 0 above 100 kPa and above, say, 2000 RPM.&lt;br /&gt;
&lt;br /&gt;
== Short term fuel trim Remove Authority (-) ==&lt;br /&gt;
&lt;br /&gt;
Define how much fuel the short-term trim system is allowed to add at a given RPM vs. load (MAP/AFR) point.&lt;br /&gt;
&lt;br /&gt;
If you want the fuel trim to reset immediately on lift-off (when vacuum drops very low and the engine rides the bottom row of the map), you can set the authority to 0 in that area.&lt;br /&gt;
&lt;br /&gt;
= VE Table Switch =&lt;br /&gt;
&lt;br /&gt;
== VE Table Switch x Settings ==&lt;br /&gt;
&lt;br /&gt;
==== VE Table Switch x Pin ====&lt;br /&gt;
Full table switch or blend pin.&lt;br /&gt;
&lt;br /&gt;
To find the actual value for your hardware, see [[Hardware]].&lt;br /&gt;
&lt;br /&gt;
==== VE Table Switch x Pin Mode ====&lt;br /&gt;
This is the pin mode for the switch input pin.&lt;br /&gt;
&lt;br /&gt;
See [[Hardware:ECU input mode selection|ECU input mode selection]].&lt;br /&gt;
&lt;br /&gt;
==== VE Table Switch x Parameter ====&lt;br /&gt;
This defines the table switch parameter.&lt;br /&gt;
&lt;br /&gt;
==== VE Table Switch x Blend Mode ====&lt;br /&gt;
Blend mode adds or multiplies the switch table with base, default is switch.&lt;br /&gt;
&lt;br /&gt;
==== VE Table Switch x Y axis override ====&lt;br /&gt;
This overrides the Y axis of the table switch table.&lt;br /&gt;
&lt;br /&gt;
== VE Table Switch x ==&lt;br /&gt;
&lt;br /&gt;
This is the table which is used after switching/blending.&lt;br /&gt;
&lt;br /&gt;
= Target AFR Table Switch =&lt;br /&gt;
&lt;br /&gt;
== Target AFR Table Switch 1 Settings ==&lt;br /&gt;
&lt;br /&gt;
==== Target AFR Table Switch 1 Pin ====&lt;br /&gt;
Full table switch or blend pin&lt;br /&gt;
&lt;br /&gt;
To find the actual value for your hardware, see [[Hardware]].&lt;br /&gt;
&lt;br /&gt;
==== Target AFR Table Switch 1 Pin Mode ====&lt;br /&gt;
See [[Hardware:ECU input mode selection|ECU input mode selection]].&lt;br /&gt;
&lt;br /&gt;
==== Target AFR Table Switch 1 Parameter ====&lt;br /&gt;
This defines the table switch parameter.&lt;br /&gt;
&lt;br /&gt;
==== Target AFR Table Switch 1 Blend Mode ====&lt;br /&gt;
Blend mode adds or multiplies the switch table with base, default is switch.&lt;br /&gt;
&lt;br /&gt;
==== Target AFR Table Switch 1 Y axis override ====&lt;br /&gt;
This overrides the Y axis of the table switch table.&lt;br /&gt;
&lt;br /&gt;
== Target AFR Table Switch 1 ==&lt;br /&gt;
&lt;br /&gt;
This is the table which is used after switching/blending.&lt;br /&gt;
&lt;br /&gt;
= Fuel Corrections =&lt;br /&gt;
&lt;br /&gt;
== Barometric pressure correction ==&lt;br /&gt;
&lt;br /&gt;
This is the barometric pressure correction in regards with a baro sensor.&lt;br /&gt;
&lt;br /&gt;
== Charge temperature estimation ==&lt;br /&gt;
This is the charge air estimation used to approximate the cylinder air/fuel charge temperature based on CLT and IAT.&lt;br /&gt;
&lt;br /&gt;
==== Mode ====&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;RPM+TPS&#039;&#039;&#039; - Use RPM and TPS for air charge estimation&lt;br /&gt;
* &#039;&#039;&#039;Air Mass Interpolation&#039;&#039;&#039; - Use the air mass interpolation method for charge air estimation&lt;br /&gt;
* &#039;&#039;&#039;Table&#039;&#039;&#039; - Use the table for charge temperature estimation&lt;br /&gt;
&lt;br /&gt;
==== Increase rate limit ====&lt;br /&gt;
Maximum allowed rate of increase allowed for the estimated charge temperature&lt;br /&gt;
&lt;br /&gt;
==== Decrease rate limit ====&lt;br /&gt;
Maximum allowed rate of decrease allowed for the estimated charge temperature&lt;br /&gt;
&lt;br /&gt;
=== RPM+TPS mode ===&lt;br /&gt;
&lt;br /&gt;
==== Low RPM/Low TPS ====&lt;br /&gt;
The low RPM/low TPS coefficient for estimation.&lt;br /&gt;
&lt;br /&gt;
==== Low RPM/High TPS ====&lt;br /&gt;
The low RPM/high TPS coefficient for estimation.&lt;br /&gt;
&lt;br /&gt;
==== High RPM/Low TPS ====&lt;br /&gt;
The high RPM/low TPS coefficient for estimation.&lt;br /&gt;
&lt;br /&gt;
==== High RPM/High TPS ====&lt;br /&gt;
The high RPM/high TPS coefficient for estimation.&lt;br /&gt;
&lt;br /&gt;
=== Airflow interpolation mode ===&lt;br /&gt;
&lt;br /&gt;
==== Low flow coefficient ====&lt;br /&gt;
Heat transfer coefficient at zero flow.&lt;br /&gt;
&lt;br /&gt;
* 0 means the air charge is fully heated to the same temperature as the coolant temperature&lt;br /&gt;
* 1 means the air charge gains no heat, and enters the cylinder at the temperature measured by IAT.&lt;br /&gt;
&lt;br /&gt;
==== High flow coefficient ====&lt;br /&gt;
Heat transfer coefficient at high flow, as defined by &amp;quot;max air flow&amp;quot;.&lt;br /&gt;
0 means the air charge is fully heated to the same temperature as CLT.&lt;br /&gt;
1 means the air charge gains no heat, and enters the cylinder at the temperature measured by IAT.&lt;br /&gt;
&lt;br /&gt;
==== Max air flow ====&lt;br /&gt;
High flow point for heat transfer estimation.&lt;br /&gt;
Set this to perhaps 50-75% of your maximum airflow at wide open throttle.&lt;br /&gt;
&lt;br /&gt;
= User Switchable Lambda Target Multipliers =&lt;br /&gt;
This affects the AFR target output, this is a multiplier, and the value stacks with the multipliers.&lt;br /&gt;
&lt;br /&gt;
0.9 = MORE fuel (lower lambda)&lt;br /&gt;
&lt;br /&gt;
1.1 = LESS fuel (higher lambda)&lt;br /&gt;
&lt;br /&gt;
==== Target Lambda Multiplier x pin ====&lt;br /&gt;
This is the physical input pin for the lambda multiplier.&lt;br /&gt;
&lt;br /&gt;
To find the actual value for your hardware, see [[Hardware]].&lt;br /&gt;
&lt;br /&gt;
==== Target Lambda Multiplier x pin mode ====&lt;br /&gt;
See [[Hardware:ECU input mode selection|ECU input mode selection]].&lt;br /&gt;
&lt;br /&gt;
==== Target Lambda Multiplier x value ====&lt;br /&gt;
This is the multiplier value for the lambda target.&lt;br /&gt;
&lt;br /&gt;
= TPS Acceleration Enrichment/Wall Wetting AE =&lt;br /&gt;
This is the acceleration enrichment (AE) setting. They can be&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Delta-TPS based&#039;&#039;&#039; - The TPS delta (TPS speed) is used for acceleration enrichment (simpler)&lt;br /&gt;
* &#039;&#039;&#039;Wall Wetting&#039;&#039;&#039; - Complex wall-wetting algorithm based on fuel evaporation time&lt;br /&gt;
&lt;br /&gt;
== Acceleration enrichment Base settings(AE) ==&lt;br /&gt;
&lt;br /&gt;
=== Acceleration Enrichment Methods ===&lt;br /&gt;
&lt;br /&gt;
==== Enable TPS Acceleration Enrichment ====&lt;br /&gt;
TPS acceleration enrichment enabled&lt;br /&gt;
&lt;br /&gt;
==== Enable wall wetting Acceleration Enrichment ====&lt;br /&gt;
Wall wetting accelerating enrichment enabled&lt;br /&gt;
&lt;br /&gt;
==== Use MAP estimate during transient ====&lt;br /&gt;
During the TPS AE period, use the MAP estimate table value instead of true MAP (if greater than real MAP). This basically briefly runs in alpha-n during a transient, then returns to normal speed-density mode.&lt;br /&gt;
&lt;br /&gt;
=== Wall Wetting ===&lt;br /&gt;
&lt;br /&gt;
==== Wall fueling model type ====&lt;br /&gt;
Specifies the wall-wetting mode.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Basic&#039;&#039;&#039; - Constants are used to vary tau/beta&lt;br /&gt;
* &#039;&#039;&#039;Advanced&#039;&#039;&#039; - Tables are used to vary tau/beta&lt;br /&gt;
&lt;br /&gt;
==== evaporation time constant / tau ====&lt;br /&gt;
Length of time the deposited wall fuel takes to dissipate after the start of acceleration.&lt;br /&gt;
&lt;br /&gt;
==== added to wall coef / beta ====&lt;br /&gt;
&lt;br /&gt;
* 0 = No fuel settling on port walls &lt;br /&gt;
* 1 = All the fuel settling on port walls &lt;br /&gt;
&lt;br /&gt;
Setting this to 0 disables the wall wetting enrichment.&lt;br /&gt;
&lt;br /&gt;
== TPS AE: Settings ==&lt;br /&gt;
&lt;br /&gt;
==== Enable TPS Acceleration Enrichment ====&lt;br /&gt;
TPS acceleration enrichment enabled&lt;br /&gt;
&lt;br /&gt;
==== TPS AE fast or slow callback ====&lt;br /&gt;
This is how fast the AE callback is invoked (how fast the AE is calculated)&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;True&#039;&#039;&#039; - 200Hz&lt;br /&gt;
* &#039;&#039;&#039;False&#039;&#039;&#039; - 20Hz&lt;br /&gt;
&lt;br /&gt;
==== Delta TPS Average Smoothing Factor ====&lt;br /&gt;
A higher alpha (closer to 1) means the EMA reacts more quickly to changes in the data.&lt;br /&gt;
&lt;br /&gt;
1 means no filtering, 0.98 would be some filtering.&lt;br /&gt;
&lt;br /&gt;
==== Use calculated threshold from averaged delta TPS ====&lt;br /&gt;
Use calcualted threshold from averaged delta TPS&lt;br /&gt;
&lt;br /&gt;
==== Average static threshold curve and dynamic threshold ====&lt;br /&gt;
when using dynamic threshold from averaged and multiplied deltatps, average with static threshold curve&lt;br /&gt;
&lt;br /&gt;
==== Sample Length ====&lt;br /&gt;
How long to look back for TPS-based acceleration enrichment. Increasing this time will trigger enrichment for longer when a throttle position change occurs.&lt;br /&gt;
&lt;br /&gt;
==== Instant Fuel Pulse ====&lt;br /&gt;
Send a simultaneous shot to all injectors upon TPS AE&lt;br /&gt;
&lt;br /&gt;
==== Instant Fuel Pulse Multiplier (global) ====&lt;br /&gt;
Extra shot multiplier&lt;br /&gt;
&lt;br /&gt;
==== Instant Fuel Pulse Inhibit Cycles ====&lt;br /&gt;
Inhibit Extra Shot for this many cycles&lt;br /&gt;
&lt;br /&gt;
==== TPS AE Burn Skip count ====&lt;br /&gt;
Hitting  &amp;quot;Burn&amp;quot; sometimes causes a spike in sensors, TPS AE burn skip count ignores AE triggers for the duration of that.&lt;br /&gt;
&lt;br /&gt;
==== TPS Accel resets EGO to 0% ====&lt;br /&gt;
TPS AE resets current EGO to 0%&lt;br /&gt;
&lt;br /&gt;
==== Inhibit closed loop fuel after accel ====&lt;br /&gt;
Pause closed loop fueling after acceleration fuel occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel accel.&lt;br /&gt;
&lt;br /&gt;
== TPS AE: Fuel multiplier by engine cycle ==&lt;br /&gt;
This is a TPS acceleration enrichment multiplier based on engine cycle&lt;br /&gt;
&lt;br /&gt;
== TPS AE: Delta TPS Average Multiplier for Dynamic Threshold ==&lt;br /&gt;
&lt;br /&gt;
Delta TPS average multiplier curve&lt;br /&gt;
&lt;br /&gt;
== TPS AE: TPS change threshold by RPM ==&lt;br /&gt;
&lt;br /&gt;
Above this curve, the engine is considered to be in acceleration enrichment.&lt;br /&gt;
&lt;br /&gt;
== TPS AE: TPS vs CLT AE SCALE ==&lt;br /&gt;
&lt;br /&gt;
This is the acceleration enrichment scale based on CLT&lt;br /&gt;
&lt;br /&gt;
== Predictive Map Blend Duration ==&lt;br /&gt;
&lt;br /&gt;
This is the duration for the [[Config:Fuel#MAP estimate table|MAP estimation]].&lt;br /&gt;
&lt;br /&gt;
== TPS AE: RPM correction ==&lt;br /&gt;
&lt;br /&gt;
This is the RPM correction for TPS acceleration enrichment.&lt;br /&gt;
&lt;br /&gt;
== TPS AE: CLT correction ==&lt;br /&gt;
&lt;br /&gt;
This is the CLT correction for TPS acceleration enrichment.&lt;br /&gt;
&lt;br /&gt;
== MAP estimate table ==&lt;br /&gt;
&lt;br /&gt;
This table represents MAP at a given TPS vs RPM, which we use if our MAP sensor has failed, or if we are using MAP Prediciton. This table should be a direct representation of MAP, you can tune it manually by disconnecting MAP sensor, and filling out the table with values that match an external gauge that shows MAP. Additionally, you can also use MLV to get the map values and/or generate the table for you.&lt;br /&gt;
&lt;br /&gt;
== TPS AE instant pulse multiplier vs RPM ==&lt;br /&gt;
This is the RPM multiplier for the [[Config:Fuel#Instant Fuel Pulse|instant fuel pulse.]] &lt;br /&gt;
&lt;br /&gt;
== TPS AE instant pulse multiplier vs TPS ==&lt;br /&gt;
This is the TPS multiplier for the [[Config:Fuel#Instant Fuel Pulse|instant fuel pulse.]] &lt;br /&gt;
&lt;br /&gt;
== TPS AE instant pulse multiplier vs MAP ==&lt;br /&gt;
This is the MAP multiplier for the [[Config:Fuel#Instant Fuel Pulse|instant fuel pulse.]] &lt;br /&gt;
&lt;br /&gt;
== TPS AE instant pulse multiplier vs CLT ==&lt;br /&gt;
This is the CLT multiplier for the [[Config:Fuel#Instant Fuel Pulse|instant fuel pulse.]] &lt;br /&gt;
&lt;br /&gt;
== Evap from wall time ==&lt;br /&gt;
This is the base evaporation time of the fuel based on coolant temperature (Tau)&lt;br /&gt;
&lt;br /&gt;
== Stick to wall fraction ==&lt;br /&gt;
This is the base impact fraction basaed on coolant temperature (Beta)&lt;br /&gt;
&lt;br /&gt;
== Evap from wall table ==&lt;br /&gt;
This is the Tau table in regards to MAP.&lt;br /&gt;
&lt;br /&gt;
== Stick to wall table ==&lt;br /&gt;
This is the Beta table in regards to MAP.&lt;br /&gt;
&lt;br /&gt;
= Throttle Model Flow =&lt;br /&gt;
Uses &amp;quot;flow through an orifice&amp;quot; set of [[wikipedia:Bernoulli&#039;s_principle|Bernouli&#039;s equations]] to attempt to calculate air mass. &lt;br /&gt;
{{Warning Mild|This is experimental/for educational purposes only.}}&lt;br /&gt;
&lt;br /&gt;
== Throttle effective % area (TPS -&amp;gt;% throttle boy area) ==&lt;br /&gt;
&lt;br /&gt;
This is the transfer function between TPS percentage and the throttle body area percentage.&lt;br /&gt;
&lt;br /&gt;
== Throttle Model Flow Discharge Coefficient ==&lt;br /&gt;
&lt;br /&gt;
This is the discharge coefficient.&lt;/div&gt;</summary>
		<author><name>Agnese</name></author>
	</entry>
	<entry>
		<id>https://content.epicefi.com/wiki/index.php?title=File:DFCOExitEnrichment_Example_Table.png&amp;diff=491</id>
		<title>File:DFCOExitEnrichment Example Table.png</title>
		<link rel="alternate" type="text/html" href="https://content.epicefi.com/wiki/index.php?title=File:DFCOExitEnrichment_Example_Table.png&amp;diff=491"/>
		<updated>2026-08-07T14:18:54Z</updated>

		<summary type="html">&lt;p&gt;Agnese: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is just to give an idea of how the axis and values should be scaled&lt;/div&gt;</summary>
		<author><name>Agnese</name></author>
	</entry>
	<entry>
		<id>https://content.epicefi.com/wiki/index.php?title=Config:Fuel&amp;diff=490</id>
		<title>Config:Fuel</title>
		<link rel="alternate" type="text/html" href="https://content.epicefi.com/wiki/index.php?title=Config:Fuel&amp;diff=490"/>
		<updated>2026-08-07T13:54:43Z</updated>

		<summary type="html">&lt;p&gt;Agnese: Added DFCO exit enrichment explanation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Fuel menu.jpg|thumb|Fuel menu]]&lt;br /&gt;
&lt;br /&gt;
= Fuel =&lt;br /&gt;
This menu is used for any fuel-related configuration and tuning. &lt;br /&gt;
&lt;br /&gt;
This menu enables the configuration of:&lt;br /&gt;
&lt;br /&gt;
* Physical hardware - output pins&lt;br /&gt;
* VE tables&lt;br /&gt;
* Fuel trims (short and long)&lt;br /&gt;
* Lambda control (AFR correction)&lt;br /&gt;
* IAT/CLT/Other corrections&lt;br /&gt;
* Table switch&lt;br /&gt;
* And others...&lt;br /&gt;
&lt;br /&gt;
You can find the individual options below.&lt;br /&gt;
&lt;br /&gt;
= VE Table =&lt;br /&gt;
This is the main VE table used for fuel calculations.&lt;br /&gt;
&lt;br /&gt;
==== Override VE table load axis ====&lt;br /&gt;
Override the Y axis (load) value used for the VE table.&lt;br /&gt;
&lt;br /&gt;
{{Warning|This is for advanced users only. If you aren&#039;t sure you need this, you probably don&#039;t need this.}}&lt;br /&gt;
&lt;br /&gt;
==== Fuel strategy ====&lt;br /&gt;
See [[Setup#Fuel strategy|Fuel strategy.]]&lt;br /&gt;
&lt;br /&gt;
= Injector setup =&lt;br /&gt;
This menu enables the configuration of the physical injector layout and output configuration&lt;br /&gt;
&lt;br /&gt;
== Injection configuration ==&lt;br /&gt;
&lt;br /&gt;
=== Injection ===&lt;br /&gt;
&lt;br /&gt;
==== Injection Enabled ====&lt;br /&gt;
Fuel Injection is enabled&lt;br /&gt;
&lt;br /&gt;
==== Disable Fuel Pump ====&lt;br /&gt;
Disable fuel pump&lt;br /&gt;
&lt;br /&gt;
==== Disable injector prime pulse ====&lt;br /&gt;
Do not prime injectors&lt;br /&gt;
&lt;br /&gt;
==== Mode ====&lt;br /&gt;
This configures the injection model:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Simultaneous&#039;&#039;&#039; - All injectors are opened at the same time, with the fuel load being divided over the whole 720 degree cycle (a 4 cylinder engine will squirt 4 times over 720 degrees).&lt;br /&gt;
* &#039;&#039;&#039;Sequential&#039;&#039;&#039; - All injectors are opened at their commanded angle and the cycle is tracked over 720 degrees. Requires [[Cam Sensor]] or [[Setup#Guess sync RPM threshold(rpm)|phase guessing]] to function properly.&lt;br /&gt;
* &#039;&#039;&#039;Batch&#039;&#039;&#039; - Injectors are opened at their commanded angle along with their wasted pair. The same principle as wasted spark.&lt;br /&gt;
* &#039;&#039;&#039;Single Point&#039;&#039;&#039; - The same as simultaneous but with a single channel, with fuel calculations to suit.&lt;br /&gt;
{{Warning|Injectors are always wired to their respective cylinders and epicEFI handles the firing order and injector opening. Batch wiring is only needed when the ECU does not have enough outputs to wire single injectors to a single channel.}}&lt;br /&gt;
&lt;br /&gt;
==== Alpha-N uses IAT density correction ====&lt;br /&gt;
When set to true, it enables intake air temperature-based corrections for Alpha-N tuning strategies.&lt;br /&gt;
&lt;br /&gt;
==== Override VE table load axis ====&lt;br /&gt;
Override the Y axis (load) value used for the VE table.&lt;br /&gt;
&lt;br /&gt;
{{Warning|This is for advanced users only. If you aren&#039;t sure you need this, you probably don&#039;t need this.}}&lt;br /&gt;
&lt;br /&gt;
==== Override AFR table load axis ====&lt;br /&gt;
Override the Y axis (load) value used for the AFR table.&lt;br /&gt;
&lt;br /&gt;
{{Warning|This is for advanced users only. If you aren&#039;t sure you need this, you probably don&#039;t need this.}}&lt;br /&gt;
&lt;br /&gt;
==== Injection phase control mode ====&lt;br /&gt;
Defines when fuel is injected relative to the intake valve opening. Options include End of Injection or other timing references.&lt;br /&gt;
&lt;br /&gt;
=== Injector Settings ===&lt;br /&gt;
&lt;br /&gt;
==== Injector flow ====&lt;br /&gt;
This is your injector flow at the fuel pressure used in the vehicle.&lt;br /&gt;
&lt;br /&gt;
See units setting below.&lt;br /&gt;
&lt;br /&gt;
==== Injector flow units ====&lt;br /&gt;
Select whether to configure injector flow in volumetric flow (default, cc/min) or mass flow (g/s).&lt;br /&gt;
&lt;br /&gt;
==== Fuel rail pressure sensor ====&lt;br /&gt;
Select which fuel pressure sensor measures the pressure of the fuel at your injectors.&lt;br /&gt;
&lt;br /&gt;
==== Injector flow compensation mode ====&lt;br /&gt;
This is the injector flow compensation mode.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Manifold Referenced Pressure Regulator&#039;&#039;&#039; - The car is equipped with a manifold-pressure referenced pressure regulator.&lt;br /&gt;
* &#039;&#039;&#039;Returnless fuel system&#039;&#039;&#039; - The car is equipped with a returnless fuel system (regulator in tank or dead-head system).&lt;br /&gt;
* &#039;&#039;&#039;Sensed fuel pressure&#039;&#039;&#039;  - The car is equipped with a fuel pressure sensor.&lt;br /&gt;
&lt;br /&gt;
==== Injector reference pressure ====&lt;br /&gt;
This is the pressure at which your injector flow is known.&lt;br /&gt;
&lt;br /&gt;
For example if your injectors flow 400cc/min at 3.5 bar, enter 350 here.&lt;br /&gt;
&lt;br /&gt;
This is gauge pressure reference to atmospheric.&lt;br /&gt;
&lt;br /&gt;
==== Use small pulsewidth correction lookup curve ====&lt;br /&gt;
Use the [[Config:Fuel#Primary Injector Small Pulsewidth Table|small pulsewidth correction table]] to correct small injector pulse width behaviour.&lt;br /&gt;
&lt;br /&gt;
{{Warning_Mild|This feature should only be needed if running very big injectors (&amp;gt;1500cc) and you have idle fueling problems, or you want to limit the minimum pulsewidth. Do not use otherwise.}}&lt;br /&gt;
&lt;br /&gt;
=== Fuel characteristics ===&lt;br /&gt;
&lt;br /&gt;
==== Gasoline (E0) Stoichiometric ratio ====&lt;br /&gt;
Stoichiometric ratio for your primary fuel. When Flex Fuel is enabled, this value is used when the Flex Fuel sensor indicates E0.&lt;br /&gt;
&lt;br /&gt;
E0 = 14.7&lt;br /&gt;
&lt;br /&gt;
E10 = 14.1&lt;br /&gt;
&lt;br /&gt;
E85 = 9.9&lt;br /&gt;
&lt;br /&gt;
E100 = 9.0&lt;br /&gt;
&lt;br /&gt;
==== Ethanol (E100) Stoichiometric ratio ====&lt;br /&gt;
Stoichiometric ratio for your secondary fuel. This value is used when the Flex Fuel sensor indicates E100, typically 9.0&lt;br /&gt;
&lt;br /&gt;
==== Current Ethanol Content ====&lt;br /&gt;
Some pump gas has ethanol in it. Please adjust this to match what you fill up with.&lt;br /&gt;
&lt;br /&gt;
Use this as default ethanol content for fueling when no flex sensor present.&lt;br /&gt;
&lt;br /&gt;
This will scale Air/Fuel ratios and fueling accordingly.&lt;br /&gt;
&lt;br /&gt;
==== Global Fuel Correction (1=100%) ====&lt;br /&gt;
This is the global fuel correction applied to the final pulse width.&lt;br /&gt;
&lt;br /&gt;
{{Warning|Please note that this is a rudimentary correction and should be used only for troubleshooting and diagnostics.}}&lt;br /&gt;
&lt;br /&gt;
==== Fuel flow rate smoothed alpha (display only) ====&lt;br /&gt;
This controls the logged &amp;quot;fuel flow rate&amp;quot; and how much smoothing is applied to that logged value. This has no actual impact on fuelling and the fuelling model.&lt;br /&gt;
&lt;br /&gt;
==== Use absolute fuel pressure for dead time calculation ====&lt;br /&gt;
This changes the deadtime calculation to use absolute pressure. Otherwise, differential pressure is used.&lt;br /&gt;
&lt;br /&gt;
== Injection hardware ==&lt;br /&gt;
&lt;br /&gt;
=== Injector Outputs ===&lt;br /&gt;
&lt;br /&gt;
==== Injection Output x ====&lt;br /&gt;
This is the physical output pin for the injector output for cylinder x.&lt;br /&gt;
&lt;br /&gt;
=== Injector Enable/Disable ===&lt;br /&gt;
&lt;br /&gt;
==== Injector x  disable ====&lt;br /&gt;
This menu is used to disable individual injector outputs for troubleshooting.&lt;br /&gt;
&lt;br /&gt;
=== Cylinder Banks - Closed Loop Feedback ===&lt;br /&gt;
&lt;br /&gt;
==== Cylinder x ====&lt;br /&gt;
Select which fuel correction bank this cylinder belongs to. Group cylinders that share the same O2 sensor 1.&lt;br /&gt;
&lt;br /&gt;
== Injector Deadtimes (BatV vs fuel pressure) ==&lt;br /&gt;
This table defines the [[Injector Dead Time]]. The dead time is the time in milliseconds that it takes for the injector to open and start spraying fuel. It is pressure and voltage dependant.&lt;br /&gt;
&lt;br /&gt;
This table configures the relation of pressure/voltage and deadtime in ms.&lt;br /&gt;
&lt;br /&gt;
== Injector Timing Advance ==&lt;br /&gt;
This is injection angle in relation to TDC ignition stroke. Values are ATDC. i.e. If ignition timing is 14 advance, this value has to be -14 to match that event. -400 in this table would put injection well into the intake stroke. 50 here is 50 degrees after TDC compression stroke&lt;br /&gt;
&lt;br /&gt;
==== Override the Y axis (load) value used for the injector advance table. ====&lt;br /&gt;
Override the Y axis (load) value used for the injector advance table.&lt;br /&gt;
&lt;br /&gt;
{{Warning|Please note that this is a rudimentary correction and should be used only for troubleshooting and diagnostics.}}&lt;br /&gt;
&lt;br /&gt;
== Primary Injector Small Pulsewidth Table ==&lt;br /&gt;
&lt;br /&gt;
This is the injector [[Config:Fuel#Use small pulsewidth correction lookup curve|small pulsewidth correction]]. This table is used to re-map a small pulsewidth to a bigger one or vice-versa.&lt;br /&gt;
&lt;br /&gt;
This is used to improve idle behaviour and other transient situations.&lt;br /&gt;
&lt;br /&gt;
{{Warning_Mild|This feature should only be needed if running very big injectors (&amp;gt;1500cc) and you have idle fueling problems, or you want to limit the minimum pulsewidth. Do not use otherwise.}}&lt;br /&gt;
&lt;br /&gt;
== Primary Injector Small Pulsewth vs BatV multiplier ==&lt;br /&gt;
&lt;br /&gt;
This is the  [[Config:Fuel#Use small pulsewidth correction lookup curve|small pulsewidth correction]] in relation to battery voltage. Small pulse width behavour can change with battery voltage, and this can be used to correct that behaviour.&lt;br /&gt;
&lt;br /&gt;
{{Warning_Mild|This feature should only be needed if running very big injectors (&amp;gt;1500cc) and you have idle fueling problems, or you want to limit the minimum pulsewidth. Do not use otherwise.}}&lt;br /&gt;
&lt;br /&gt;
== Injector deadtime assisted tuning ==&lt;br /&gt;
&lt;br /&gt;
epicEFI firmware includes an &#039;&#039;&#039;Injector Deadtime Tuning Tool&#039;&#039;&#039; that works by alternating between sequential injection and batch injection on a schedule.&lt;br /&gt;
&lt;br /&gt;
This method works because switching between these two modes changes the number of injection events per engine cycle. In batch mode, the injector fires &#039;&#039;&#039;twice per cycle&#039;&#039;&#039;, while in sequential mode it fires &#039;&#039;&#039;once per cycle&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
In both cases, the total amount of fuel delivered per cycle remains the same. The difference is that in batch mode the fuel is split into two injection events, whereas in sequential mode it is delivered in a single event. Since injector deadtime is added to every injection event, the total added deadtime per cycle differs between the two modes.&lt;br /&gt;
&lt;br /&gt;
If the deadtime values are not accurate, switching between batch and sequential injection will result in a measurable change in AFR at the exhaust.&lt;br /&gt;
&lt;br /&gt;
The epicEFI Injector Deadtime Tuning Assist automatically switches between sequential and batch modes on a set schedule, allowing you to log the AFR difference. You can then adjust the deadtime table until no AFR change is observed between the two modes, indicating that the injected fuel quantity is consistent in both cases.&lt;br /&gt;
&lt;br /&gt;
It’s advisable to disable [[Config:Fuel#Short term fuel trim Setup|short-term fuel trims]] and to run this test with the engine fully warmed up.&lt;br /&gt;
&lt;br /&gt;
At first, the engine may struggle to stay running when the mode switch occurs. This is expected if your deadtime values are off, since those inaccuracies are usually already “hidden” in the VE table.&lt;br /&gt;
&lt;br /&gt;
If the engine goes too lean and won’t stay running, you can use the [[Config:Fuel#Global Fuel Correction (1=100%)|Global Fuel Correction]] to richen the mixture enough to keep it alive.&lt;br /&gt;
&lt;br /&gt;
The Global Fuel Correction does not affect injector deadtime. It simply scales the overall fuel delivery, allowing you to keep the engine running while you dial in the correct deadtime values.&lt;br /&gt;
&lt;br /&gt;
==== Enable deadtime tuning cycle ====&lt;br /&gt;
This is the master switch for the tool.&lt;br /&gt;
&lt;br /&gt;
==== Use sequential ====&lt;br /&gt;
Enable sequential [[Config:Fuel#Mode|fuel mode]] into the scheduled switching.&lt;br /&gt;
&lt;br /&gt;
==== Use batch ====&lt;br /&gt;
Enable batch [[Config:Fuel#Mode|fuel mode]] into the scheduled switching.&lt;br /&gt;
&lt;br /&gt;
==== Use simultaneous ====&lt;br /&gt;
Enable simultaneous  [[Config:Fuel#Mode|fuel mode]] into the scheduled switching.&lt;br /&gt;
&lt;br /&gt;
==== Cycles ====&lt;br /&gt;
Switch fuel strategy every this many cycles of the engine.&lt;br /&gt;
&lt;br /&gt;
==== Min RPM ====&lt;br /&gt;
Minimum RPM for the tool to run.&lt;br /&gt;
&lt;br /&gt;
== Injector Advance Assisted Tuning ==&lt;br /&gt;
&lt;br /&gt;
epicEFI firmware includes the &#039;&#039;&#039;Injector Advance Tuning Tool&#039;&#039;&#039;. This enables the optimization of the injector close angle (also called end-of-injection) by offsetting it on a schedule. This enables you to test out the injection end angle by listening how the engine runs.&lt;br /&gt;
&lt;br /&gt;
Let&#039;s say the injector needs to close at 90 degrees crankshaft angle and the tool is enabled and configured for -10 and +10 degrees. The injection end-of-injection will be changed by each step each number of cycles from 80 to 100 degrees.&lt;br /&gt;
&lt;br /&gt;
==== Enable ====&lt;br /&gt;
Enable Injector Advance Tuning Assist&lt;br /&gt;
&lt;br /&gt;
==== Degrees per step ====&lt;br /&gt;
How many degrees to increment each scheduled event.&lt;br /&gt;
&lt;br /&gt;
==== Cycles per step ====&lt;br /&gt;
How many crankshaft cycles occur per step.&lt;br /&gt;
&lt;br /&gt;
==== Min RPM ====&lt;br /&gt;
Enable above this RPM&lt;br /&gt;
&lt;br /&gt;
==== Max RPM ====&lt;br /&gt;
Disable above this RPM&lt;br /&gt;
&lt;br /&gt;
==== Start Retard (deg) ====&lt;br /&gt;
Start injector advance offset&lt;br /&gt;
&lt;br /&gt;
==== End Retard (deg) ====&lt;br /&gt;
End injector advance offset&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl x ==&lt;br /&gt;
&lt;br /&gt;
This is the fuel trim per-cylinder.&lt;br /&gt;
&lt;br /&gt;
= Staged injection =&lt;br /&gt;
This is the configuration for [[Staged Injection]]. Used for staging of injectors (primary-secondary) and the associated corrections.&lt;br /&gt;
&lt;br /&gt;
== Staged Injector Settings ==&lt;br /&gt;
&lt;br /&gt;
==== Staged Injection Enable ====&lt;br /&gt;
This is the master switch for staged injection.&lt;br /&gt;
&lt;br /&gt;
==== Secondary injector flow ====&lt;br /&gt;
The flow rate of the secondary injectors.&lt;br /&gt;
&lt;br /&gt;
See [[Config:Fuel#Injector flow|Injector flow]]&lt;br /&gt;
&lt;br /&gt;
==== Secondary injector flow compensation mode ====&lt;br /&gt;
The flow compensation mode.&lt;br /&gt;
&lt;br /&gt;
See [[Config:Fuel#Injector flow compensation mode|Injector flow compensation mode]]&lt;br /&gt;
&lt;br /&gt;
==== Secondary injector reference pressure ====&lt;br /&gt;
The secondary injectors reference pressure.&lt;br /&gt;
&lt;br /&gt;
See [[Config:Fuel#Injector reference pressure|Injector reference pressure]]&lt;br /&gt;
&lt;br /&gt;
==== Use small pulsewidth correction lookup curve ====&lt;br /&gt;
See [[Config:Fuel#Use small pulsewidth correction lookup curve|Use small pulsewidth correction lookup curve]]&lt;br /&gt;
&lt;br /&gt;
== Staged Injector Deadtimes ==&lt;br /&gt;
This is the deadtime of the secondary injectors.&lt;br /&gt;
&lt;br /&gt;
See [[Config:Fuel#Injector Deadtimes (BatV vs fuel pressure)|Injector Deadtimes (BatV vs fuel pressure)]]&lt;br /&gt;
&lt;br /&gt;
== Staged Injector outputs ==&lt;br /&gt;
&lt;br /&gt;
==== Injection Stage 2 Output x ====&lt;br /&gt;
These are the physical output pins for the secondary injection stage.&lt;br /&gt;
&lt;br /&gt;
== Staged Injector % table ==&lt;br /&gt;
&lt;br /&gt;
Dtaged injector % table is how much of the staged injector to be used at RPM vs load. 0% means here all primary, and 100% all secondary fuel injectors.&lt;br /&gt;
&lt;br /&gt;
== Staged Injector Small Pulsewidth Table ==&lt;br /&gt;
&lt;br /&gt;
This is the small pulsewidth correction for the secondary injection stage.&lt;br /&gt;
&lt;br /&gt;
See [[Config:Fuel#Primary Injector Small Pulsewidth Table|Primary Injector Small Pulsewidth Table]]&lt;br /&gt;
&lt;br /&gt;
= Target AFR =&lt;br /&gt;
This is the target lambda/air fuel ratio that is used for corrections, [[Config:Fuel#Long Term Fuel Trim|LTFT]], [[Config:Fuel#Short Term Fuel Trim|STFT]] and fuel calculations.&lt;br /&gt;
&lt;br /&gt;
= Target AFR warmup enrichment (CLT) =&lt;br /&gt;
This is the AFR ratio target correction in regards to warmup enrichment.&lt;br /&gt;
&lt;br /&gt;
1.0 means no correction.&lt;br /&gt;
&lt;br /&gt;
1.2 means 20% richer fuel target&lt;br /&gt;
&lt;br /&gt;
0.8 means 20% leaner fuel target&lt;br /&gt;
&lt;br /&gt;
= Manual warmup enrichment (CLT) =&lt;br /&gt;
This is the manual warmup enrichment in regards to coolant temperature. This is a global multiplier.&lt;br /&gt;
&lt;br /&gt;
1.0 means no correction.&lt;br /&gt;
&lt;br /&gt;
1.2 means 20% richer mixture&lt;br /&gt;
&lt;br /&gt;
0.8 means 20% leaner mixture&lt;br /&gt;
&lt;br /&gt;
= Intake air temp correction (IAT) =&lt;br /&gt;
This is the intake air temp correction curve. This is a global multiplier.&lt;br /&gt;
&lt;br /&gt;
1.0 means no correction.&lt;br /&gt;
&lt;br /&gt;
1.2 means 20% richer mixture&lt;br /&gt;
&lt;br /&gt;
0.8 means 20% leaner mixture&lt;br /&gt;
&lt;br /&gt;
= Deceleration fuel cutoff (DFCO) =&lt;br /&gt;
&lt;br /&gt;
==== Enable Coasting Fuel Cutoff ====&lt;br /&gt;
This setting disables fuel injection while the engine is in overrun, this is useful as a fuel saving measure and to prevent back firing.&lt;br /&gt;
&lt;br /&gt;
==== Disable fuel cut on clutch ====&lt;br /&gt;
Inhibits DFCO from activating when the clutch is pressed. This helps prevent transient knock during shifts.&lt;br /&gt;
&lt;br /&gt;
==== No cut below CLT ====&lt;br /&gt;
Fuel cutoff is disabled when the engine is cold.&lt;br /&gt;
&lt;br /&gt;
==== RPM cut fuel above ====&lt;br /&gt;
This sets the RPM above which fuel cut is active.&lt;br /&gt;
&lt;br /&gt;
==== RPM restore fuel below ====&lt;br /&gt;
This sets the RPM below which fuel cut is deactivated, this prevents jerking or issues transitioning to idle&lt;br /&gt;
&lt;br /&gt;
==== Vehicle speed cut above ====&lt;br /&gt;
Above this speed, allow DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears.&lt;br /&gt;
&lt;br /&gt;
==== Vehicle speed restore below ====&lt;br /&gt;
Below this speed, disable DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears.&lt;br /&gt;
&lt;br /&gt;
==== Cut fuel below TPS ====&lt;br /&gt;
Throttle position below which fuel cut is active. With an electronic throttle enabled, this checks against pedal position.&lt;br /&gt;
&lt;br /&gt;
==== Cut fuel below MAP mode ====&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039; - MAP threshold cut fuel when conditions are met&lt;br /&gt;
* &#039;&#039;&#039;Table -&#039;&#039;&#039; Use a curve to vary the MAP threshold based on engine RPM&lt;br /&gt;
&lt;br /&gt;
==== Cut fuel below MAP ====&lt;br /&gt;
MAP value above which fuel injection is re-enabled.&lt;br /&gt;
&lt;br /&gt;
==== Fuel cut delay ====&lt;br /&gt;
Delay before cutting fuel. Set to 0 to cut immediately with no delay. May cause rumbles and pops out of your exhaust...&lt;br /&gt;
&lt;br /&gt;
==== Inhibit closed loop fuel after cut ====&lt;br /&gt;
Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut.&lt;br /&gt;
&lt;br /&gt;
==== Ignition retard during cut ====&lt;br /&gt;
Retard timing by this amount during DFCO. Smooths the transition back from fuel cut. After fuel is restored, ramp timing back in over the period specified.&lt;br /&gt;
&lt;br /&gt;
==== After cut timing ramp-in time ====&lt;br /&gt;
Smooths the transition back from fuel cut. After fuel is restored, ramp timing back in over the period specified.&lt;br /&gt;
&lt;br /&gt;
=== Use DFCO exit enrichment ===&lt;br /&gt;
&lt;br /&gt;
===== The phenomenon =====&lt;br /&gt;
During &#039;&#039;&#039;DFCO&#039;&#039;&#039;, injection stops while coasting. Fuel that normally sits as a film on the intake port / valve area keeps evaporating, so the walls dry out.&lt;br /&gt;
&lt;br /&gt;
When fuel returns, part of the first pulses sticks to those dry walls instead of reaching the cylinder. Commanded fuel is “correct” for steady state, but chamber AFR goes lean for a short time → hesitation, stumble, harsh re-fire, or (near idle) a stall risk.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DFCO exit enrichment&#039;&#039;&#039; is a brief rich multiplier applied right after DFCO ends, sized vs &#039;&#039;&#039;RPM × time-since-exit&#039;&#039;&#039;, to rebuild that film quickly. Many engines do not need it; enable it when logs show a lean spike or stumble at fuel restore.&lt;br /&gt;
&lt;br /&gt;
In epicEFI it sits early in the fuel path (after DFCO cut, before TPS AE). Wall-wetting, if enabled, still runs later per cylinder. Related helpers: DFCO timing retard/ramp, and pausing STFT after DFCO so closed loop does not fight the transient.&lt;br /&gt;
&lt;br /&gt;
==== Tip-in out of DFCO: why exit enrichment if TPS AE already exists? ====&lt;br /&gt;
In theory, opening the throttle after DFCO should be handled by &#039;&#039;&#039;TPS AE&#039;&#039;&#039;: delta TPS is large, AE fires, extra fuel covers the accel transient.&lt;br /&gt;
&lt;br /&gt;
That only holds if the wall film is in a &#039;&#039;&#039;normal&#039;&#039;&#039; state. TPS AE is tuned for tip-in &#039;&#039;with fuel already flowing&#039;&#039; — some film already present, AE mainly covering extra air and the &#039;&#039;incremental&#039;&#039; wetting from the load step.&lt;br /&gt;
&lt;br /&gt;
After DFCO the starting condition is different:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!&lt;br /&gt;
!Normal tip-in&lt;br /&gt;
!Tip-in from DFCO&lt;br /&gt;
|-&lt;br /&gt;
|Wall film&lt;br /&gt;
|Roughly at steady state&lt;br /&gt;
|Depleted / dry&lt;br /&gt;
|-&lt;br /&gt;
|What TPS AE “knows”&lt;br /&gt;
|Throttle rate / TPS change&lt;br /&gt;
|Same — &#039;&#039;&#039;not&#039;&#039;&#039; cut duration or dryness&lt;br /&gt;
|-&lt;br /&gt;
|Typical AE sizing&lt;br /&gt;
|Enough for air + normal film dynamics&lt;br /&gt;
|Under-compensates the dry-wall deficit&lt;br /&gt;
|}&lt;br /&gt;
So AE answers “how fast did the driver open the throttle?” Exit enrichment answers “fuel just came back after a cut onto dry walls.” Those are different errors:&lt;br /&gt;
&lt;br /&gt;
* A &#039;&#039;&#039;gentle&#039;&#039;&#039; tip-in after a long cut → little AE, large film deficit → lean stumble even though AE “worked.”&lt;br /&gt;
* A &#039;&#039;&#039;sharp&#039;&#039;&#039; tip-in → lots of AE for air, but the film rebuild need is still largely set by how dry the walls are, not only by TPS rate → easy to get lean first, then rich if you inflate AE to fix DFCO.&lt;br /&gt;
&lt;br /&gt;
Exit enrichment supplies a &#039;&#039;&#039;DFCO-specific film rebuild&#039;&#039;&#039; (time/RPM table). TPS AE can stay tuned for normal accel. Use a modest exit % so the two do not stack into a rich misfire; if tip-in after DFCO is too rich, reduce one of them rather than both fighting the same symptom.&lt;br /&gt;
&lt;br /&gt;
Wall wetting can reduce how much exit enrichment you need (it models film continuously), but it is not a perfect substitute for an explicit “just exited fuel cut” feedforward when τ/β are imperfect or the cut was long.&lt;br /&gt;
&lt;br /&gt;
==== Closed-throttle return to idle ====&lt;br /&gt;
DFCO often ends because RPM falls below the DFCO-off threshold with the &#039;&#039;&#039;pedal still closed&#039;&#039;&#039;. TPS AE usually &#039;&#039;&#039;does not fire&#039;&#039;&#039;. Fuel must restart while RPM is falling into idle — low inertia, changing idle air/spark. A lean re-light here is much more likely to stumble or stall than the same spike at mid-RPM tip-in.&lt;br /&gt;
&lt;br /&gt;
For that case, exit enrichment (plus timing ramp and STFT pause) is the main dedicated fix; bias the table and &#039;&#039;&#039;dfcoExitEnrichmentMaxRpm&#039;&#039;&#039; toward the low-RPM / first few hundred ms window.&lt;br /&gt;
&lt;br /&gt;
==== Practical takeaway ====&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Idle catch after coast:&#039;&#039;&#039; exit enrichment matters because TPS AE is absent.&lt;br /&gt;
* &#039;&#039;&#039;Tip-in after DFCO:&#039;&#039;&#039; exit enrichment still helps because TPS AE assumes a wet film; after cut the film is dry, and AE magnitude tracks throttle rate, not dryness. Use exit enrich for the film, AE for the tip-in — lightly combined, not as two copies of the same correction.&lt;br /&gt;
&lt;br /&gt;
==== DFCO exit enrichment max RPM ====&lt;br /&gt;
This is the maximum RPM for DCFO exit enrichment.&lt;br /&gt;
&lt;br /&gt;
= DFCO MAP to RPM threshold =&lt;br /&gt;
DFCO will activate when operating below this curve. Used to allow a higher threshold at low RPM where less vaccuum is generated.&lt;br /&gt;
= Long Term Fuel Trim =&lt;br /&gt;
This configures the Long Term Fuel Trim. This is used to trim fuel over long periods of time, such as injector aging or similar factors.&lt;br /&gt;
&lt;br /&gt;
{{Info|To enable long term fuel trims, short term fuel trims should be configured and active.}}&lt;br /&gt;
&lt;br /&gt;
== Long term fuel trims ==&lt;br /&gt;
&lt;br /&gt;
=== Trim bank 1 ===&lt;br /&gt;
&lt;br /&gt;
=== Long term fuel trim ===&lt;br /&gt;
&lt;br /&gt;
==== Gathering Data ====&lt;br /&gt;
Enables lambda sensor long term fuel corrections data gathering into LTFT trim tables&lt;br /&gt;
{{Info|To enable long term fuel trims, short term fuel trims should be configured and active.}}&lt;br /&gt;
&lt;br /&gt;
==== Time const ====&lt;br /&gt;
Commonly referred as Integral gain.&lt;br /&gt;
&lt;br /&gt;
Time constant for correction while in this cell: this sets responsiveness of the closed loop correction. A value of 30.0 means it will try to make most of the correction within 30 seconds, and a value of 300.0 will try to correct within 5 minutes.&lt;br /&gt;
&lt;br /&gt;
Lower values makes the correction more sensitive, higher values slow the correction down.&lt;br /&gt;
&lt;br /&gt;
==== Max add ====&lt;br /&gt;
Maximum % that the long term fuel trim can add&lt;br /&gt;
&lt;br /&gt;
==== Max remove ====&lt;br /&gt;
Maximum % that the long term fuel trim can remove&lt;br /&gt;
&lt;br /&gt;
==== Learning deadband ====&lt;br /&gt;
When close to correct AFR, pause correction. This can improve stability by not changing the adjustment if the error is extremely small, but is not required.&lt;br /&gt;
&lt;br /&gt;
==== Apply Correction ====&lt;br /&gt;
Apply LTFT trims into fuel calculation on top of VE table.&lt;br /&gt;
&lt;br /&gt;
We do not adjust VE table automatically, please click &#039;Apply to VE&#039; if you want to adjust your VE tables and reset trims.&lt;br /&gt;
&lt;br /&gt;
==== Enable Autosave LTFT ====&lt;br /&gt;
Automatically save Long Term Fuel trim to backup&lt;br /&gt;
&lt;br /&gt;
==== Enable Writes While Engine runs (experimental) every 10 minutes ====&lt;br /&gt;
This enables configuration writes every 10 minutes while the engine runs.&lt;br /&gt;
{{Warning|This feature is experimental and could result in tune loss on the ECU. Use with caution.}}&lt;br /&gt;
&lt;br /&gt;
==== Refresh TS with live write every 10 minutes ====&lt;br /&gt;
Refreshes TunerStudio with the live write.&lt;br /&gt;
{{Warning|This feature is experimental and could result in tune loss on the ECU. Use with caution.}}&lt;br /&gt;
&lt;br /&gt;
==== Flash Write delay after engine off - seconds ====&lt;br /&gt;
Delay flash write after engine stop for this long.&lt;br /&gt;
&lt;br /&gt;
== Long Term Fuel Trim Bank 1 - BACKUP ==&lt;br /&gt;
This is the bank 1 long term fuel trim backup. On ECU boot, this is copied into the active table.&lt;br /&gt;
&lt;br /&gt;
== Long Term Fuel Trim Bank 2 - BACKUP ==&lt;br /&gt;
This is the bank 1 long term fuel trim backup. On ECU boot, this is copied into the active table.&lt;br /&gt;
&lt;br /&gt;
= Short Term Fuel Trim =&lt;br /&gt;
This is used to configure STFT. This trim is applied fast and used to correct the fuel in very short periods of time.&lt;br /&gt;
&lt;br /&gt;
== Short term fuel trim Setup ==&lt;br /&gt;
&lt;br /&gt;
=== Short term fuel trim ===&lt;br /&gt;
&lt;br /&gt;
==== Short term fuel trim ====&lt;br /&gt;
Enables lambda sensor closed loop feedback for fuelling.&lt;br /&gt;
&lt;br /&gt;
==== CAN BOX AFR Trim range ADD MAX (+) (lambda) ====&lt;br /&gt;
maximum afr trim&lt;br /&gt;
&lt;br /&gt;
==== CAN BOX AFR Trim range REMOVE MAX(-)(lambda) ====&lt;br /&gt;
minimum afr trim&lt;br /&gt;
&lt;br /&gt;
==== Logged Tuned VE correction multiplier ====&lt;br /&gt;
Multiplier for corrections applied to tuned VE that&#039;s logged&lt;br /&gt;
&lt;br /&gt;
==== Startup delay ====&lt;br /&gt;
Delay after starting the engine before beginning closed loop correction.&lt;br /&gt;
&lt;br /&gt;
==== After DFCO delay ====&lt;br /&gt;
Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut.&lt;br /&gt;
&lt;br /&gt;
==== After DFCO pause or disable STFT ====&lt;br /&gt;
This eliminates the interference between [[Config:Fuel#Deceleration fuel cutoff (DFCO)|DFCO]] and SFTF.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;True&#039;&#039;&#039; - Pauses the short term fuel trim&lt;br /&gt;
* &#039;&#039;&#039;False&#039;&#039;&#039; - Disable STFT after DFCO is active   &lt;br /&gt;
&lt;br /&gt;
==== Minimum CLT for correction ====&lt;br /&gt;
Below this temperature, correction is disabled.&lt;br /&gt;
&lt;br /&gt;
==== Use AFR (Gasoline scale) or Lambda for limits ====&lt;br /&gt;
Use Lambda or AFR for limits&lt;br /&gt;
&lt;br /&gt;
==== Minimum AFR for correction (Gasoline scale) ====&lt;br /&gt;
Below this AFR, correction is paused&lt;br /&gt;
&lt;br /&gt;
This is corrected for current flex fuel percentage.&lt;br /&gt;
&lt;br /&gt;
==== Maximum AFR for correction (Gasoline scale) ====&lt;br /&gt;
Above this AFR, correction is paused&lt;br /&gt;
&lt;br /&gt;
This is corrected for current flex fuel percentage.&lt;br /&gt;
&lt;br /&gt;
==== Minimum Lambda for correction ====&lt;br /&gt;
Below this Lambda, correction is paused&lt;br /&gt;
&lt;br /&gt;
This is corrected for current flex fuel percentage.&lt;br /&gt;
&lt;br /&gt;
==== Maximum Lambda for correction ====&lt;br /&gt;
Above this Lambda, correction is paused&lt;br /&gt;
&lt;br /&gt;
This is corrected for current flex fuel percentage&lt;br /&gt;
&lt;br /&gt;
==== Adjustment deadband_rich - MAX RICH % ====&lt;br /&gt;
When close to correct AFR from rich side, pause correction. This can improve stability by not changing the adjustment if the error is extremely small, but is not required.&lt;br /&gt;
&lt;br /&gt;
==== Adjustment deadband_lean - MAX LEAN % ====&lt;br /&gt;
When close to correct AFR from lean side , pause correction. This can improve stability by not changing the adjustment if the error is extremely small, but is not required.&lt;br /&gt;
&lt;br /&gt;
==== Ignore error magnitude (error is always 0.1% - simple mode) ====&lt;br /&gt;
If enabled, adjust at a constant rate instead of a rate proportional to the current lambda error. This mode may be easier to tune, and more tolerant of sensor noise.&lt;br /&gt;
&lt;br /&gt;
== Short term fuel trim Time Constant (I) ==&lt;br /&gt;
&lt;br /&gt;
This is the integral component of the short term fuel trim.&lt;br /&gt;
&lt;br /&gt;
== Short term fuel trim Add Authority (+) ==&lt;br /&gt;
Define how much fuel the short-term trim system is allowed to add at a given RPM vs. load (MAP/AFR) point.&lt;br /&gt;
&lt;br /&gt;
For example, if you want the system to only add fuel in boost and never remove it, you can set the &#039;&#039;&#039;Remove Map&#039;&#039;&#039; to 0 above 100 kPa and above, say, 2000 RPM.&lt;br /&gt;
&lt;br /&gt;
== Short term fuel trim Remove Authority (-) ==&lt;br /&gt;
&lt;br /&gt;
Define how much fuel the short-term trim system is allowed to add at a given RPM vs. load (MAP/AFR) point.&lt;br /&gt;
&lt;br /&gt;
If you want the fuel trim to reset immediately on lift-off (when vacuum drops very low and the engine rides the bottom row of the map), you can set the authority to 0 in that area.&lt;br /&gt;
&lt;br /&gt;
= VE Table Switch =&lt;br /&gt;
&lt;br /&gt;
== VE Table Switch x Settings ==&lt;br /&gt;
&lt;br /&gt;
==== VE Table Switch x Pin ====&lt;br /&gt;
Full table switch or blend pin.&lt;br /&gt;
&lt;br /&gt;
To find the actual value for your hardware, see [[Hardware]].&lt;br /&gt;
&lt;br /&gt;
==== VE Table Switch x Pin Mode ====&lt;br /&gt;
This is the pin mode for the switch input pin.&lt;br /&gt;
&lt;br /&gt;
See [[Hardware:ECU input mode selection|ECU input mode selection]].&lt;br /&gt;
&lt;br /&gt;
==== VE Table Switch x Parameter ====&lt;br /&gt;
This defines the table switch parameter.&lt;br /&gt;
&lt;br /&gt;
==== VE Table Switch x Blend Mode ====&lt;br /&gt;
Blend mode adds or multiplies the switch table with base, default is switch.&lt;br /&gt;
&lt;br /&gt;
==== VE Table Switch x Y axis override ====&lt;br /&gt;
This overrides the Y axis of the table switch table.&lt;br /&gt;
&lt;br /&gt;
== VE Table Switch x ==&lt;br /&gt;
&lt;br /&gt;
This is the table which is used after switching/blending.&lt;br /&gt;
&lt;br /&gt;
= Target AFR Table Switch =&lt;br /&gt;
&lt;br /&gt;
== Target AFR Table Switch 1 Settings ==&lt;br /&gt;
&lt;br /&gt;
==== Target AFR Table Switch 1 Pin ====&lt;br /&gt;
Full table switch or blend pin&lt;br /&gt;
&lt;br /&gt;
To find the actual value for your hardware, see [[Hardware]].&lt;br /&gt;
&lt;br /&gt;
==== Target AFR Table Switch 1 Pin Mode ====&lt;br /&gt;
See [[Hardware:ECU input mode selection|ECU input mode selection]].&lt;br /&gt;
&lt;br /&gt;
==== Target AFR Table Switch 1 Parameter ====&lt;br /&gt;
This defines the table switch parameter.&lt;br /&gt;
&lt;br /&gt;
==== Target AFR Table Switch 1 Blend Mode ====&lt;br /&gt;
Blend mode adds or multiplies the switch table with base, default is switch.&lt;br /&gt;
&lt;br /&gt;
==== Target AFR Table Switch 1 Y axis override ====&lt;br /&gt;
This overrides the Y axis of the table switch table.&lt;br /&gt;
&lt;br /&gt;
== Target AFR Table Switch 1 ==&lt;br /&gt;
&lt;br /&gt;
This is the table which is used after switching/blending.&lt;br /&gt;
&lt;br /&gt;
= Fuel Corrections =&lt;br /&gt;
&lt;br /&gt;
== Barometric pressure correction ==&lt;br /&gt;
&lt;br /&gt;
This is the barometric pressure correction in regards with a baro sensor.&lt;br /&gt;
&lt;br /&gt;
== Charge temperature estimation ==&lt;br /&gt;
This is the charge air estimation used to approximate the cylinder air/fuel charge temperature based on CLT and IAT.&lt;br /&gt;
&lt;br /&gt;
==== Mode ====&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;RPM+TPS&#039;&#039;&#039; - Use RPM and TPS for air charge estimation&lt;br /&gt;
* &#039;&#039;&#039;Air Mass Interpolation&#039;&#039;&#039; - Use the air mass interpolation method for charge air estimation&lt;br /&gt;
* &#039;&#039;&#039;Table&#039;&#039;&#039; - Use the table for charge temperature estimation&lt;br /&gt;
&lt;br /&gt;
==== Increase rate limit ====&lt;br /&gt;
Maximum allowed rate of increase allowed for the estimated charge temperature&lt;br /&gt;
&lt;br /&gt;
==== Decrease rate limit ====&lt;br /&gt;
Maximum allowed rate of decrease allowed for the estimated charge temperature&lt;br /&gt;
&lt;br /&gt;
=== RPM+TPS mode ===&lt;br /&gt;
&lt;br /&gt;
==== Low RPM/Low TPS ====&lt;br /&gt;
The low RPM/low TPS coefficient for estimation.&lt;br /&gt;
&lt;br /&gt;
==== Low RPM/High TPS ====&lt;br /&gt;
The low RPM/high TPS coefficient for estimation.&lt;br /&gt;
&lt;br /&gt;
==== High RPM/Low TPS ====&lt;br /&gt;
The high RPM/low TPS coefficient for estimation.&lt;br /&gt;
&lt;br /&gt;
==== High RPM/High TPS ====&lt;br /&gt;
The high RPM/high TPS coefficient for estimation.&lt;br /&gt;
&lt;br /&gt;
=== Airflow interpolation mode ===&lt;br /&gt;
&lt;br /&gt;
==== Low flow coefficient ====&lt;br /&gt;
Heat transfer coefficient at zero flow.&lt;br /&gt;
&lt;br /&gt;
* 0 means the air charge is fully heated to the same temperature as the coolant temperature&lt;br /&gt;
* 1 means the air charge gains no heat, and enters the cylinder at the temperature measured by IAT.&lt;br /&gt;
&lt;br /&gt;
==== High flow coefficient ====&lt;br /&gt;
Heat transfer coefficient at high flow, as defined by &amp;quot;max air flow&amp;quot;.&lt;br /&gt;
0 means the air charge is fully heated to the same temperature as CLT.&lt;br /&gt;
1 means the air charge gains no heat, and enters the cylinder at the temperature measured by IAT.&lt;br /&gt;
&lt;br /&gt;
==== Max air flow ====&lt;br /&gt;
High flow point for heat transfer estimation.&lt;br /&gt;
Set this to perhaps 50-75% of your maximum airflow at wide open throttle.&lt;br /&gt;
&lt;br /&gt;
= User Switchable Lambda Target Multipliers =&lt;br /&gt;
This affects the AFR target output, this is a multiplier, and the value stacks with the multipliers.&lt;br /&gt;
&lt;br /&gt;
0.9 = MORE fuel (lower lambda)&lt;br /&gt;
&lt;br /&gt;
1.1 = LESS fuel (higher lambda)&lt;br /&gt;
&lt;br /&gt;
==== Target Lambda Multiplier x pin ====&lt;br /&gt;
This is the physical input pin for the lambda multiplier.&lt;br /&gt;
&lt;br /&gt;
To find the actual value for your hardware, see [[Hardware]].&lt;br /&gt;
&lt;br /&gt;
==== Target Lambda Multiplier x pin mode ====&lt;br /&gt;
See [[Hardware:ECU input mode selection|ECU input mode selection]].&lt;br /&gt;
&lt;br /&gt;
==== Target Lambda Multiplier x value ====&lt;br /&gt;
This is the multiplier value for the lambda target.&lt;br /&gt;
&lt;br /&gt;
= TPS Acceleration Enrichment/Wall Wetting AE =&lt;br /&gt;
This is the acceleration enrichment (AE) setting. They can be&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Delta-TPS based&#039;&#039;&#039; - The TPS delta (TPS speed) is used for acceleration enrichment (simpler)&lt;br /&gt;
* &#039;&#039;&#039;Wall Wetting&#039;&#039;&#039; - Complex wall-wetting algorithm based on fuel evaporation time&lt;br /&gt;
&lt;br /&gt;
== Acceleration enrichment Base settings(AE) ==&lt;br /&gt;
&lt;br /&gt;
=== Acceleration Enrichment Methods ===&lt;br /&gt;
&lt;br /&gt;
==== Enable TPS Acceleration Enrichment ====&lt;br /&gt;
TPS acceleration enrichment enabled&lt;br /&gt;
&lt;br /&gt;
==== Enable wall wetting Acceleration Enrichment ====&lt;br /&gt;
Wall wetting accelerating enrichment enabled&lt;br /&gt;
&lt;br /&gt;
==== Use MAP estimate during transient ====&lt;br /&gt;
During the TPS AE period, use the MAP estimate table value instead of true MAP (if greater than real MAP). This basically briefly runs in alpha-n during a transient, then returns to normal speed-density mode.&lt;br /&gt;
&lt;br /&gt;
=== Wall Wetting ===&lt;br /&gt;
&lt;br /&gt;
==== Wall fueling model type ====&lt;br /&gt;
Specifies the wall-wetting mode.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Basic&#039;&#039;&#039; - Constants are used to vary tau/beta&lt;br /&gt;
* &#039;&#039;&#039;Advanced&#039;&#039;&#039; - Tables are used to vary tau/beta&lt;br /&gt;
&lt;br /&gt;
==== evaporation time constant / tau ====&lt;br /&gt;
Length of time the deposited wall fuel takes to dissipate after the start of acceleration.&lt;br /&gt;
&lt;br /&gt;
==== added to wall coef / beta ====&lt;br /&gt;
&lt;br /&gt;
* 0 = No fuel settling on port walls &lt;br /&gt;
* 1 = All the fuel settling on port walls &lt;br /&gt;
&lt;br /&gt;
Setting this to 0 disables the wall wetting enrichment.&lt;br /&gt;
&lt;br /&gt;
== TPS AE: Settings ==&lt;br /&gt;
&lt;br /&gt;
==== Enable TPS Acceleration Enrichment ====&lt;br /&gt;
TPS acceleration enrichment enabled&lt;br /&gt;
&lt;br /&gt;
==== TPS AE fast or slow callback ====&lt;br /&gt;
This is how fast the AE callback is invoked (how fast the AE is calculated)&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;True&#039;&#039;&#039; - 200Hz&lt;br /&gt;
* &#039;&#039;&#039;False&#039;&#039;&#039; - 20Hz&lt;br /&gt;
&lt;br /&gt;
==== Delta TPS Average Smoothing Factor ====&lt;br /&gt;
A higher alpha (closer to 1) means the EMA reacts more quickly to changes in the data.&lt;br /&gt;
&lt;br /&gt;
1 means no filtering, 0.98 would be some filtering.&lt;br /&gt;
&lt;br /&gt;
==== Use calculated threshold from averaged delta TPS ====&lt;br /&gt;
Use calcualted threshold from averaged delta TPS&lt;br /&gt;
&lt;br /&gt;
==== Average static threshold curve and dynamic threshold ====&lt;br /&gt;
when using dynamic threshold from averaged and multiplied deltatps, average with static threshold curve&lt;br /&gt;
&lt;br /&gt;
==== Sample Length ====&lt;br /&gt;
How long to look back for TPS-based acceleration enrichment. Increasing this time will trigger enrichment for longer when a throttle position change occurs.&lt;br /&gt;
&lt;br /&gt;
==== Instant Fuel Pulse ====&lt;br /&gt;
Send a simultaneous shot to all injectors upon TPS AE&lt;br /&gt;
&lt;br /&gt;
==== Instant Fuel Pulse Multiplier (global) ====&lt;br /&gt;
Extra shot multiplier&lt;br /&gt;
&lt;br /&gt;
==== Instant Fuel Pulse Inhibit Cycles ====&lt;br /&gt;
Inhibit Extra Shot for this many cycles&lt;br /&gt;
&lt;br /&gt;
==== TPS AE Burn Skip count ====&lt;br /&gt;
Hitting  &amp;quot;Burn&amp;quot; sometimes causes a spike in sensors, TPS AE burn skip count ignores AE triggers for the duration of that.&lt;br /&gt;
&lt;br /&gt;
==== TPS Accel resets EGO to 0% ====&lt;br /&gt;
TPS AE resets current EGO to 0%&lt;br /&gt;
&lt;br /&gt;
==== Inhibit closed loop fuel after accel ====&lt;br /&gt;
Pause closed loop fueling after acceleration fuel occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel accel.&lt;br /&gt;
&lt;br /&gt;
== TPS AE: Fuel multiplier by engine cycle ==&lt;br /&gt;
This is a TPS acceleration enrichment multiplier based on engine cycle&lt;br /&gt;
&lt;br /&gt;
== TPS AE: Delta TPS Average Multiplier for Dynamic Threshold ==&lt;br /&gt;
&lt;br /&gt;
Delta TPS average multiplier curve&lt;br /&gt;
&lt;br /&gt;
== TPS AE: TPS change threshold by RPM ==&lt;br /&gt;
&lt;br /&gt;
Above this curve, the engine is considered to be in acceleration enrichment.&lt;br /&gt;
&lt;br /&gt;
== TPS AE: TPS vs CLT AE SCALE ==&lt;br /&gt;
&lt;br /&gt;
This is the acceleration enrichment scale based on CLT&lt;br /&gt;
&lt;br /&gt;
== Predictive Map Blend Duration ==&lt;br /&gt;
&lt;br /&gt;
This is the duration for the [[Config:Fuel#MAP estimate table|MAP estimation]].&lt;br /&gt;
&lt;br /&gt;
== TPS AE: RPM correction ==&lt;br /&gt;
&lt;br /&gt;
This is the RPM correction for TPS acceleration enrichment.&lt;br /&gt;
&lt;br /&gt;
== TPS AE: CLT correction ==&lt;br /&gt;
&lt;br /&gt;
This is the CLT correction for TPS acceleration enrichment.&lt;br /&gt;
&lt;br /&gt;
== MAP estimate table ==&lt;br /&gt;
&lt;br /&gt;
This table represents MAP at a given TPS vs RPM, which we use if our MAP sensor has failed, or if we are using MAP Prediciton. This table should be a direct representation of MAP, you can tune it manually by disconnecting MAP sensor, and filling out the table with values that match an external gauge that shows MAP. Additionally, you can also use MLV to get the map values and/or generate the table for you.&lt;br /&gt;
&lt;br /&gt;
== TPS AE instant pulse multiplier vs RPM ==&lt;br /&gt;
This is the RPM multiplier for the [[Config:Fuel#Instant Fuel Pulse|instant fuel pulse.]] &lt;br /&gt;
&lt;br /&gt;
== TPS AE instant pulse multiplier vs TPS ==&lt;br /&gt;
This is the TPS multiplier for the [[Config:Fuel#Instant Fuel Pulse|instant fuel pulse.]] &lt;br /&gt;
&lt;br /&gt;
== TPS AE instant pulse multiplier vs MAP ==&lt;br /&gt;
This is the MAP multiplier for the [[Config:Fuel#Instant Fuel Pulse|instant fuel pulse.]] &lt;br /&gt;
&lt;br /&gt;
== TPS AE instant pulse multiplier vs CLT ==&lt;br /&gt;
This is the CLT multiplier for the [[Config:Fuel#Instant Fuel Pulse|instant fuel pulse.]] &lt;br /&gt;
&lt;br /&gt;
== Evap from wall time ==&lt;br /&gt;
This is the base evaporation time of the fuel based on coolant temperature (Tau)&lt;br /&gt;
&lt;br /&gt;
== Stick to wall fraction ==&lt;br /&gt;
This is the base impact fraction basaed on coolant temperature (Beta)&lt;br /&gt;
&lt;br /&gt;
== Evap from wall table ==&lt;br /&gt;
This is the Tau table in regards to MAP.&lt;br /&gt;
&lt;br /&gt;
== Stick to wall table ==&lt;br /&gt;
This is the Beta table in regards to MAP.&lt;br /&gt;
&lt;br /&gt;
= Throttle Model Flow =&lt;br /&gt;
Uses &amp;quot;flow through an orifice&amp;quot; set of [[wikipedia:Bernoulli&#039;s_principle|Bernouli&#039;s equations]] to attempt to calculate air mass. &lt;br /&gt;
{{Warning Mild|This is experimental/for educational purposes only.}}&lt;br /&gt;
&lt;br /&gt;
== Throttle effective % area (TPS -&amp;gt;% throttle boy area) ==&lt;br /&gt;
&lt;br /&gt;
This is the transfer function between TPS percentage and the throttle body area percentage.&lt;br /&gt;
&lt;br /&gt;
== Throttle Model Flow Discharge Coefficient ==&lt;br /&gt;
&lt;br /&gt;
This is the discharge coefficient.&lt;/div&gt;</summary>
		<author><name>Agnese</name></author>
	</entry>
</feed>