Henrik Carlsson's Blog

All things me.

The πFi Music Player

posted this article on and tagged it with ΠiFi Music Player

Every project needs a name and I need to stop referring to the music player I’m building as "The Kid’s Music Player". So, the project name is from now on The πiFi Music Player or πFi for short.

The basic idea is to replicate the very kid friendly1 way of listening to music that a cassette player or CD player was back when I was a kid. Today we can all access pretty much every piece of music ever recorded but to do so you pretty much have to have a smart device of some kind and be able to read and write to find what you are looking for.2

To do this I’m building a device that scans pieces of cardboard with QR codes on them and then uses the information on the QR code to playback the correct track, album or artist from Spotify. (Local play might also be a feature.) The side of the "music card" that doesn’t have a QR code will have album art or similar to make it easy to identify to both adults and kids.

I currently have a soon to be alpha in my hands (or on my bookshelf). I’m using a Raspberry Pi with Mopidy for the playback, a Raspberry Pi Camera module and zbarcam to scan the QR codes, a Python script to actually do something with the information in the QR and then a HiFiBerry Amp2 to DA convert and amplify the audio for a pair of passive speakers.

As you can see in the video the physical/crafty side of the project has a lot of work that needs to be done. I’m currently using some LEGO to keep things in place, but I need a proper enclosure. I’m not 100% sure whether I’ll make something out of wood, metal or whether I’ll 3D print something unapologetically plastic. 3D printing seems like a good idea because it simplifies making more than one device, which I’m planning to do. However, I’m never 3D printed anything. Nor have I built a 3D model of anything, so I’ll have some homework.

Even more important before it can be considered even an alpha is a volume control. Right now, the only way to control the volume is to SSH into the Pi and use mpc volume XX where XX is the percentage of volume I want. Because the amplifier is 2x 30 Watts, it’s quite loud in a normal home setting. As I’m listening while typing now I have it set for 7% volume.

The WAF of SSHing into something to change it’s volume from ear-piercingly loud to tolerable is very low.3

I also think it need some kinds of physical controls, at least for play/pause, stop and next track. Right now those functions are also accessed via QR codes.

Before moving it into beta I also need to build speakers. I have borrowed the ones I’m using now from a friend. I might also build a proper power supply for it, instead of using the wall wart that I use now.

Many things are still uncertain and there are so much I need to learn how to do, but I am really happy to have started this project, and that I actually got back to it after having left it dormant for three mounts.

If you want to follow along everything will be published here on the blog. I’ll try to remember to tag all the posts with πiFi Music Player.


  1. Or "non techy person" friendly.  ↩

  2. Yes, I am aware of "smart speakers", ladies in cans and "AHOY TELEPHONE". Here’s some reasons why that’s not a solution here.  ↩

  3. Yes, "Wife Acceptance Factor" is probably a very problematic term these days. I think we should try to change it to "PAF – Partner(s) Acceptance Factor". The idea itself, that something that appeals to a nerdy person doesn’t necessarily appeal to the other person(s) living with the nerd, still has merits and is worth considering when building and/or purchasing something like this. Regardless of the gender and/or pronoun of the nerd and the other person(s) involved.  ↩