I recently finished the construction on my landscape lighting base station, putting everything into the boxes I have, and wiring everything up.

Turned the power on, pressed the buttons, and the relays worked fine. Turned on the remote, and it worked as well. Win.

And then I did the important heat test, where you grab the components to make sure that they weren't overheating. The relays were fine, the transistors driving the relays were cool, and the avr was also cool.

Then I burnt myself on the 7805 voltage regulator. Which isn't very surprising. The 4 relays pull about 750 mA in total, and along with the xbee and everything else, the total current draw is 0.85 amps. The regulator itself is rated up to an amp, so it's fine, but since the input voltage is 12V, that means we need to get rid of (12Vin - 5Vout) * 0.85A = 6 watts. Not a ton of heat, but waaay too much for the regulator by itself. I dug out the data sheet, and found that the 7805 is rated up to 125 degrees C at the junction which is pretty darn hot. I modded a heatsink into the side of the case, hooked it up, turned everything on, and let it bake for a bit. My IR thermometer says that the heatsink stabilizes at about 74 degrees C. This is okay for the device, but hot enough that you don't really want to be touching it.

So, I'm thinking about the option. There are really two that I've considered...

The first option would be to rework the output board. If I had been thinking ahead of time, I would have used 12VAC relays, driven then from triacs with opto-isolators that connected to the AVR. That would have dropped the per-channel current down to perhaps 24 mA, and the overall current to perhaps 200mA. But that's still going to dissipate over a watt, and still require a heatsink - though it would be a lot cooler.

The better option is to switch to a switching regulator. Those run at high enough efficiency to not need a heatsink, and they come in drop-in replacements for the 7805. A bit pricey, but certainly a simpler choice.