It now seems "Birds-of-the-Damned" will be an annual project for me. Last year I hand-built a prototype for this Halloween decoration. This year I finalized the schematic and firmware and ran two spins using OSH Park's excellent prototyping service.
The first spin of the board proved out the schematic and the second explored how small I could get the two-layer board.
Next year I'll probably continue to develop this project. I'll start with the shrink version (v1.2) but make two changes:
I'll switch from a cut-away programming header to pads and a programming jig.
I'll omit the trimpot since I can use the existing prototypes to dial in the daylight sensitivity values I need.
From there I'm going to concentrate on developing a waterproof enclosure to allow these devices to be hung up in trees and survive the rain. The effect I'm going for is hinted at by the following video showing 4 devices in a bush:
Once I have the enclosure designed I should be able to get a dozen or so of these built to finally realize the original idea of a spooky tree filled with phantom birds eager to swoop down and steal your soul (mwu-ha-ha-ha-ha-haaaaa!)
One note on the statemachine here: the main loop of the firmware runs the machine waiting for it to become finalized. When this happens the core enters a deep sleep mode that causes the peripherals to lose all state. The only thing still operational in this mode is the "wake on interrupt" pin connected to the MAX440009 light sensor and (of course) the system RAM. When a daylight threshold has been crossed this interrupt fires and wakes up the core which immediately resets itself to rebuild state.