Fingerprint

Why the numbers move

In closed loop the module meters fuel from the air the MAF reports, then trims it until the upstream sensor reads stoichiometry. When the air measurement, the fuel delivery and the sensor are all honest, there is nothing for the trims to correct, so short and long term trims sit within a few percent of zero in every cell.

The customer still had a complaint. A healthy fuel control does not mean a healthy car: the fault may be elsewhere (ignition under load, a transmission concern, driver expectation), and the value of the data here is that it rules the mixture out quickly.

The reference numbers

Computed by the model at build time: the fault at its clean reference size on a 2.0 l inline four, narrowband upstream sensor, with no noise.

No fault (healthy control) at reference size on a 2.0 L inline four, narrowband upstream sensor
ReadingIdle2,500 rpm, no loadCruiseWOT snapshot
Total trim bank 1 (%)0.00.00.0open loop
Airflow check (%)1009999100
MAF (g/s)3.027.6114.0983.89
MAP (kPa)30.022.042.097.0
Upstream B1S1switching, avg 0.45 Vswitching, avg 0.45 Vswitching, avg 0.45 V0.90 V steady
Downstream B1S2 (V)0.660.660.660.90
ECT (C)90909090
Misfire per 1,000 revs0000

Easy to confuse with

On a real car

TrimCase is a training aid built on a simulated engine model. It is not a diagnostic instruction for any real vehicle. Follow the service information for the vehicle in front of you.

Where the model is simpler than an engine

The model's healthy engine has the commanded purge accounted for exactly, so its trims are clean. A real engine's trims move a few percent with purge, altitude and fuel quality.

The full model is on how the model works.

An example case

Case C-XX-O, clean tier. Open it in projection mode.

Case C-XX-O

Engine
2.0 L inline four, narrowband upstream sensor
Customer says
Heater slow to warm up
Check engine light
Off
Tier
Single fault, clean

Warm engine, sea level, 100 kPa barometric pressure. Simulated data for training, not from a real vehicle.

Freeze frame

No code stored. Snapshot saved by the technician at warm idle.

Codes
None stored
Captured at
Idle
Engine speed
748 rpm
Vehicle speed
0 mph
Calculated load
21.0 %
MAP
30.3 kPa
MAF
3.06 g/s
ECT
90 C / 194 F
IAT
39 C / 102 F
Fuel system
Closed loop
STFT / LTFT bank 1
+0.3 % / 0.0 %

Live data by load cell

Scan data for case C-XX-O, one column per load cell
PIDIdle2,500 rpm, no loadCruiseWOT snapshot
Engine speed (rpm)748251021024993
Vehicle speed (mph)006045
MAP (kPa)30.322.141.897.1
MAF (g/s)3.067.7214.1584.68
Airflow check, MAF as % of speed density estimate (%) worked out101100100101
Calculated load (%)21.015.834.687.1
IAT39 C / 102 F35 C / 95 F30 C / 86 F29 C / 84 F
ECT90 C / 194 F89 C / 192 F91 C / 196 F90 C / 194 F
Fuel systemClosed loopClosed loopClosed loopOpen loop
STFT bank 1 (%)+0.3+0.3+0.10.0
LTFT bank 1 (%)0.00.00.00.0
Total trim bank 1 (%) worked out+0.3+0.3+0.10.0
O2 sensor B1S1switching, avg 0.45 Vswitching, avg 0.45 Vswitching, avg 0.45 V0.91 V steady
O2 sensor B1S2 (V)0.630.670.660.90
Injector pulse bank 1 (ms)4.583.587.1119.96
EVAP purge command (%)020350
Misfire count per 1,000 revs0000

Rows marked worked out are arithmetic on the rows above them, done for you: total trim is STFT plus LTFT, and the airflow check divides the MAF by the speed density estimate on the model page.

Trim against airflow

Total fuel trim by load cellBank 1: Idle +0.3 percent, 2500 +0.3 percent, Cruise +0.1 percent. The shaded band is plus or minus 5 percent, the usual healthy range.-20-100+10+20Idle2500CruiseTotal trim, percent. Airflow rises left to right.
Bank 1Shaded: plus or minus 5 percent