No fault (healthy control)
The healthy control. Trims near zero, the MAF agreeing with the speed density estimate, a warm coolant reading, a steady downstream sensor and no misfire counts. It is in the drill because deciding that the fuel control is fine is a diagnosis too.
Fingerprint
Trims close to zero in every closed loop cell Must be present
Rule: Total trim (STFT + LTFT) within plus or minus 5 percent at idle, 2,500 rpm and cruise.
Trims near zero say the fuel calculation already matches the engine.
MAF agrees with the speed density estimate everywhere Must be present
Rule: Airflow check between 95 and 105 percent in all four cells.
The MAF agrees with what the displacement, rpm and MAP say the engine should draw.
Misfire counts on one cylinder Must be absent
Rule: At least 20 misfires per 1,000 revolutions on one cylinder in some cell.
It belongs to a neighbouring fault.
ECT frozen at one low value Must be absent
Rule: ECT the same (within 1 C) in all four cells and no higher than 55 C.
It belongs to a neighbouring fault.
ECT below regulating temperature, and falls at cruise Must be absent
Rule: ECT below 82 C at idle and at least 5 C lower at cruise than at idle.
It belongs to a neighbouring fault.
Upstream sensor reads lean at WOT Must be absent
Rule: At WOT the upstream sensor reads below 0.45 V (narrowband) or above lambda 1.00 (wideband).
It belongs to a neighbouring fault.
Downstream sensor sits rich in closed loop Must be absent
Rule: Downstream sensor at least 0.78 V at idle and at cruise.
It belongs to a neighbouring fault.
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.
| Reading | Idle | 2,500 rpm, no load | Cruise | WOT snapshot |
|---|---|---|---|---|
| Total trim bank 1 (%) | 0.0 | 0.0 | 0.0 | open loop |
| Airflow check (%) | 100 | 99 | 99 | 100 |
| MAF (g/s) | 3.02 | 7.61 | 14.09 | 83.89 |
| MAP (kPa) | 30.0 | 22.0 | 42.0 | 97.0 |
| Upstream B1S1 | switching, avg 0.45 V | switching, avg 0.45 V | switching, avg 0.45 V | 0.90 V steady |
| Downstream B1S2 (V) | 0.66 | 0.66 | 0.66 | 0.90 |
| ECT (C) | 90 | 90 | 90 | 90 |
| Misfire per 1,000 revs | 0 | 0 | 0 | 0 |
Easy to confuse with
- Thermostat stuck open. The trims and the airflow are healthy, but the coolant never reaches regulating temperature and it falls at cruise.
- Restricted exhaust. The trims are healthy, but WOT airflow falls far short of what the displacement and MAP should draw.
On a real car
- Check that the engine was fully warm and in closed loop when the data was taken.
- Reproduce the complaint under the conditions the customer described before blaming the fuel system.
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
| PID | Idle | 2,500 rpm, no load | Cruise | WOT snapshot |
|---|---|---|---|---|
| Engine speed (rpm) | 748 | 2510 | 2102 | 4993 |
| Vehicle speed (mph) | 0 | 0 | 60 | 45 |
| MAP (kPa) | 30.3 | 22.1 | 41.8 | 97.1 |
| MAF (g/s) | 3.06 | 7.72 | 14.15 | 84.68 |
| Airflow check, MAF as % of speed density estimate (%) worked out | 101 | 100 | 100 | 101 |
| Calculated load (%) | 21.0 | 15.8 | 34.6 | 87.1 |
| IAT | 39 C / 102 F | 35 C / 95 F | 30 C / 86 F | 29 C / 84 F |
| ECT | 90 C / 194 F | 89 C / 192 F | 91 C / 196 F | 90 C / 194 F |
| Fuel system | Closed loop | Closed loop | Closed loop | Open loop |
| STFT bank 1 (%) | +0.3 | +0.3 | +0.1 | 0.0 |
| LTFT bank 1 (%) | 0.0 | 0.0 | 0.0 | 0.0 |
| Total trim bank 1 (%) worked out | +0.3 | +0.3 | +0.1 | 0.0 |
| O2 sensor B1S1 | switching, avg 0.45 V | switching, avg 0.45 V | switching, avg 0.45 V | 0.91 V steady |
| O2 sensor B1S2 (V) | 0.63 | 0.67 | 0.66 | 0.90 |
| Injector pulse bank 1 (ms) | 4.58 | 3.58 | 7.11 | 19.96 |
| EVAP purge command (%) | 0 | 20 | 35 | 0 |
| Misfire count per 1,000 revs | 0 | 0 | 0 | 0 |
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.