Thermofan

Elite Software Programmer › ESP - Main setup › FunctionsUpdated Sep 2026

Letting the Haltech Elite run your radiator fans gives you control over exactly when they come on, how hard they run and how the idle copes with the extra load. Here is how we set up the Thermofan function in ESP for both simple on/off fans and PWM-controlled fans.

Why let the ECU run your fans?

A factory thermo switch gives you one fixed temperature and nothing else. With the Elite in charge, you choose the on and off points, pick which temperature sensor to follow, and tie the fans into idle control, the air conditioning and road speed. The Elite can handle up to four fans, each with its own settings, which suits twin-fan radiators, oil coolers or a separate condenser fan.

Units

ESP shows the default temperatures in Celsius. We give Fahrenheit alongside, but enter whatever unit your ESP preferences are set to.

Step 1: pick the fan type

On the Wiring tab, tick each Thermo Fan you want to use. Every fan you enable gets its own tab (Thermo Fan 1, Thermo Fan 2 and so on) holding its settings. Then set Mode:

ModeWhat kind of fanHow it is controlled
Digital SwitchedA plain on/off fanRelay on above one temperature, off below another
Digital FrequencyA variable-speed fan with its own controller moduleThe ECU sends a PWM duty signal, and the controller sets fan speed from it

Most older and aftermarket fans are switched. Many modern OEM fans, and brushless aftermarket fans, have a controller that takes a PWM signal. If your fan has only two heavy wires and no controller, it's switched.

Step 2: wire it through a relay

A cooling fan draws far more current than any ECU output can supply, so it must be powered through a relay. Never connect the fan straight to the Elite.

  • Choose an output for each fan under Connections.
  • A digital pulsed output (DPO) always switches to ground when it's active. Wire it to one side of the relay coil, and put switched 12V on the other side.
  • Active State only flips whether the output is normally on or normally off. It doesn't turn a DPO into a 12V supply.
  • Stepper outputs can be set as high-side drivers, so they can supply 12V when active if your wiring needs that.

A fused 30A power relay is the usual choice for a single fan. Large twin fans may need one relay each. For a PWM fan, the output drives the controller's signal wire, and the controller gets its own heavy power feed.

Step 3: set the temperatures

Pick a Trigger Source for each fan, which is the temperature sensor it follows. Coolant is normal for a radiator fan, but you could run an oil cooler fan from oil temperature. The source you pick becomes a thermofan source channel, and that channel is the axis you should use in the duty cycle table.

Switched fans: on and off points

SettingDefaultWhat it doesOur advice
Enable Above90°C (194°F)Fan turns on above this temperatureSet it a few degrees above your thermostat opening temperature
Disable Below85°C (185°F)Fan turns off below this temperatureMust be lower than Enable Above. The gap stops the fan cycling on and off

That gap is called hysteresis, and it matters. If the on and off points are too close, the fan clicks on, pulls the temperature down a fraction and clicks off, over and over. That's hard on the relay and makes the idle hunt.

PWM fans: frequency and duty

Set Frequency to what your fan controller expects. Controllers usually want something between 200 and 500 Hz, and the default is 250 Hz. Check the controller's documentation rather than guessing.

Then fill in the Duty Cycle table. Low duty gives a slow fan and high duty a fast one, so build the table so duty climbs with temperature. The table can be made 2D, which lets you add a second axis if you need the duty to depend on something besides temperature.

Step 4: keep the idle happy

A big fan kicking on at idle is a sudden electrical and mechanical load. Voltage drops and the idle can sag. On switched fans with Idle Control enabled, three settings help:

SettingDefaultWhat it does
Idle RPM Offset10Adds this much to the idle target while the fan is on
Idle Base Offset0.0Adds this much to idle base duty while the fan is on, so the valve opens before the error builds
Idle Up Delay0.00Applies both offsets for this long before the fan output actually switches on

Idle Up Delay is the clever one. It lets the idle speed rise first, so when the fan loads the engine, there's already enough air and rpm to absorb it. Related tables for the idle RPM offset and idle up delay let you refine this further. A higher idle target while the fan runs also helps the alternator keep battery voltage up.

Step 5: optional extras

Enable with A/C

Only shown when the Air Conditioner function is on. The condenser sits in front of the radiator and needs airflow to work, so this runs the fan whenever the A/C compressor output is active. For a switched fan it simply turns on. For a PWM fan, Minimum Duty sets the lowest duty used while the A/C is on. It's off by default, and the minimum duty defaults to 0.0.

Vehicle Speed Control

Needs a working vehicle speed sensor. At highway speed, air rammed through the radiator moves more air than the fan can, and a stationary fan blade can even get in the way. With this on, the fan is allowed below Enable Below (default 90 km/h, about 56 mph) and switched off above Disable Above (default 100 km/h, about 62 mph).

A/C Pressure Control

Needs an A/C pressure sensor. The fan turns on when refrigerant pressure rises above Enable Above (default 2100 kPa, about 305 psi) and off when it falls below Disable Below (default 1800 kPa, about 261 psi). This cools the condenser only when the A/C actually needs it.

Troubleshooting

SymptomUsually
Fan never turns onOutput not assigned, relay wired to 12V instead of ground, or trigger source set to the wrong sensor
Fan runs all the timeActive State inverted, or Disable Below set above the normal running temperature
Fan clicks on and off rapidlyOn and off temperatures too close together
Idle dips when the fan startsAdd Idle RPM Offset, Idle Base Offset and a short Idle Up Delay
PWM fan runs full speed or not at allFrequency wrong for the controller, or duty table inverted

Thermofan FAQ

Can I run two fans at different temperatures?

Yes. Enable Thermo Fan 1 and 2 on separate outputs and give the second one higher on and off points. The first fan handles normal driving and the second joins in on hot days or in traffic.

Should I keep the factory fan switch as a backup?

Some builders do, wired so either the switch or the ECU can turn the fan on. It's a sensible belt-and-braces approach on a street car. Just make sure the two circuits can't back-feed each other.

Where's the Nexus version of this?

On Nexus ECUs the equivalent is the Thermo Fan function in NSP. Need a hand with your cooling setup? Contact us.