Finally finished the circuit board design. I ended up going with a
pretty different approach than I was originally planning, since this
design is low impact and allows board stacking. An ATMEGA328 chip
running as an I2C slave will be the primary communication between the
raspberry pi and the hardware, instead of the raspberry pi directly
controlling the hardware. Code changes to accommodate will be
forthcoming, although this works towards allowing multi-zone heating