Deceleration Fuel Cutoff (DFCO)
DFCO removes fuel while the throttle is closed and the vehicle is coasting. It is
a hysteresis state machine, not a simple RPM cut. Enable it with
coastingFuelCutEnabled under Fuel > Deceleration fuel cutoff (DFCO).
DFCO can start only while the engine is running. The driver-throttle value must
be below coastingFuelCutTps, coolant must be above coastingFuelCutClt, and a
configured MAP sensor must read below coastingFuelCutMap or its RPM-dependent
threshold when useTableForDfcoMap is enabled. Missing TPS or CLT data blocks
DFCO; MAP is optional, but a configured MAP sensor with an invalid reading also
blocks it.
RPM and vehicle speed use separate entry and exit thresholds. RPM above
coastingFuelCutRpmHigh can enter the state, RPM below
coastingFuelCutRpmLow exits it, and values between the two hold the previous
state. Vehicle speed follows the same pattern with coastingFuelCutVssHigh and
coastingFuelCutVssLow; setting either speed field to zero disables the speed
check.
When disableFuelCutOnClutch is enabled, a valid clutchUpPin reading clutch-up
is required. A pin that is not configured does not block DFCO. After the state is
eligible, dfcoDelay postpones the cut. Fuel is restored when the state exits,
so do not expect one universal RPM recovery point. While the DFCO state is
active, dfcoRetardDeg is applied as timing retard; because dfcoDelay can
postpone fuel removal, retard can begin before the injectors stop. It ramps out
over dfcoRetardRampInTime after fuel returns. noFuelTrimAfterDfcoTime keeps
closed-loop fuel correction paused during that recovery period.
Use the dfcoActive channel to confirm cut state and fuelCutReason to check
whether the fuel cut came from DFCO or another limiter. Log throttle intent,
MAP, RPM, speed, coolant, clutch state, and dfcoActive together when diagnosing
entry or recovery problems.