P0118 — Engine Coolant Temperature (ECT) Sensor — Circuit High Input
ModerateQuick answer
P0118 means the ECT sensor’s the signal is stuck high — typically a short to voltage, a broken ground or reference wire, or a failed sensor. A lying ECT makes the computer fuel for an engine temperature that isn’t real: hard cold starts, rich running (and the fuel smell that comes with it), radiator fans locked on, or overheating that never triggers the fans. Check the connector and wiring before buying a sensor — for this variant of the code, wiring is the most common answer.
What it means
The engine coolant temperature (ect) sensor tells the engine computer how hot the engine’s coolant is — which drives cold-start enrichment, fan control, and timing. P0118 sets when the signal is stuck high — typically a short to voltage, a broken ground or reference wire, or a failed sensor for long enough that the computer stops trusting it.
Circuit codes describe electrical behavior, which puts the wiring, the connector, and the sensor on equal footing as suspects. The cheapest of the three fails most often.
While the signal is untrusted, the computer substitutes a safe default value. The engine runs, but on assumptions instead of measurements — that’s the drivability change you feel.
Common causes
Ordered from most to least likely.
- 1.
Wiring damage (chafe, break, melted insulation)
A short to voltage or broken ground pins the signal high.
- 2.
Corroded, loose, or backed-out connector pins
Unplug and inspect both halves under good light.
- 3.
Failed ECT sensor
Confirm with measurements before replacing.
- 4.
Low coolant or air pocket at the sensor
A sensor reading air instead of coolant reports nonsense — check level first.
- 5.
Lost 5V reference or sensor ground (where applicable)
If several sensors fault together, suspect a shared reference circuit rather than coincidence.
How to diagnose it, step by step
Cheapest and most likely checks first.
-
1 Read the freeze frame
Note when P0118 sets — cold start, warm idle, under load, over bumps. The conditions narrow the cause dramatically, especially for intermittent faults.
-
2 Inspect connector and harness
Unplug the sensor; check for corrosion, bent or spread pins, and chafed insulation along the harness run. Re-seat firmly. This free step resolves a remarkable share of circuit codes.
-
3 Watch it in live data
Stone-cold, ECT should match IAT and ambient. From start, it should climb smoothly to operating temperature (~85–105°C) with no jumps or dropouts.
-
4 Verify with an infrared thermometer
Point an IR thermometer at the thermostat housing and compare with the scanner. Several degrees of disagreement condemns the sensor; agreement points back at wiring.
-
5 Wiggle-test if intermittent
Engine running, data live: gently flex the harness and tap the sensor while watching the reading. A glitch you can provoke is a fault you can find.
-
6 Replace with a quality part
If measurements condemn the sensor, buy OEM or a reputable brand — bargain sensors re-set these codes often enough to cost more in time than they save in money.
Parts & tools you may need
- OBD-II scanner (code reader with freeze frame / live data)
- Digital multimeter
- Electrical contact cleaner
- Replacement ECT sensor (exact part for your engine)
Disclosure: some links are affiliate links. If you buy through them, we may earn a commission at no extra cost to you.
Related codes
Frequently asked questions
- Can I drive with P0118?
- Briefly — but a falsely-cold reading runs the engine rich enough to foul plugs and stress the converter, and a falsely-hot/fan failure can let it genuinely overheat. Watch the gauge.
- Is it the sensor or the wiring?
- For this variant, lean wiring: stuck-low, stuck-high, and intermittent signatures are circuit behaviors. Inspect and measure before buying the sensor.
- Why did the code return after a new sensor?
- Because the circuit, not the sensor, was the fault — or the replacement was low quality. Re-do the wiring inspection the first repair skipped.
- What does the computer do meanwhile?
- It substitutes a default value and keeps the engine running on assumptions. Functional, but you pay in drivability and fuel until the real measurement comes back.