Temperature Sensor Problem Diagnosis

Technical Library › Sensors and other inputsUpdated Sep 2026

When a coolant or air temperature reading on a Haltech ECU is stuck at one extreme, it's almost never the sensor itself. It's the pullup, the ground or the input choice. Here's how the ECU actually reads a temperature sensor, and how we track down a bad reading fast.

How a temperature sensor talks to the ECU

Most engine temperature sensors are thermistors: a resistor whose value changes with temperature. On a typical coolant sensor, resistance is high when cold and falls as the engine warms. The ECU can't measure resistance directly, though. It measures voltage.

To turn resistance into voltage, the ECU connects the signal wire to a regulated 5V supply through a fixed resistor, called a pullup. The pullup and the sensor form a voltage divider. When the sensor's resistance is high, the input voltage sits close to 5V. When the resistance is low, the input is pulled toward 0V. The calibration table in the software then maps that voltage to a temperature.

That means the calibration only works for the pullup value it was made with. Change the pullup and the same sensor, at the same temperature, gives a different voltage.

Pullup resistors on Haltech inputs

  • Most analog inputs have a 1k ohm pullup you can turn on in software. Older Haltech temperature calibrations assume that 1k value, so they work straight away.
  • SPIs have a 10k ohm pullup instead. If you put a temperature sensor on an SPI and use a calibration written for 1k, the reading will be wrong. Our guide to using an SPI for temperature sensors covers how to handle that.
  • No suitable pullup? Add your own. A 1k ohm resistor in the loom, between the ECU input wire and the 5V sensor supply, does the same job.

Sharing a sensor with a factory ECU

When a Haltech ECU runs alongside a factory ECU, you'll often just tap the Haltech input onto the factory sensor's signal wire. In that case the factory ECU already provides a pullup, usually of an unknown value. Turn the Haltech pullup off, or you'll change the voltage the factory ECU sees and upset its readings too.

The catch is that no stock calibration will match, so you'll need to build one. The easiest way is to connect a scan tool to the factory ECU, note its temperature readings alongside the voltage in the Haltech software across a warm-up, and enter those pairs as your calibration.

Setting up sensor diagnostics

Elite ECUs have a Diagnostics tab for each engine sensor, usually the last tab on the right. Using the coolant temperature sensor as the example, there are three checks:

SettingTrips whenCoolant codeOur advice
Raw MinVoltage falls below your limit, for example a signal shorted to groundP0117Set just above 0V to flag a fault
Raw MaxVoltage rises above your limit, for example an unplugged sensor with the pullup onP0118Set just below 5V to flag a fault
Operating MaxThe temperature itself goes over your limitP0116Tie it to engine protection

The raw limits find wiring faults. The operating limit finds a real overheat. We treat them differently. A wiring fault gets logged and flagged, but doesn't need to cut power, and on the coolant sensor a raw fault also turns on any thermofans as a precaution. An engine at, say, 244°F (118°C) is genuinely hot, so we'd set the operating max around there and have it trigger engine protection at a low level. Pick a limit that suits your engine and cooling system.

Common faults and what causes them

SymptomUsually
Reads pegged hot, around 248°F (120°C), even on a cold engineSignal shorted to ground, pullup not enabled, or the input has no pullup option
Reads pegged cold, around -4°F (-20°C), even when warmSensor unplugged or open circuit, or the sensor ground isn't connected
Reads, but always off by a lotCalibration made for a different pullup, or a factory ECU is also pulling up the signal
Jumps or drops out over bumpsLoose pin, damaged connector or a chafed wire

The logic is simple once you picture the divider. An open circuit means the ECU sees only the pullup, so the input sits at 5V, which the calibration reads as very cold. A short to ground drags the input to 0V, which reads as very hot. With no pullup at all, the input floats near 0V and also reads hot.

Checking the live voltage

Before you touch the loom, look at the raw numbers. In ESP, go to the Main Setup functions list, open the sensor, and look at its wiring section. You'll see the live input voltage and whether the pullup is enabled. If you can't see live data there, update your software and ECU firmware first.

A quick test for any temperature sensor: unplug it and the voltage should rise to near 5V. Jumper the two pins of the plug together and it should fall to near 0V. If both of those happen, the wiring and pullup are fine and the problem is the sensor or the calibration.

FAQ

Can I use a GM or Bosch sensor with a Haltech calibration?

Yes, as long as the calibration matches that sensor and the pullup value you're using. If there's no ready-made calibration, build one from the sensor's resistance chart.

Why does my fuel or flex temperature read wrong on an SPI?

The SPI pullup is 10k, not 1k. Use a calibration made for 10k. The flex fuel sensor is different again, since it sends temperature digitally.

Still stuck? Send us your log and the sensor details and we'll help you narrow it down.