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
Past experience indicates that the most likely solution is to replace the thermostat. However here are some suggestions on troubleshooting and repairing a P0128 OBD-II code:
- Verify coolant strength & level
- Verify proper cooling fan operation (check if it's running more than it should). Replace if necessary.
- Verify proper engine coolant temperature (ECT) sensor operation, replace if necessary.
- Verify proper intake air temperature (IAT) sensor operation, replace if necessary.
- If the above items check out good, replace the thermostat
you have all ready replaced the thermostat with the proper temperature opening thermostat(hopefully) and coolant sensor, you say you have to refill the coolant every 2 weeks this indicates that you either have a coolant leak that needs to be checked out and repaired or you are burning coolant which indicates a possible head gasket problem which will have to be checked. a low coolant level will set this code as there is not enough coolant in the engine to get the engine to operating temperature and stay there. these last suggestions is where I would start to look.