Looks like the Atmega328p has a built-in watchdog, which can be configured to a max period of 8 seconds. That's good for my purposes. But I'll have to fuss about to see if the Arduino bootloader code properly deals with it or not -- there's a fair bit of online discussion about that.

I've also got another gizmo laying around that is yet to be installed in the thermostat case: an ultrasonic rangefinder. I'm going to use this as a motion/proximity sensor, to turn the LCD backlight off when there's nobody in front of the thermostat. This will reduce light pollution, and also cut the overall power consumption by half.

The rangefinder itself consumes about 10mA, so I may power it through a spare gate of the relay driver chip, allowing it to be completely powered down when not actively sampling.

There goes three of the remaining 4 GPIO pins. frown

But I'm not touching anything in there until my FTDI boards get repaired -- parts expected here on Friday.

Cheers