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
chmod u+x squeezelite-armv6
You should see something like this :
pi@raspberrypi ~/squeezelite $ ./squeezelite-armv6 -l
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: