Youngster’s ESP32 Jukebox Uses RFID To Queue Tunes

Though kids today have an incredible knack for figuring out modern phones and tablets, there’s still something to be said for offering a simple physical user interface for little hands. To that end, [Martin Hierholzer] has put together a whimsical jukebox that his two year old daughter can use to listen to her favorite songs. With just a few simple buttons, no display to read, and the ability to stop and start songs using RFID tags embedded into 3D printed figures, it’s a perfect interface for tiny humans just getting the hang of interacting with technology.

While the Raspberry Pi might have been the more obvious choice to base this project around, [Martin] decided to go the ESP32 route for improved energy efficiency. The popular microcontroller is more than powerful enough to play MP3s, and its integrated WiFi connectivity allows the player to download new tracks from the network occasionally. He added a micro SD slot to provide some mass storage, a PCM5102 I2S DAC with a PAM8403 amplifier to handle the audio side of things, and a MFRC522 RFID receiver that can pick up tags placed on the top of the player. Power is provided by parts salvaged from a USB battery bank, and everything is housed on a custom PCB.

The relatively low power requirements of the ESP32 means the jukebox can keep the party going for many hours (perhaps even days) when in active use. When the RFID token is removed and there are no songs to play, some clever coding kicks the chip into low-power mode to greatly extend the player’s standby time. [Martin] says it can sleep for months without having to be recharged, and considering some of the impressive feats of battery-sipping we’ve previously seen from the ESP32, we don’t doubt it.

Even if you don’t have any young music lovers at home, the documentation [Martin] has put together for this project is absolutely worth a look. Whether its how he configures the server side to push songs and firmware updates to the player, how he wrangled the ESP32’s Ultra-Low Power coprocessor (ULP), or the woodworking tips used to produce the charming enclosure, you’re sure to pick up a trick or two.

The children of hackers and makers always seem to get the coolest stuff, and we’re looking forward to seeing what [Martin] comes up with next. After all, kids grow up fast and pretty soon his daughter is going to need something new to entertain her.

14 thoughts on “Youngster’s ESP32 Jukebox Uses RFID To Queue Tunes

    1. Thanks. This reminds me that I actually have modified the board, and I forgot about this when writing the documentation since it was long ago. I did not tamper with the coils, I merely removed the LED, which was drawing power even when the device is but to standby. Otherwise the power consumption is acceptable low already, since the card is polled only every few seconds, and only the card ID is read which doesn’t take long. I guess the optimisation shown in your link is very useful if a different activity pattern is required.
      I will update my documentation… :-)

    1. Even worse, I have signal wires below it. Placement was a bit difficult on a 2-layer PCB with my limited manufacturing capabilities. I didn’t care so much about WiFi, since it is normally switched off, and a limited WiFi range is acceptable as it is only used during updates. I was more concerned about possible interference of the RFID field with the audio components, so I paid attention not to place anything critical below the RFID board, which is rather big and needs to sit in the middle of the board.
      Of course you are totally right, one can do that better.

      1. You might consider using some co-ax jumpers to help isolate the audio lines that you’re worried about–but beware the ground loop!

        But getting the RF away from the ground plane–hanging the ESP32 off the edge of the board is ideal. It both helps the wifi and decreases the audio interference. Not sure if you’re using wifi at the same time as audio, but if you are, then you might want to add extra power supply bypass to the ESP32 as it’s a bit bursty in its power useage and that can easily bleed into the audio.

        Two layer RF+audio+digital is quite a challenge! Good luck!

        1. Actually, I have tested using Wifi with audio (streaming a web radio) and it works well. The audio part is well separated from the digital part, and the WiFi antenna is only over the digital ground, not the analogue ground. And I have several bypasses on the analogue audio side (including a huge 1.5F just to be really sure – it can actually run the entire board for a few seconds ;-)) to prevent any disturbance.

          I though about hanging the ESP32 antenna over the edge, but I wasn’t able to get all signals out then. I cannot place a via below the ESP32, because my vias are holes with a wire soldered on both sides, so that doesn’t fit :-)

          Even though the board is rather big and there is plenty of free space on it left, it was not so easy to fit all the components with all the restrictions I had. Maybe a simple improvement would be to try to get the area below the antenna at least as clear as possible. Somehow I didn’t pay attention to that any more at the end.

          I guess thinks can be improved further if a professionally produced board is used. Probably two layers are even enough then, since traces and vias can be much smaller. Since it works for me now quite well, I don’t see the need to change it.

    1. It’s unfortunately not possible to change this any more… (or is it?) The code structure is not a fork, only github still has the reference in because I created the repo as a fork. This was because I didn’t understand how Arduino libraries work at that time… Now the project doesn’t even have that library in any more.

  1. This is awesome. I’ve been working on something like this for my daughter. I prototyped it so far with a raspberry pi and a USB RFID reader but my goal is to switch to something like this.

    I haven’t done anything with ESP32 before and it will be my first time soldering so fingers crossed. I’m really excited to have this to look at.

    Here’s a video of my daughter demoing the prototype:

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.