Vehicle Electric Water Pump Controller

General, Oct-2014

This article describes an electric water pump and electric cooling fan controller design based on a cheap and readily available microcontroller.

The water pump on my TR7 had given up the ghost – the rotor had shattered and new ones are expensive, rare and rubbish!

I’d heard about electric water pumps and decided this was the way ahead. This would eradicate the craziness of the TR7 slant-4 engine water pump design once and for all, i.e.

  • It sits high on the block meaning there’s only a small head of water in the radiator. So if the water level should fall by a small amount, then your cooling is significantly reduced.
  • It’s driven by the jack shaft and requires an elaborate seal to keep water out of the oil ways and vice versa. The seal often fails and you run the risk of water into the oil ways.
  • In a normal car, the water pump is driven by the fan belt (or ancillary belt). So if the water pump seizes, the worst damage you could do to the engine is snap the fan belt. With the TR7 design, seizure of the water pump can be catastrophic – you risk seizing the jack shaft, snapping the timing chain and thus mashing the valves into the pistons!

I won’t go into the mechanical aspects of the electric water pump (EWP) installation but will just outline the installation in schematic form.

Here’s the standard TR7 cooling/heating diagram:

And this is the modified circuit:

Basically, the old pump’s impeller is removed and its housing is blocked-off with a suitable bung. The EWP (in this case a Davies Craig 80) is fitted to the radiator bottom hose and pumps cooled coolant into the old pump’s main inlet manifold. A consequence of this in the TR7 installation is that the old pump’s other inputs (heater return and bypass) become outputs, so the flow through the heater is reversed. In practise, there was no adverse effects on the operation of the heating/cooling system.

With the thermostat deleted, we can now control the coolant flow rate by varying power to the EWP. Since this car already had an electric fan, it was sensible to also incorporate this control function into the controller design.

For the microcontroller design, we need to:

  • sense coolant temperature.
  • control EWP power.
  • control fan power.

So here’s the circuit we came up with using the Arduino Uno as the computing element:


Apart from the Arduino, the electronics aren’t that sophisticated. There’s a high power, low on resistance, MOSFET to control the fan and EWP. The MOSFET’s are controlled directly from the digital output pins on the Uno, where the fan uses ON-OFF control and the EWP is proportionally controlled by Pulse Width Modulation (PWM).

A feature of the hardware design is the shunt resistor in series with the EWP motor. This ensures that the EWP always runs at 50% of its maximum capacity whatever the EWP controller is doing. This is to ensure that in the event of any failure in the EWP controller, the coolant would always be circulating – a “get you home” mode of operation. So the range of control available to the software is 50 to 100% of the EWP capacity.

A standard automotive thermistor is used to sense coolant temperature, shown as Rt in the diagram. This is fitted in-line to the car radiator top hose.

The transfer characteristics of the thermistor were measured so that we could find the relationship between temperature and input voltage going into the Uno. We did this by immersing the thermistor in boiling water then recording a number of data points as it cooled. This allowed us to plot the transfer characteristics and develop an equation that relates voltage to temperature:

From the measured values (the red line in the above chart) we developed an approximate transfer equation using the curve-fitting tools available in some spreadsheet programs. The derived best-fit is represented by:

Temperature (T) = LN ( Vt / 5.1156761748)  / -0.0223181593

The blue line in the chart shows the computed values using the above equation which shows close correlation to measured values in the range we were looking for.

Without much knowledge of heat engine thermodynamics, the only option open to us in defining the overall control algorithm was to do it empirically.

The car had already been running with the EWP connected to 12V, so was running at full capacity with no active control. The engine was running far too cool in this mode – we estimate it didn’t get much above 60 degrees C. 

We wanted the engine to run at around 80 degrees C, so using little more than gut feel, we estimated that 75% of EWP power would allow the engine to reach that temperature. We chose a transfer function as shown below, using voltage as the input rather than computed temperature. The EWP power starts to increase from 50% at 62 degrees crossing through 75% at 80 degrees and reaching full capacity at around 110 degrees.

For control of the fan, we simply specified a voltage threshold corresponding to 80 degrees C. The algorithm has some hysteresis to avoid the fan switching ON and OFF too frequently, i.e. it waits for 30 seconds of consistent readings either side of the threshold before swithching the fan ON or OFF.

The system has been installed in the TR7 for about 6 months, covering over a 1,000 miles thoughout the summer where the prevalent air temperature was in the high 20’s (degrees Centigrade).

We’ve made some small changes to the algorithms, mainly to the input filtering and we’ve also reduced the resolution of the EWP control. This was mainly to reduce the motor “singing” noises typical of controlling a DC motor using PWM.

With a data logger attached, we were able to plot the typical warm up sequence:

As engine temperature rises, the EWP power is stepped up accordingly. The yellow trace (not to any scale) shows the fan swithching on/off around the preset fan threshold.

You can see the temperature stabilising around 85 degrees C. You can also observe how quickly temperature falls off when the fan switches on.

The system is working very well. The engine temperature is well controlled in stop-start driving with no possibility of overheating. However, on the open road the temperature fell to approximately 65 degrees, which was too far outside our desired operating temperature range. Seems we were too cautious in setting the lower power limit on the pump motor as it looks as if natural circulation by convection is a significant contributor to engine cooling when there is a strong airflow through the radiator.