Kids player (with RFID control)

Hi there. My name is David, I am living in Germany and I would like to present my first Volumio project: a Kids player with RFID control.
There are already some open-source projects (e.g. Phoenibox or Tonuino) and commercial products (e.g. Hoerbert or Tonies) out there trying to enable a smooth interaction between a child and its media player. If the child cannot read, the interaction must work using colors (buttons), images or voices/tones. RFID tags in combination with pictures are an easy way to give your child full control of the player. This solution is chosen by Phoenibox, Tonuino and Tonies. I decided to do the same but using volumio as software platform. This is how it looks.

Housing

Front:


Back:


Hardware

I am using the following hardware components:

  1. RaspberryPi Zero
  2. Hifiberry Miniamp
  3. RFID Reader
  4. RGB LED
  5. Rotary encoder
  6. Speaker
  7. Small breadboard
  8. Colorful arcade buttons

Wiring

The Raspberry Pi pinout was taken from the official Raspberry Pi website.

Power consumption

At the moment the whole setup is powered with a 5V cellphone charger or a power bar. The current drain is approx. 0.3A (1.5 Watts). I would like to integrate the power bar (batteries) into the housing of the player in the future.

Software

I am using the following software:

  1. Volumio 2.834
  2. Volumio plugins
    2.1 GPIO Buttons 0.8.1
    2.2 Rotary encoder 1.2.2
    2.3 Spotify 2.0.2
    2.4 Podcast 0.3.0
    2.5 Volumio Spotify Connect2 1.0.5
    2.6 NFC Reader 0.2.6 Source

Software adaptions

I had to adapt the NFC reader plugin to get it running on my system. I will publish the source code on my GitHub account.
I also added one line of code in the GPIO buttons plugin to get it working with the Volumio Spotify Connect2 plugin.

Features

  • The GPIO Buttons plugin is reacting on the arcade buttons on the top (play, forward, backward).
  • The rotary encoder KY-040 is controlled by the rotary encoder plugin. I am using the built-in switch to mute the player and holding the switch for more than a second to shut down the system.
  • Using the NFC reader plugin you can program different playlists to different RFID tags. If you move the card close to the player, the linked playlist will be started. This works with Spotify tracks as well as web radio stations (I have a web radio station playlist, that can be played with a RFID tag and afterwards you can choose the station with the forward/backward buttons).
  • My kids are using the RFID cards to start their favorite music, radio play or audio book. This works quite well.

Further development

  • The boot-up time is very long. No child would accept such a long boot-up time. If anybody knows how this can be improved, I would be happy to hear about it.
  • I would like to start a podcast using the RFID method (Somehow the episodes of one podcast must be in a playlist).
  • The RGB LED is not yet working (it is just shining blue light). Is there already a plugin capable of controlling a LED based on the ws281x chipset? If not I plan to write a new plugin using the rpi-ws281x-v2 npm module.
2 Likes

Happy New Year! Very nice project.

Everything expertly worked and documented. I think also for children very well operable and ergonomically designed!

I am interested in your settings on the GPIO Buttons plugin. Could you upload a screenshot of it?

Hi @beu-ys.

Thank you. I wish you also a happy new year. Here is a screenshot of the settings:

1 Like

Love this project. You mentioned that you made adaptions to the NFC reader plugin and I was wondering what changes you made and where you published the source code.

Hi @Dunsun,

So I am actually not sure if the adaptions were actually needed or not. My node experience is quite limited and I am learning the trial and error way (with a decreasing failure rate). Anyway the changes I made worked for me. It is mainly updating the node module mfrc522-rpi to a newer version. My changes are published here: GitHub - chasquiwan/volumio-plugins .
So the original code came from @mrsimpson : GitHub - mrsimpson/volumio-plugins: NFC reader for volumio . He also has a nice description of his project: GitHub - mrsimpson/jukepi: Scripts for a Pi-Based jukebox

David

1 Like

Hi @chasquiwan
I’m very interested in your solution. But instead of a NFC reader I have only an USB RFID reader (125khz). Is there a way to use your solution with that one too? Is your solution able to play local mp3 playlists as well?

Thanks in advance for your answer

Tobi from Switzerland

I didn’t notice this post the first time round, but I am really impressed with the idea. Well done! In terms of speeding things up, I would think you really should think about using a RPi (2/)3/4. I love RPi0s, but you must recognise their limitations.

Hi Tobi,
The plugin that I am using in my player is designed for this specific RFID reader. Adapting the software of the plugin for your USB reader might be possible, but it is hard to say how complicated this would be. You can play anything that can be put into a volumio playlist: I am mainly using it for local media (mp3), spotify playlists (using the spotify plugin) and radio stations.

Cheers, David

Hi @chsims1,

Thanks for the feedback. I guess using a RPI 3/4 would already be better in terms of startup time, but my son is getting used to wait for the green light. The RPI 0 is the best choice in terms of power consumption (for battery powered solutions).

Cheers, David

yep definitely … swings & roundabouts (appropriate for a “Kids player” :wink: ).

Hi there,

This is a great project! Nice work! I’ve built a couple of Phonieboxes and am very interested in getting a similar finctionality but using Volumio - is there a way you’ve encountered to playback individual albums stored locally? The solutions I’ve seen seem to only work with Spotify links or playlists - I’d love to have something that played albums stored on a local hard drive.

Hi @mistersunshine ,

My solution is to generate a playlist for every album I would like to link to a card.

Cheers, David

UPDATE: I had to update my Volumio firmware due to this issue (Spotify plugin was not working anymore). I am now using volumio system version 2.917 . I also updated to the Spotify plugin to version 2.0.3. All plugins seems to work with the new system version.

Hi David, that looks fantastic! I would love to get it running on my raspi3 / hifiberry amp with volumio 3.251. I manually installed the GPIO button, rotary encoder and NFC reader plugins from your github repo. The plugins are then listed in the plugin screen of volumio’s web UI but I cannot start / activate any of them in the UI getting an error message which is of little help. Have you ever tried with voumio3? Do have any idea to get running? Thx!

[edit:]
Update: in addition, after trying to start the plugins in the UI, the UI freezes and remains inaccessible even after reboot. Moving the plugin files from /data/plugins to some backup dir resolves the UI freezing.

Hi Oli, sorry for the late reply. I have not tested my setup with volumio 3. It seems to be a bigger effort, but since the spotify plugin is not working for volumio 2 any more, I might take the risk and update my setup. Honestly I do not know the difference between volumio 2 and 3 yet, so I cannot provide any helpful information on the issue yet. I will update this thread, once I have tried it.

Hi all, I tried updating to volumio 3, but my hardware setup did not work out-of-the box for me. So I tried to get the spotify plugin running for volumio 2 and this worked out with a small hack. I uninstalled the spotify plugin 2.0.2., but kept the spotify connect2 plugin and disabled it. Afterwards I installed the spotify plugin 3.0.3. . The plugin did not run at the beginning and after some debugging, I identified the vollibrespot executable to be the problem. I copied the vollibrespot executable that came with spotify connect2 plugin (/usr/bin/vollibrespot) to the spotify plugin folder (/data/plugins/music_service/spop/bin/vollibrespot) and overwrote the existing one. Then it worked.

1 Like

The RFID Plugin doesnt work anymore!

Hi @poiy ,

I am not sure which SW version of volumio you are using, but I have not tested any volumio 3.x.x version. I guess it would not work anymore.

Cheers, David

I have the latest Version.
I’m toying with the idea of commissioning this from Fiverr. I had seen another user that he realizes it with an ESP8266 (Wemos D19) and the Volumio API. Since one would be safe from updates, except Volumio changes its API. An other benefied would be that you could put the RFID scanner in a different place than your streamer.

Maybe someone else is interested or someone here in the forum will take pity on me

Well I am sad to see that the plugin doesn’t work anymore.
For my specific setup i can’t even use the plugin in its current state, due to my NFC Reader beeing a USB device.

But maybe i can see if i can create my own plugin.
Multiple things needed for that:

  • select the correct usb device (depending on how it works just waiting for keyboard input might be necessary)
  • Interface the usb device with Volumio to select a specific album/song
  • Either wait for keyboard input or monitor the linux usb device for changes. Remember under linux everything is a file. Just need to find the correct device and bobs your uncle.

If anyone knows of documentation on how to add a plugin to volumio please link me the documentation.

Also i will be trying to see what happens on the Phoniebox side to make all that usb nfc reader stuff work.