Closed loop fuel in plain English
Your fuel tables are an estimate of what the engine needs. O2 control checks that estimate in real time. The ECU reads the oxygen sensor, compares it with a target, and adds or removes a little fuel until they match. That's closed-loop fueling.
What the ECU compares against depends on your sensor:
- Wideband sensor: uses the Target Lambda table, so you can aim for any mixture, rich or lean.
- Narrowband sensor: uses a Target Voltage table. A narrowband can really only tell rich from lean near stoichiometric, so it's best for cruise and idle.
We use a wideband wherever possible. A CAN unit like the WB1 wideband controller is the usual choice, or the WB2 dual-channel kit for V engines with a sensor per bank.
Short term and long term trims
The live corrections are called Short Term Fuel Trims (STFT). They're temporary and aren't kept after the ECU powers down. If you turn on Long Term Fuel Trim, the ECU also builds a stored correction (LTFT) from the patterns it sees. That stored trim stays until you reset it. Think of STFT as reacting to right now, and LTFT as learning what your base map keeps getting wrong.
The settings
| Setting | What it does | Default | Our advice |
|---|---|---|---|
| Bank 1 / Bank 2 | Which sensor type and number feeds each bank | - | Bank 2 only appears when a second bank is configured |
| STFT Max Enrich | Largest rich correction allowed | - | Keep it modest. Big trims hide map or mechanical problems |
| STFT Max Disenrich | Largest lean correction allowed | - | Same idea. Limits how lean a bad sensor reading can push you |
| Target Oscillation Amplitude | Swings the target slightly rich and lean of stoich | 0 | Leave at 0 unless you need catalyst-style cycling. About 0.05V is typical with a narrowband |
| Warm Voltage | Narrowband voltage that proves the sensor is already hot | - | Lets a hot restart skip the warm-up wait |
| Initial Engine Running Time | How long the engine must run before closed loop starts | 30 | Gives the sensor time to heat. Skipped once the warm voltage is seen or a CAN wideband reports ready |
| Min Coolant Temp | O2 control is off below this coolant temperature | 0 | Raise it so cold-start enrichment isn't fought by the trims |
| Min RPM | O2 control is off below this rpm | 450 | Keeps trims out of cranking |
| Max RPM | O2 control is off above this rpm | 4500 | Mostly for narrowband setups, or your own preference |
| Transient Throttle Rate Limit | Pauses closed loop when throttle moves faster than this | - | Small, slow throttle changes can still be trimmed |
| Enable Max TPS / Max MAP | Optional upper limits for throttle and manifold pressure | - | Handy for keeping trims out of boost or wide-open throttle |
How target oscillation works
This only acts when the target is stoichiometric, lambda 1.0 or 14.7 AFR. Catalytic converters work best when the mixture keeps crossing back and forth over stoich, and this setting makes that happen on purpose. Say the amplitude is 0.2 AFR: the ECU aims for 14.5, and once it gets there, switches to aiming for 14.9, and keeps alternating. With a wideband the value is in your chosen AFR units. With a narrowband it's in sensor volts.
Where we use closed loop, and where we don't
On a street car we let O2 control run at idle, cruise and light load, where the engine spends most of its life and where accuracy matters for economy and drivability. We usually keep it out of boost and wide-open throttle with the Max MAP or Max TPS limits, and tune those areas carefully from logs instead. A sensor fault under boost shouldn't be able to lean the engine out.
If your logs show trims sitting far from zero in one area, fix the base fuel table there. The closed loop is there to correct small drift, not to carry a map that's wrong.
Tuning the response
How quickly and aggressively the trims move is set by the Proportional Gain, Integral Gain and Derivative Gain tables, and the O2 Control Delay. If trims hunt back and forth, the gains are usually too high. If they take ages to settle, they're too low.
O2 control FAQ
Why isn't closed loop active after a cold start?
Check the log for coolant temperature, running time and rpm against your minimums. On a cold engine, the Min Coolant Temp and Initial Engine Running Time will hold it off until conditions are right.
Should I run closed loop under boost?
We generally don't. With a quality wideband it's possible, but most tuners prefer a well-tuned open-loop map under boost and closed loop only where the load is light. Want a second opinion on your setup? Book a free consultation.




