A test run of the generic heating / cooling controller with Pt100 sensor

The generic heating / cooling controller (hcctl) is a flexible bang-bang thermostat controller based on an ATTiny25.


The test load is a pot containing 1l of water and a 1200W immersion element controlled by the SSR above (on-off control). The controller board is a ‘fully optioned’ test framework, hcctl is the left hand DIP8 and the other is a TC427 H bridge (not needed for this SSR which can be driven directly from the ATTiny25 output pin) for buffered output and alarm.

The water constitutes the main part of the load, so ignoring the pot and losses, the specific heat of water being 4200kJ/K, the temperature rise should be around 1200/4200=0.3°/s. Because the sensor is quite slow responding, dif is set to 2°. With around 10s thermal delay to the sensor, the overshoot should be around 10*0.3=3°, which added to the specified differential makes a total variation of 5° over a cycle.


The sensor is a cheap (A$1 inc post) Pt100 sensor off eBay. The accuracy is not wonderful, it reads 105Ω at 0°. The pic shows the internal Pt100 element which is stuffed in a silicone sleeve inside a stainless closed tube and sealed.

A calibration chart was worked up for ‘Pt105’ using a 680Ω series resistor from 5V. This results in a current of 6mA which is a little higher than desirable. The hcctl configuration was set for ton=684 (30°), dif=4 (1°).


Above is the thermal load. The Pt100 sensor is suspended from the chopstick, a measuring probe is suspended near the Pt100 sensor.

After settling, the temperature cycled from 30° to 35°, 15 minutes for the cool down phase and around 15s for the heating phase.