What is a Temperature Sensor
A temperature sensor is actually a resistor that changes its resistance depending on temperature, typically using something called a thermistor. It is this resistance change that can be used by the ECU to interpret temperature.
How The ECU Reads A Temperature Sensor
For the ECU to use a sensor it needs to receive this signal as a voltage. When all you have is a varying resistance coming from the sensor the ECU converts this into a voltage is by loading the signal to regulated 5V+. To keep the current draw very low this is done via, in most cases, a 1k ohm resistor that we call a pullup resistor. This is named due to it pulling up the voltage from 0 to 5V.
Wiring a temperature sensor to an ECU with an internal pullup resistor
To make life easy the ECU has a software selectable 1k ohm pullup on most inputs that can be enabled. Any older temperature calibration file will have been created with a 1k pullup in mind and will work fine. However, not all inputs have a 1k pullup. The SPI's for example have a 10k ohm pullup. If these inputs are used for temperature sensors be aware that using calibration data created for a 1k pullup will mean you are not reading the temperature correctly.
Wiring An External Pullup Resistor
If the input does not have a pullup resistor or it has one of a different resistance you can externally wire in your own pullup resistor. Simply connect a 1k ohm resistor between the ECU input wire and the 5V+ wire in the wiring loom.
Piggybacking A Temperature Sensor With An OEM ECU
If your Haltech ECU is being installed as a piggyback with an OEM ECU often you only need to tap the Haltech ECU Input to the signal wire of the temperature sensor. When this is done the OEM ECU is already providing a pullup resistor of a value we often do not know. When installing this way you must disable the pullup for the Haltech ECU so that the signal being received by the OEM ECU is not altered.
There is no option from here but to attempt to calibrate the sensor from scratch. It is possible to connect a diagnostic tool to the OEM ECU and monitor the temperature values and copy these into the Haltech software.
Temperature Sensor Diagnostics
Configuring Sensor Diagnostics
The Haltech Elite ECU range include a Diagnostics configuration for engine sensors. This allows faults in the sensor or wiring to be detected and an action can be selected to handle the situation. In the following example we will use the Coolant Temperature Sensor as the sensor we are setting the diagnostics for.
The Diagnostics tab is typically found as the far right tab for each sensor. Values can be set for the extreme low and high ends of the voltage range ( Raw Min and Raw Max), and also an Operating Max limit can be set.
If the voltage drops below the Raw Min, such as when the wiring is shorted to ground, then this DTC will be flagged (P0117 in this case).
If the voltage exceeds the Raw Max, such as when the wires are shorted together, or if the pullup is enabled and the sensor is unplugged, then this DTC will be flagged (P0118 in this case).
If the sensor value exceeds the Operating Max, then this DTC will be flagged (P0116 in this case). This is often used to trip engine protection.
In the below sample configuration we have enabled the Raw Min and Max settings and set to values just above 0V and just below 5V. We wants to know that there is a fault but not necessarily impose any limits on the engine. If the Raw Min or Max for the Coolant Temperature Sensor is flagged it also activates any Thermo Fans as a precaution.
For the Operating Max we have set a high value of 118C, and if this temperature is reached we are flagging Engine Protection at Level 1. This is obviously a very hot engine condition that could cause damage so we do want to limit the engine in this circumstance.
Diagnosing Issues With A Temperature Sensor
There are a few common issues people see with temperature sensors.
The sensor reads only at the extreme high end of the calibration. Typically around 120C
The sensor input is shorted to ground.
The pullup is not enabled.
The sensor is connected to an input that does not have a pullup option.
The sensor reads only at the extreme low end of the calibration. Typically around -20C
The sensor is unplugged. It has no resistance so the ECU only sees the 5V pullup leaving the input also as reading 5V.
Sensor Ground is not connected to the sensor.
A good way to see what voltage is present on the input is by going to the Main Setup / Functions list and finding the sensor we need. In the wiring section of that sensor you can view the live data.
In the below example we are viewing the Coolant Temperature Sensor input data. You can also note that the pullup is enabled for this input.
If you cannot see live data here you need to update your software and firmware.