Last Updated:

SqueezeBerry : a Music Player based on Raspberry and Squeezebox

Today I wanted to share my first Raspberry Pi project.
It’s a music player based on raspberry pi and squeezebox system.
This is the result :

The SqueezeBerry hardware is composed by :
- a Raspberry PI (model A or B)
- a wifi usb dongle
- speakers from a old PC speaker
- a LCD blue screen 16x2 based on HD44780
- a wood case
- a push button
- a rotary encoder switch
- a potentiometer

The SqueezeBerry works with a Logitech Media Server (alias Squeezebox Server)

The SqueezeBerry software is composed by :
- Raspbian (Raspberry OS)
- squeezelite : a squeezebox emulator for linux
- the user interface program

the electronic side

I’m a newbie in electronic, so please don’t blame me for this scheme (click to enlarge) :

As you can see, all the buttons are not on the breadboard, the reason why is because in the final project the breadboard will become a pcb board, and the buttons will be wire connected to this board.

the Software side

First of all, you have to update Raspian

sudo apt-get update
sudo apt-get upgrade

Then, install squeezelite

sudo apt-get install libflac-dev
sudo apt-get install libfaad2
sudo apt-get install libmad0

wget http://squeezelite.googlecode.com/files/squeezelite-armv6
chmod u+x squeezelite-armv6
squeezelite-armv6 -l

You should see something like this :

pi@raspberrypi ~/squeezelite $ ./squeezelite-armv6 -l
Output devices:
null - Discard all samples (playback) or generate zero samples (capture)
pulse - Playback/recording through the PulseAudio sound server
sysdefault:CARD=ALSA - bcm2835 ALSA, bcm2835 ALSA - Default Audio Device
Now, launch squeezelite, replacing 192.168.0.10 by your squeezebox server private IP adress :
./squeezelite-armv6 -o sysdefault:CARD=ALSA -a 5000:4 192.168.0.10

Ok, now you have a squeezebox on your raspberry. Let’s control it.
For the LCD screen I have modify this HD44780 class
For the rotary encoder I have use the Gaugette Library

The full UI code can be downloaded here.

Before the UI can run, you have to setup your squeezebox server IP adresse and your raspberry Mac address. Alter the line 236 of squeezeberryUI_v1.py

self.sbs = SqueezeBoxServer(host="192.168.0.10",port=9000, player_id="ab:1f:cb:82:cc:50")

And now launch it :
sudo python squeezeberryUI_v1.py

The Wood Case

For the case I’ve used some pieces of wood founded in my garage.
Here is the result:

Comments