ECT sensor stuck cold
The coolant temperature sensor reports one cold value whatever the engine does. The module adds warm up enrichment for a cold engine that is not there, and closed loop takes it back out, so the trims are negative and flat. The reading is identical in every cell.
Fingerprint
ECT frozen at one low value Must be present
Rule: ECT the same (within 1 C) in all four cells and no higher than 55 C.
A warm engine cannot sit at the same cold temperature at idle, at cruise and at WOT. The reading is frozen, not the coolant.
Trims negative by about the same amount in every cell Must be present
Rule: Every closed loop total trim at or below -5 percent, with no more than 3 points between them.
The module adds warm up enrichment for a cold engine that is not there, and closed loop takes it back out everywhere.
Why the numbers move
Below its warm threshold the module adds enrichment to base fuel. With the sensor stuck at a cold value that enrichment never goes away, and in closed loop the trims have to remove it everywhere, so the correction is the same size in every cell.
The frozen reading is the giveaway. A warm engine's coolant moves with load and road speed; a number that does not change between idle, cruise and WOT is a sensor or circuit, not the coolant.
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 (%) | -8.5 | -8.5 | -8.5 | 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) | 38 | 38 | 38 | 38 |
| Misfire per 1,000 revs | 0 | 0 | 0 | 0 |
Easy to confuse with
- Fuel pressure too high (regulator stuck closed). Both pull the trims down evenly. Read the coolant temperature first: a frozen cold reading explains the whole correction.
- MAF over reporting. Both pull the trims down evenly. A frozen cold ECT explains it on its own; a high reading MAF shows above the speed density estimate.
- Thermostat stuck open. Both read cold. A thermostat stuck open lets the coolant move, lower at cruise than at idle; a stuck sensor shows one frozen number in every cell.
On a real car
- Compare the ECT reading with the IAT after a cold soak and with a thermometer on a warm engine.
- Check the sensor circuit for resistance that would read as cold.
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
In this model the module still enters closed loop with the stuck reading and keeps its warm up enrichment in base fuel. Some strategies drop enrichment in closed loop or stay in open loop, so the reading itself is the dependable cue.
The full model is on how the model works.
An example case
Case C-CT-3, clean tier. Open it in projection mode.
Case C-CT-3
- Engine
- 2.0 L inline four, narrowband upstream sensor
- Customer says
- Poor fuel economy
- Check engine light
- On
- Tier
- Single fault, clean
Warm engine, sea level, 100 kPa barometric pressure. Simulated data for training, not from a real vehicle.
Freeze frame
Captured when P0128 set.
- Codes
- P0128
- Captured at
- Cruise
- Engine speed
- 2099 rpm
- Vehicle speed
- 60 mph
- Calculated load
- 34.6 %
- MAP
- 42.0 kPa
- MAF
- 14.14 g/s
- ECT
- 36 C / 97 F
- IAT
- 30 C / 86 F
- Fuel system
- Closed loop
- STFT / LTFT bank 1
- -1.5 % / -7.5 %
Live data by load cell
| PID | Idle | 2,500 rpm, no load | Cruise | WOT snapshot |
|---|---|---|---|---|
| Engine speed (rpm) | 755 | 2491 | 2099 | 5000 |
| Vehicle speed (mph) | 0 | 0 | 60 | 45 |
| MAP (kPa) | 30.0 | 21.6 | 42.0 | 97.1 |
| MAF (g/s) | 3.06 | 7.45 | 14.14 | 84.82 |
| Airflow check, MAF as % of speed density estimate (%) worked out | 101 | 99 | 100 | 101 |
| Calculated load (%) | 20.8 | 15.4 | 34.6 | 87.1 |
| IAT | 38 C / 100 F | 35 C / 95 F | 30 C / 86 F | 29 C / 84 F |
| ECT | 36 C / 97 F | 36 C / 97 F | 36 C / 97 F | 36 C / 97 F |
| Fuel system | Closed loop | Closed loop | Closed loop | Open loop |
| STFT bank 1 (%) | -2.0 | -2.2 | -1.5 | 0.0 |
| LTFT bank 1 (%) | -7.5 | -7.5 | -7.5 | -7.5 |
| Total trim bank 1 (%) worked out | -9.5 | -9.7 | -9.0 | -7.5 |
| O2 sensor B1S1 | switching, avg 0.45 V | switching, avg 0.45 V | switching, avg 0.44 V | 0.90 V steady |
| O2 sensor B1S2 (V) | 0.67 | 0.66 | 0.66 | 0.89 |
| Injector pulse bank 1 (ms) | 4.52 | 3.50 | 7.08 | 20.12 |
| 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.