Using a Pt100 RTD with my generic heating / cooling controller

Generic heating / cooling controller describes a bang-bang type thermostat based on a AtTiny25.

This article works up an example application using a Pt100 RTD sensor. Pt100 is the designation for a platinum (Pt) resistance temperature detector with nominal resistance of 100Ω at 0°. Pt has a nearly linear resistance / temperature characteristic and high accuracy.


Pt100 sensors are readily available on eBay for prices well below A$10. Pt RTDs have quite good accuracy so can be used without individual calibration for many purposes.

The sensor can be used with the Generic heating / cooling controller, but the 10 bit ADC in the AtTiny25 limits resolution somewhat.

Example workup

The example scenario is a cooling controller to cut in at 50° and cut out at 45°.

Using the 1.1V ADC reference in the AtTiny25, the objective is to get the RTD voltage close to 1.1V at the high end of the expected temperature range.

Clip 129

Above, the input voltage using a 510Ω series resistor from 5V, sensor current at 20° will be 8mA (a little higher than desirable). The RTD could be wired up using two wire or three wire topology, four wire is not supported due to the common ground for the RTD and ADC reference.

This gives a resolution of 0.43° at 50°, plenty for a bang-bang controller with 5° differential. (This is similar resolution to that using an ordinary silicon diode for this application, successfully implemented many times.)

The bias circuit could be rearranged for better three wire cancellation of connecting wire resistance variation, but at the expense of resolution which will typically more than offset any gain.

For most purposes, a simple two wire connection will be sufficiently good given the system resolution.


For the limits discussed, EEPROM constants are:

  • opt=0x04 (non-inverted control loop, cooling, external sensor)
  • tos=0
  • ton=882
  • diff=12

Other EEPROM constants are as discussed at Generic heating / cooling controller.