This means that the engine's PCM detected that the engine has not reached the required temperature level within a specified amount of time after starting the engine. The intent of the P0128 code is to indicate a faulty thermostat.
In determining the engine did not reach a "normal" temperature, it takes into account the length of time the vehicle has been running, the intake air temperature (IAT) sensor reading, the engine coolant temperature (ECT) sensor reading, and the speed of the vehicle.
A code P0128 may mean that one or more of the following has happened:
- Low engine coolant level
- Leaking or stuck open thermostat
- Faulty cooling fan (running too much)
- Faulty coolant temperature (ECT) sensor
- Faulty intake air temperature (IAT) sensor.