In early 2015 I was getting married and as a favour to my fiancée, rather than try to involve myself in planning the wedding (which would have mainly been the contribution of Analysis Paralysis) I worked on making wedding favours instead.
We had a small wedding, only 25 were needed, so I decided to stretch myself. Note to past self: this was a really stupid idea! The project consists of a truncated pyramid of stained glass, foiled in copper tape and soldered together, before being soldered to the populated PCB. The PCB has an Atmel uC running PWM on some warm-white LEDs in different patterns that it selects in turn.
To make it more interesting (again, really bad idea when you're also getting married), the device can be USB powered. It then uses the LUFA USB library to enumerate as a USB keyboard, and detects LED CapsLock reports sent by a host computer, and uses this as an input to select specific patterns. The computer thinks it has multiple USB keyboards attached, and on Windows and Linux (most window managers in Linux at least) if one keyboard sets a CapsLock, reports are sent to all keyboards to synchronise their CapsLock LED state. So the candle picks up input from the user without requiring any drivers at all! The circuitry to do this is effectively the same as the Minimus board, which is what I did my prototyping on.
As there weren't going to be any computers at the wedding, the board also runs from battery power using an NCP1402 step-up DC-DC converter that can generate 3V3 from as low as 0.9V. I actually bought the breakout board there as this seemed too good to be true to my jaded eyes but it's actually worked brilliantly. To keep size down I bought N batteries (which are AAA but 2/3rd as long).