In this entry you will find information about short-term fuel trims and long-term fuel trims. Description applies not only to N43/N53 engines, but to all progressive BMW engines.


Short-term fuel trim.

Short-term trim is analogous (for older control modules) or digital (nowadays control modules) solution, which stabilizes one or another parameter (creates closed loop solution).

For example, fuel trims works in following way:

a) by reading Lambda probe data, the engine control detects, if the fuel mixture is too lean or too rich;

b) depending of Lambda reading value, the engine control performs opposite “sign”/direction correction to fuel supply to fix the situation (it means, to compensate the differences).

They  are short-term (as already suggested by name) effect tool, which works continuously, while the engine is running. They are not stored in engine control unit between driving sessions.


Long-term fuel trim.

They are long-term effect tool, which complements short-term fuel trims. Differences form short-term tools:

a) long-term fuel trims are immediately modified only when/if the current (for example, fuel) short-term tools can’t deal with it’s task in certain time and deeper/more extensive total adjustments are necessary;

b) long-term fuel trims are stored in engine control unit and summoned every time, when the work is started;

c) nowadays engines create multi-dimension adaptation maps, which consist from data regarding: engine temperature, detonation sensors, fuel mixture, ignition, VANOS, EGR, accelerator pedal etc. information.


Both short-term and long-term fuel trims by their influence can be:

a) offset or additive (+/- influence) – it means, they add or minus current value to correct the situation;

b) multiplicative – it means, they multiples/divide with current value to achieve the necessary result.


In the image below you can see how N series engines perform short-term and long-term fuel trims:


N series engines (as an example) create short-term and long-term fuel trim for:

a) idle run situation (up to approximately 1200 RPM);

b) working range (above 1300 RPM and/or loads above 5 .. 10%).


For idle run range the corrections (short-term fuel trims) and adaptations (long-term fuel trims) of offset type are used. On idle run adaptations and compensations are performed within bank (in INPA visible in adaptation menu ../F5/F6)*, also individual adaptations to each cylinder (in INPA visible:../F5/Shift+F6/F1)* and ISTA D Rough run menu (absolute values; efficiency measurements) and Stoichiometric correction menu (fuel mixture corrections for each cylinder).


For mid and high load range multiplicative type short-term and long-term fuel trims are used.

*Note: In Rough run menu (../F5/F7), INPA shows  relative changes of efficiency for each cylinder. In this menu, the average value of each cylinder has to strive to reach value of 0, instant differences is an indication of problems with individual idle adaptations of cylinders.

ISTA D Rough run menu shows absolute values of registers. In this case, deflection from 0 shows long-term time deflections of each cylinder, short-term deflections – short-term unevenness of performance (efficiency). Stoichiometric correction menu shows offset corrections of fuel mixture for each of cylinders.


Simplified mathematics:

Opening time of injector’s nozzle in idle run: Ton_total=Ton_calc+Ton_adapt+Ton_comp

Opening time of nozzle in working range: Ton_total=Ton_calc*Ton_adapt*Ton_comp

Ton_calc: Theoretically calculated (by control unit) opening time of nozzles;
Ton_comp: effect of short-term fuel trims;
Ton_adapt: effect of long-term fuel trims.


Short-term and long-term fuel trim data of specific control unit can vary, but typically they are as following:

Short-term fuel trim range for fuel amount correction +/-8 .. 25%; long-term fuel trim map is upgraded after 8 .. 15 seconds;

Long-term fuel trim range for fuel amount correction: +/-30 .. 45%

Vital relationship – the maximum effect of long-term fuel trims is significantly (3 .. 5 times) wider than effect of short-term fuel trims (range).


Modifications of long-term fuel trims.

Long-term fuel trims can be modified:

a) by force: for example, in case of deep (out of range) short-term fuel trims; after deleting of long-term fuel trims;

b) with integrator – it means, that average value of corrections in longer period of time is calculated and it’s overwritten as middle point of short-term fuel trims.


Long-term fuel trims for N53 series engines are corrected by force:

a) if corrections overreach 15 .. 17% in more than 10 seconds;

b) if the overwriting is performed to warm engine, if the idle run is kept for longer time.

If N53 identifies conditions, which requires overwriting of long-term fuel trims for one bank, the long-term fuel trims of second bank are also overwritten.


Interpretation of short-term and long-term fuel trim data.

Open the section for engine and choose the analog blocks: press F5, then adaptations sub-menu by pressing F6. As a sample – menu of N52/N53/N54 engine.

BMW INPA adaptations menu

1. and 2. Two first lines: heating parameters for Lambda sensors (first line: wide-band or regulating probe, second line – control probe. In regular working mode: 20 .. 60%. If the heating is below 20%, it mean’s, that current probe is not heated to proper work temperature (example: the engine is not started; the engine is started after deleting long-term fuel trims and the control probes are not heated etc.);

3. Offset type long-term fuel trims for idle run mode (logically – as the value is closer to 0,00 mg, the situation is better – accurate initial compliance. Long-term fuel trims above 0 – the mixture is being enriched, below 0 – the fuel supply amount is reduced;

4. Multiplicative long-term fuel trims for mid-high load mode (as the value closer to 0,000, as better; with exception of N43/N53 engines, for which INPA with 1.01 loader these fuel trims constantly will show as 0,000, I recommend upgrade to loader 2.023 with correct representation of these values). Long-term fuel trims above 0 – the mixture is being enriched, below 0 – the fuel supply amount is reduced;

5. Correction (value of STFT integrator) in actual moment, expressed as a percentage. If long-term fuel trims are performed successfully and there are no sudden reason for some changes, corrections will be typically in range -10 .. +10%. In this case difference from 0 doesn’t means better result – it doesn’t matter, if corrections are above 0 or different from 0. Only one thing: significant and long-term differences (typically above or below 10 .. 12% for more than 10 seconds) means, that there is a need to perform (and it will be performed) change of long-term fuel trim values. It is a normal situation, if long-term fuel trims has been just now deleted, and new long-time fuel trims are being performed. If short-term fuel trims are (for long period of time) very different from 0 (more than 10 .. 12 %) shortly after long-term fuel trims has been performed – it is a cause for concern, and situation has to be explored: something has made changes in engine operation. Corrections above 0 – the fuel mixture is being enriched, corrections below 0 – the fuel mixture is made more lean;

6. Lambda value for wide-band (regulating) Lambda probes. L>1,0 – the mixture is lean, L<1,0 – the mixture is rich;

7. Voltages for wide-band Lambda probes (voltages, from witch values identified in line 6 are calculated) – actually this line complements line 6. When Lambda  is 1,0, usually U=2,0 V (it is interesting, that this voltage differs from very popular Bosch CJ110/CJ125 chipset, which reference voltage is 1,5 V). If Lambda increases, voltage also increases (the fuel mixture is getting more lean);

7. Output voltages of Lambda control probes – the good old classic: the average value of 0,45 V in case of Stoichiometric mixture. If the Lambda increases (the fuel mixture goes more lean) – voltage decreases.

Note: for N53B30 engine 10% of idle run short-term fuel trim corresponds to approximately 0,7 mg.



BMW adaptations sample

Light blue: the total range of long-term fuel trims +/-35%;

Dark blue: range of corrections, relatively +/-10%;

Black curve: the perfect correction of fuel mixture.

For a new engine (or directly after deleting long-term fuel trims) the long-term fuel trims are 0; short-term fuel trims works in range -10 .. +10%.

In the moment X short-term fuel trims are unable to correct the fuel mixture, event (1): longer than 10 seconds the necessary corrections goes out of range. In this moment DME calculates necessary corrections during this period of time (of last 10 seconds) and performs the changes in long-term fuel trim, increasing middle point of short-term fuel trims for +11% (+11% is the average value of period of time 1). From this moment correction works in range +1 .. +21%.

In the moment Y (obviously some changes in engine configuration, fuel, in performance of some sensor occurred) short-term fuel trims goes out of correction range: event (2), but this problem is shorter than 10 seconds – the range of long-term fuel trims has not been changed.

In the moment Z short-term fuel trims again goes out of correction range, this time for more that 10 seconds: event (3), and now the long-term fuel trim range is getting corrected, increasing short-term fuel trim middle point for additional +12%. Now the short-term fuel trims perform in range +13 .. +33% (in absolute values).

When the engine will start the new session (it will be switched off, then on), the short-term fuel trim middle point will be +23%, and short-term fuel trims will perform in range of +13 .. +33 %.


The main question: why everything has to be so complicated? Why is is not enough only with short-term fuel trims? Basically all systems of engine self-regulation are made the following way: short-term fuel trim perform closed loop (feedback) regulation, which means:

the sensor X measures the parameter Y, and accordingly to deflection from perfect situation, gives the command to make corrections in opposite way. The main problem: this measuring and correction of parameters takes certain time.  Furthermore, if the deflection is more significant, the longer time is needed to correct the situation. If possible deflection can reach +/-40 .. 50% or even more – the reaction time of the system is unacceptably long. Long-term fuel trims radically changes the situation for good: they reduce expected defiance by 3 .. 5 times, accordingly the system reaction time is 3 .. 10 times faster, and the number of initial error messages also is decreased (for example, it prevents very large non-compliances regarding fuel mixture, which can create misfire, when non-burned fuel gets in the exhaust system etc.).


Related entries:


Wide-band Lambda probes

Management of Lambda probes

Error messages. Intro