Hardware
The hardware is pretty silmple as it uses a raspberrypi 3. Version 3 is not necessary, rpi1 or 2 is sufficient for the music box to work.
The mini jack audio output of the rpi is connected to a 15W audio amplifier connected to 2 8Ohms output speakers.
A USB NFC card reader is used to scan NFC card and is blugged to USB host of the Raspberry PI.
Software
Software has to be reliable, as it's a music box for a kid. Especially i don't want Raspbian, as it's slow to boot, and not resilient to power cut. So i decided to use a dedicated Linux distribution, running in RAM, and i used Buildroot to do that.
The software is really simple :
- Rpi bootloader
- Linux kernel
- Initramfs bundled to Linux kernel
Rootfs contains :
- Busybox
- Squeezelite : The perfect squeezebox player. https://github.com/ralph-irving/squeezelite
- squeezenfc : https://github.com/naguirre/squeezenfc
And that's all. I also installed wifi tools and firmware, but I didn't use them as Binky is Ethernet connected.
The whole image is less than 10MB and run in RAM, so even if the power is cut off, everything is running back at next boot.