100%
sonibox sonibox view
Description

Imported from GitHub: trappitsch/sonibox · commit 1592785 · license MIT

Description

Music box

README

sonibox

A music box. Plays music from a specific folder when an RFID tag is placed on the reader. If you want to build this, e.g., for your kid, I highly recommend to add more than 5 songs to any given playlist... or add more later ;)

my first version of the box

Approximate BOM, but you can use similar parts, vary as needed!

PCB

The PCB is designed in KiCad, see the pcb folder. Production files for JLCPCB are in the pcb/jlcpcb folder. Assembly needs to be done by hand using through-hole components.

For the connectors you can use any 2.54mm pitch pin headers or similar sized Molex connectors (as a nice alternative).

Enclosure

An outline of the enclosure is shown in the enclosure folder. This is designed for 3mm acrylic. Many boxes are possible, this is just one example I liked. Check out this site for more ideas!

Firmware

The firmware is written in Rust and uses embassy as the async executor. After 5 min of inactivity, the box will stop polling the RFID reader to save power, however, the current version does not put the MP3 player or the power button LED (if present) to sleep. A future version could however do that! However, using a beefy battery helps a lot even with these shortcomings.

A shout out to 1-rafael-1, the maintainer of the dfplayer-async crate. Also a big thank you to the embassy team for this amazing tool and for fostering a very friendly and helpful community!

Todo

  • Add a watchdog to reset the Pico if some task gets stuck
  • Add functionality to really put all power drawing components to sleep after inactivity (requires hardware mods)
  • Add some better LED animations when the music plays. Something random?

License

This project is licensed under the MIT License - see the LICENSE file for details.

Comments
Sign in to comment

No comments yet. Be the first to ask about this board.