Last update: Jun 24 2017
The engine coolant temperature gauge is driven by a microcontroller circuit so that it displays an interesting temperature range for the electric motor.
The exisiting coolant temperature gauge does not faithfully report temperature but instead responds to the coolant temperature sensor for three ranges - low, normal and high. The relationship between voltage and needle position is shown in the graph below. The needle remains at a fixed position (40%) for a range of normal internal combustion engine temperatures. The needle moves slowly in the low range and quickly in the high range.
To make the gauge interesting for electric motor temperatures, a custom microcontroller circuit is used. The circuit reads temperature from a thermistor mounted in one of the electric motor exhaust ports. The microcontroller converts the temperature to a voltage, compensating for the shape of the curve in the graph above so that the needle moves linearly with temperature. The motor manufacturer specifies that potentional overheating begins at 110°C (230°F), but the motor never gets anywhere near that hot. The gauge scale is calibrated to 15°C (59°F) at the C position to 75°C (167°F) at the H position. This range was selected so that on a hot summer day the needle reaches the 2/3 tick mark, and on a cold winter day it moves enough to verify it is working.
A ten turn 2 watt 500 ohm potentiometer takes the place of the coolant temperature sensor in the wiring to the gauge. The circuit rotates the potentiometer with a small gear motor to set the desired voltage at the gauge input.
Source code is here.