The controller uses the following libraries:
EEPROM - to store configurable parameters.
GLCD - For the display.
Ethernet - A small webserver to get temperature data off the
controller. And UDP to get ntp time data for the internal clock.
OneWire - There are a total of (6) DS18B20 temp sensors. The
sensor out at the solar hot water collector is a long run. To
get reliable communication with that sensor I put it on it's own
pin of the Teensy. The other 5 sensors are on another pin.
Bounce - To de-bounce the buttons.
DateTime - I did not use most of this library. Just pulled a
function that takes the ntp time_t seconds and fills a tm
struct.
The hot water collectors are the evacuated glass tube type.
These can quickly reach very high temperatures if the
water/glycol solution does not remove the heat fast enough. A
failure in the controller would cause over temperature and over
pressure conditions within a couple minutes. So the hardware and
software have to be robust and bug-free. There's 2074 lines of C
code. It seems like such a simple project to simply turn on and
off 5 zone valves and 2 pumps but in reality it's not so easy.
So, Thanks for turning Teensy into TeensyDuino. I can only
imagine how difficult it was to get it to all work together
(hardware, software and people!),
Rich