![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkEU09JMzjH85deEt13ZAAQlWUikTiBDAVihrIx4nPh8oQjfWdi8PsVmNSLXOQW-xbQRAQNM_Qxc_oFyb9TxiyhoPBZhVZm_PbxDfzzTpkvWEj_59KCe4ffNEjpv3WIU4_NsP6Hx4P1qeA/s320/20171030_234300_Richtone%2528HDR%2529.jpg)
The panel is built mostly of Moosgummi (craft foam rubber), and I mounted my Raspberry Pi 0 into it. The Rπ0 and all the other stuff is mounted in a sandwich of Moosgummi sheets with strips of Moosgummi around the edge. Power and development (eg. changing the scrolling message or the blink pattern) is done trough a gap, through which a (short) USB cable is fed. The LEDs are connected trough 150 Ohm resistors directly to the GPIOs.
The SD card has Raspbian Stretch Lite on it, to which I added the Adafruit SSD1306 Python library. The Python script (placed in a Gist here) running the display and the LEDs sits in the (FAT-formatted) boot partition, and is called from rc.local. Once that was all in place, I used the Read-Only Raspbian script to make the system read-only; this way I can just pull the power once the trick-or-treating is done. The script on the boot partition can still be edited at will by remounting /boot read-write (or pulling the SD card and editing it on a different computer!) The Rπ0 acts as a USB Ethernet gadget, and I can just ssh into it.
Life lesson learned: Mounting blinking LEDs on your kids makes them very easy to find at night! Note to self: next time, add lights to the back (of the kids) as well.