3D-Printed Raspberry Pi-Powered RFID Jukebox Brings Physicality to Spotify Streaming
Pseudonymous maker "Leo" has published a guide for creating a physical jukebox for the popular Spotify streaming service, by triggering playback based on RFID tags — in an effort to improve the service's accessibility.
"In this day and age, everything is digital and app controllable. This brings a lot of comfort and simplicity with it," Leo explains. "However, the elderly and young people in particular are being left behind. For example, for a long time it was not possible for my little sister to turn on an audio book by herself without asking someone with a phone to put it on."
This problem and the motivation to make music physical and tangible again moved me to this project. The interaction with music and other people through jukeboxes (at least as it is often portrayed in movies) intrigued me, and especially for house parties, it's a great feature to actively involve the guests in the party."
Leo's solution is a Raspberry Pi Zero W single-board computer connected to a PN532 RFID reader/writer, and a stack of Ntag2xx RFID cards — plus printer labels for each, to make it clear what they'll trigger when scanned. Add in a rotary encoder and a pair of anti-vandal LED buttons, cram it all into a 3D-printed case - and the physical jukebox is ready to rock.
"For a simple music control we use a: Play/Pause function; Skip function; Volume up/down function," Leo notes. "Since I mainly want to play playlists, a shuffle button is also a handy feature. So there are two buttons (skip and shuffle) and a rotary encoder (volume) with play/pause when pressed. In addition, the buttons have LED lighting to provide feedback and indicate whether shuffle is enabled or not. When adjusting the volume, the brightness of the LEDs also shows the volume in percent."
Other features are encoded onto the RFID cards: One set of cards chooses a particular playback device to receive the audio stream, for example; others trigger the selection of a particular playlist. A "learning" card allows for blank cards to be easily programmed to a particular playlist — or to update the playlist entry on an existing card.
Leo's full guide has been published on Instructables, though the maker warns that "the project is not recommended for people who want a plug and play/one-script solution, and are not willing or capable of deal with technical issues." The source code is also available on GitHub, under an unspecified license.