Closed-Loop Fuel Control
What closed-loop does
In open-loop operation the ECU injects fuel based purely on the VE table and correction factors, with no feedback from the exhaust. Closed-loop control adds a feedback loop: the ECU reads the O2 sensor, compares the actual mixture to the target, and trims the fuel delivery up or down to reduce the error.
The correction is applied as a multiplier, typically called the short-term fuel trim (STFT). If the wideband reads lean (lambda > target), STFT increases above 1.0, adding fuel. If rich, STFT falls below 1.0, removing fuel. Some ECUs also accumulate a long-term fuel trim (LTFT) that persists across key cycles.
Closed-loop is not a substitute for a correctly tuned VE table. It is a fine-trim mechanism. If the VE table is 30% wrong, the closed-loop system will spend its entire authority trying to compensate and will still be wrong at any operating point where the trim limit is reached.
Narrowband closed-loop
A narrowband (NBO2) sensor produces a step voltage near stoichiometry: high when rich, low when lean, with a transition band of roughly +/-2% lambda. The ECU hunts either side of stoich, oscillating the mixture at a few Hz. This is normal and visible in any data log.
All that hunting only works at or very near stoichiometry (lambda = 0.97-1.03); ask a narrowband sensor to hold a rich WOT target and it has nothing useful to say. Within its window it is cheap and reliable, and entirely adequate for light-load cruise correction on a well-tuned petrol engine.
Wideband closed-loop
A wideband sensor measures lambda continuously across the full operating range (typically lambda = 0.65-1.6), so it can chase any target lambda, including rich power targets. That makes it useful across far more of the map than narrowband.
What it will not do is filter out bad information. Exhaust leaks, misfires and a cold sensor all corrupt the reading (see Lambda and AFR), and a trim driven in the wrong direction is more dangerous than no correction at all. Check the sensor is healthy and the exhaust system sound before relying on it.
Trim limits
Every closed-loop implementation has trim limits: the maximum percentage by which the fuel trim can adjust injection. Typical settings are +/-10-15%. If the required correction exceeds the limit, the trim saturates and the actual mixture diverges from target.
A saturated trim is a sign that the VE table needs correcting in that region, not that the trim limit should be increased. Increasing trim limits allows larger corrections but makes the system more sensitive to sensor faults.
Operating conditions for closed-loop
Most ECUs allow closed-loop to be gated by conditions:
| Condition | Why |
|---|---|
| Coolant temperature above threshold | Cold engines run deliberately rich; closing the loop before warm-up completes fights the warm-up enrichment |
| RPM within range | Very low idle and very high RPM are often excluded to avoid hunting |
| Load within range | Typically disabled at high load/WOT where a rich target is essential for engine protection |
| After-start delay | Gives the sensor time to reach operating temperature |
Getting these gates right matters. Closed-loop active during cold start enrichment will strip out the extra fuel the engine needs to run cleanly when cold.
Long-term fuel trims
Some ECUs accumulate closed-loop corrections into a long-term trim table, indexed by RPM and load. This is essentially a correction map that overlays the VE table. Over many drive cycles, the LTFT learns the systematic errors in the VE table and compensates automatically.
The right approach is to use the accumulated LTFT data to correct the underlying VE table, then reset the LTFT to zero. Leaving a large LTFT in place means the engine is dependent on learned correction; a reset (after a firmware update, for example) will cause poor running until it relearns.
Closed-loop and VE Analysis
VETuner's VE Analysis tool works from recorded wideband data rather than real-time closed-loop correction. It is complementary: use VE Analysis to build an accurate base VE table, then use closed-loop as a fine trim to absorb day-to-day variation (fuel quality, temperature, sensor drift).
Related guides
- Lambda and AFR - what the O2 sensor is actually measuring.
- VE Analysis - build the base VE table first, then let closed-loop trim it.
- Volumetric Efficiency Theory - why the VE table is the thing being corrected.