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 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 :
- Squeezelite : The perfect squeezebox player. https://github.com/ralph-irving/squeezelite
- squeezenfc : https://github.com/naguirre/squeezenfc
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.