I build this as a temporary media player after i realized that my last one was doomed. And as temporary solutions do, it became permanent. Its operational area shifted from living room to kitchen, though. It looks ok despite being hacked together. And works quite well with a simple python script and MPD.


  • Raspberry Pi B (Every Model will do)
  • HifiBerry DAC (Any suitable DAC will do)
  • USB WiFi dongle (Anything supported by linux will do)
  • SSD1306 0.91" OLED Display (Ebay special)
  • Rotary encoder
  • Two push buttons
  • Two LEDs
  • Cheap plastic case
  • Micro-USB-port
  • Switch
  • Lots of wires

I use a HifiBerry DAC as i had one. But there are plenty suitable ones out there. I use a cheap one from Ebay in another project and it sounds nice as well. The magick happens in the chip anyway, which are off the shelf parts. The Hifiberry one are nice because their headers directly fit the raspberry's header. Kind of a downside in this project: due to space constraints the pcb is mounted in a different location and i havbe to use jumper wires anyway. Another point for the Hifiberry is documentation and community support. Much less hassle than with the Ebay special.
And don't go for the fancy, expensive audiophile stuff. Half of it is snake oil, the second half overpriced pretty normal gear, the third half designed by smart wits and not actually good, and the last half might be really good but will probably not perform any better on the gear you actually have.


As simple as Pi (pun intended). Everything is connected using Jumper wires and mount with hot glue. The plastic case is so cheap that cutting (not round) holes with a knife is easy.
As for the jumper wires, i happen to have the necessary crimping $file tool as well as a $file box of connectors. A kit of cheap jumper wires will do too. Mostly female-female are needed, but when your DAC is designed as shield and you plan to mount it differently some male-female are necessary as well. Kits with all three types are available too.
The HifiBerry is designed as a shield, but using it that way blocks the whole GPIO header. And the RCA connectors are on the wrong sind then. Thus i connected it using (again) jumper wires.

The Display is tiny. See? the small blueish rectangle below the rotary encoder?


I wrote a simple (primitive and shitty) program in C using the wiringpi lib. Later, after installing the Display i wrote a better $file one using Python. Its not documented and certainly buggy. And lacks many functions. But it works for now :)
Path: 42.522, Handler: 5.666, Options: 9.656, Content: 9.864, Template: 0.03, Render: 12.661