BitCake – Electronic Birthday Cake
- Maksym Ganenko
Impress your friend with the ultimate geek’s Birthday Cake! A hand-made open source electronic cake with candles you can blow out!
Features 9 LED candles that you can blow on, to make them flicker and go out, like you do with a real birthday cake! Each candle blinks with random period and phase that depends on the intensity of the air flow
- Piezo sensor and a special air trap to detect air flow with astounding sensitivity using resonance effect
- Atmel ATTiny44 microcontroller on board with 4 kilobytes of flash memory and 256 bytes RAM
- Open source hardware and firmware. Can be re-programmed with an ICSP programmer or Arduino board via Arduino IDE
- Size 42 x 42 x 18 mm, weight 26g
- Powered by a single AAAA/LR61 battery (included)
- 3.3V step-up converter on board
- Ultra low shutdown current (less than 1 ΅A in deep shutdown)
- Hand-soldered using lead-free solder
BitCake is an open source hardware product that you can reproduce at home by following this circuit diagram:
The heart of the device is Atmel ATTiny44 microcontroller. Its built-in differential ADC channel with 20x gain is connected to a piezo sensor. The rest nine general input-output pins are connected to nine separate LEDs circuits.
A step-up DC-to-DC power converter is used to increase output voltage to 3.3V at the expense of increased current provided by the battery. For that purpose, Holtek 7733 integrated circuit is used. Its SOT-23-5 package has additional Chip Enable (CE) input that turns off the converter into deep shutdown with ultra-low supply current.
By pushing the button we open transistor to charge 10 ΅F capacitor that enables the step-up converter. At the same time a reset signal is sent to the microcontroller, so it starts to execute its program. The 10 ΅F capacitor slowly discharges via 10 MOhm resistor so that it will turn off the converter in 3 minutes.
BitCake is run by an open source firmware code which you can upload to the device from Arduino IDE. You’ll need either an ISP programmer like USBTiny or another Arduino. Also, you’ll need to install some special ATTiny libraries to the Arduino IDE and select ATTiny44 8MHz board.
- Random LEDs flickering when there’s no blowing. The challenge is that LEDs switching (on/off) during piezo sensor sampling phase brings additional noise to blow detection algorithm
- Charlieplexing algorithm, but this would also require LEDs switching during the sampling phase
- DIY kit with through-hole components
- Attachable LEDs of different colors (e.g. using eyelets)
- A case. There’s a lot of possibilities from polymer clay to 3D printers
- USB interface and bootloader
- UV LEDs and UV reactive neon paint