
What this code means
P0128 generally means the ECM may be seeing engine coolant temperature stay lower than expected for thermostat regulation.
What the vehicle may do
- The check engine light may be on.
- The cooling fan can be commanded on.
- The engine may take longer than expected to warm up.
- Cabin heat may feel weaker than normal in some situations.
Possible fault areas
- Possible coolant level or coolant condition concern.
- Possible thermostat operation concern.
- Possible engine coolant temperature sensor concern.
- Possible signal or low-reference circuit concern.
- Possible module-side interpretation concern after wiring and sensor checks pass.
Diagnostic path
Open: what P0128 is telling you
On this Sierra, P0128 means the ECM may be seeing engine coolant temperature stay below where it expects thermostat regulation to be. In plain terms, the engine may not be warming up the way the ECM expects, or the temperature information may not be believable. The driver may notice a check engine light, the cooling fan can be commanded on, and warm-up behavior may seem off. Broadly, keep your mind on possible coolant level or coolant condition problems, thermostat operation, coolant temperature sensing, and the signal or low-reference circuits. Before getting deep into testing, start with the basic system checks and follow a structured diagnostic approach. If other codes are present, especially around coolant temperature, radiator temperature, or coolant bypass control, understand those first instead of treating P0128 in isolation.
Monitor logic and scan data clues
The ECM uses engine coolant temperature for engine control and as an enable for some diagnostics. P0128 sets when measured coolant temperature does not reach thermostat regulating temperature before the expected amount of airflow has gone through the engine. On a warmed-up engine, the ECT Sensor normal range is listed as 88 to 105°C (190 to 221°F). The scan data also gives you circuit clues: a signal short to ground can show 150°C (302°F), an open can show −40°C (−40°F), and a short to voltage can also show −40°C (−40°F). The signal input circuit has internal resistance connected to 5 V, so use those scan values to decide whether you are chasing thermostat warm-up or an electrical signal problem. When you reproduce the monitor gate, the startup ECT range is −40 to 56°C (−40 to 133°F), engine off time is greater than 30 min, engine run time is 30 s to 37 min, and fuel alcohol content is less than 87%. One useful sanity check: after the ignition has been off for greater than 8 h, intake air temperature and engine coolant temperature should be within 3°C (5°F) of each other. Also remember, high resistance in related circuits can set P0128 even when a separate component code is not set.
Start with coolant condition, then related-code context
First, verify there is no incorrect fluid level or fluid condition. If that condition exists, repair or replace as necessary before continuing. If the coolant level and condition check passes, verify there are no related codes for the engine coolant temperature sensor, the radiator coolant temperature sensor if equipped, or the engine coolant bypass valve if equipped. If one of those related code paths is active, check what that code means first and handle that path before continuing with P0128. If not, continue with the thermostat check for P0128.
Thermostat verification before circuit testing
For the thermostat verification, run time needs to be greater than 10 min. Slowly bring engine speed up to 3000 RPM, and keep the air conditioning off. Watch the ECT Sensor parameter. It should get greater than 85°C (185°F) within 5 min. If it is 85°C (185°F) or colder, test or replace the engine coolant thermostat. If it is warmer than 85°C (185°F), reproduce the operating conditions for the code, or reproduce the captured conditions if that information is available, and confirm whether P0128 resets. If it does not reset, the result is all OK. If it resets, move into circuit testing instead of guessing at the thermostat again.
Low-reference circuit test
For circuit testing, turn the ignition and vehicle systems off, disconnect the B34 Engine Coolant Temperature Sensor, and give the vehicle systems time to power down. It may take up to 2 min before a ground or low-reference continuity test is accurate. Test between low-reference terminal 1/A and ground. You want less than 10 Ω. If it is 10 Ω or greater, disconnect the K20 Engine Control Module and test the low-reference circuit end to end. That end-to-end check should be less than 2 Ω. If it is 2 Ω or greater, repair the open or high resistance in the circuit. If it is less than 2 Ω, the path calls for replacing the K20 Engine Control Module.
Sensor signal simulation: cold, then hot
If the low-reference test is less than 10 Ω, turn the ignition on with the vehicle in service mode. With the B34 sensor disconnected, the scan tool ECT Sensor parameter should read colder than −39°C (−38°F). If it is −39°C (−38°F) or warmer, turn the ignition off, disconnect the K20 Engine Control Module, and test the signal circuit for a short to ground. You should have infinite resistance from signal terminal 2/B at the component harness to ground. If resistance is less than infinite, repair the short to ground. If resistance is infinite, the path calls for replacing the K20 Engine Control Module. If the disconnected-sensor reading is colder than −39°C (−38°F), install a 3 A fused jumper between signal terminal 2/B and low-reference terminal 1/A. Now the scan tool ECT Sensor parameter should read warmer than 149°C (300°F). If it does, test or replace the B34 Engine Coolant Temperature Sensor. If it is 149°C (300°F) or colder, remove the jumper and keep testing the signal circuit.
Signal circuit voltage and continuity
When the hot simulation does not pass, remove the jumper, leave the B34 disconnected, disconnect the K20 as directed, and turn the ignition on with the vehicle in service mode. Test signal terminal 2/B at the component harness to ground. The voltage should be less than 1 V. If it is 1 V or greater, repair the short to voltage. If it is less than 1 V, turn the ignition off and check signal-circuit continuity from the component harness to the control module harness. That resistance should be less than 2 Ω. If it is 2 Ω or greater, repair the open or high resistance in the signal circuit. If it is less than 2 Ω, the path calls for replacing the K20 Engine Control Module.
ECT sensor component test
For direct component testing, turn the ignition and vehicle off and disconnect the B34 Engine Coolant Temperature Sensor. Measure between signal terminal 2/B and low-reference terminal 1/A. The sensor should be between 42 and 78,834 Ω. If it is not in that range, replace the B34 Engine Coolant Temperature Sensor. If it is in that range, compare the measured resistance against the correct temperature-versus-resistance range for the sensor. If the value is not in the specified range, replace the B34 Engine Coolant Temperature Sensor. If it is in range, test from each sensor terminal to the sensor housing. That should be infinite resistance. If it is less than infinite resistance, replace the B34 Engine Coolant Temperature Sensor. If it is infinite resistance, the component test result is all OK.
Verify the repair
After the repair is complete, verify the repair and confirm the code stays gone. Keep the verification separate from the testing path: prove the fault is corrected under the operating conditions that matter, and do not call it fixed just because the code cleared once. The takeaway on P0128 is simple: confirm coolant condition first, prove thermostat warm-up, then use sensor simulation and circuit checks to separate a thermostat problem from an ECT sensor, wiring, or module-side fault. For more diagnostic training, visit stepdiagnostics.com.
Final check
P0128 is often a warm-up and temperature-signal plausibility diagnosis, so the broad path may include coolant condition, thermostat behavior, sensor response, and circuit integrity.
For more guided automotive diagnostics, visit STEP Diagnostics.





