Skip to main content
Diagnostic Guide

How to Diagnose Coolant Temperature and Thermostat Codes (P0117, P0118, P0125, P0128)

Coolant temperature codes are some of the most common check-engine causes, and also some of the most misunderstood. P0128 (coolant temperature below thermostat regulating temperature) is usually a stuck-open thermostat, not a sensor. P0125 (insufficient coolant temp for closed-loop fuel control) is closely related. P0117 and P0118 are electrical circuit codes on the engine coolant temperature (ECT) sensor itself. Getting the diagnosis right saves you from replacing a perfectly good sensor when the thermostat is the actual fault — or vice versa. This guide walks the logic.

How the ECT sensor and thermostat work together

The ECT sensor is a thermistor: its resistance falls as coolant temperature rises. The PCM supplies a 5V reference through a pull-up resistor and reads the resulting voltage, converting it to a temperature. That temperature drives fueling, cooling-fan operation, and the transition to closed-loop. The thermostat is a mechanical valve that stays closed until the coolant reaches its rated opening temperature, forcing the engine to warm up quickly, then opens to let coolant flow to the radiator. P0128 sets when the PCM calculates that, given run time and airflow, the engine should have reached operating temperature by now but the measured coolant temp never climbed high enough — the classic signature of a thermostat stuck open.

Read the temperature data first

Start with a scan tool and a cold engine. Watch the ECT reading at key-on: it should match ambient/soak temperature and agree with the intake air temperature sensor within a few degrees. If ECT reads a plausible cold value and climbs smoothly as the engine warms, the sensor is likely fine and you are chasing a thermostat or cooling problem. If ECT reads wildly wrong at key-on (e.g., -40°F or 300°F), that is an electrical fault — an open or short — and points at the sensor or wiring, matching P0117/P0118.

Diagnosing P0128 — the stuck-open thermostat

For P0128, warm the engine and watch how high the coolant temperature climbs and how long it takes. A healthy system reaches the thermostat's regulating temperature (commonly around 195°F / 90°C) within several minutes and holds there. If the temperature rises slowly and plateaus well below the threshold — especially in cold weather or at highway speed — the thermostat is stuck open or opening too early. Confirm by feeling the upper radiator hose during warm-up: it should stay relatively cool until the thermostat opens, then get hot quickly. If the hose warms gradually from the start, coolant is circulating to the radiator the whole time and the thermostat is not doing its job. Replace the thermostat with the correct temperature rating and bleed the system properly.

Testing the ECT sensor for P0117 / P0118

For circuit codes, test the thermistor directly. Measure its resistance cold and again warm and compare against the manufacturer's temperature/resistance table — resistance should drop predictably as it heats. P0117 (circuit low) usually means the signal is pinned low, which can be a shorted sensor or a signal wire shorted to ground; P0118 (circuit high) means the signal is pinned high, typically an open sensor, an open signal wire, or a lost 5V reference. Back-probe the connector and check for the 5V reference and a good ground before condemning the sensor — a broken 5V reference circuit can knock out the ECT along with other sensors. Our guide on sensor circuit high/low codes covers the exact voltage logic.

Why P0125 shows up

P0125 means the engine has not reached a high enough temperature to enter closed-loop fuel control within the expected time. It frequently accompanies P0128 because both are symptoms of an engine that will not warm up. Occasionally P0125 appears on its own after a very cold start or extended idle. Treat it like P0128: verify the thermostat is holding temperature and that the ECT reading is accurate. A stuck-open thermostat that keeps the engine cold will also hurt fuel economy and heater performance, so customers often notice the symptom before the light.

Don't overlook these

  • Low coolant or air pockets — a poorly bled system reads erratic temperatures and can mimic a thermostat fault.
  • A cooling fan stuck on (from a separate fault) that never lets the engine warm up.
  • Two temperature sensors — some engines have a separate gauge sensor and PCM sensor; make sure you are testing the one the PCM reads.
  • Aftermarket or wrong-temperature thermostats installed previously — a 160°F thermostat in a system that expects 195°F will set P0128 every time.

The rule of thumb: if the ECT reading is accurate but the engine stays too cool, suspect the thermostat (P0128/P0125). If the ECT reading is implausible or out of range, suspect the sensor or its wiring (P0117/P0118). Confirm with live data and the radiator-hose check, and you will fix these on the first try.