I am in love with the idea of Multi-Room Music setups. Currently, I have been renovating my house and while the walls were open, I have been hard wiring speakers throughout the first floor. These speakers are controlled by Logitech Media Server (which is for now, running on my desktop) and a SqueezeSlave for each zone.
That is all well and good, however, I wanted a more portable option for the bedrooms, which are on the the second floor. So I knew I wanted to develop a wireless sound system. After being inspired by various projects, I decided to build my own Squeezebox (now discontinued , thus giving birth to the SqueezePi.
This article is actually quite lengthy and will be broken up into a series of 4 detailed posts giving an in depth explanation of the design and construction behind the SqueezePi. The first, is this post and will cover the basic design concept. The second, is in regards to the configuration of the RaspberryPi. The third, will be about the speaker/amplifier as well as the other electronics required. The fourth and final, will cover the construction of the speaker box, the overall assembly, and bringing together the whole project.
This project needed to first and foremost look good. If I was going to have it on display, it needed to pass the wife’s visual inspection. Secondly, it needed to be easy to use. Like I said earlier, my wife and I have already been using the Logitech Media Server’s (LMS) web interface (also android app and ios app), so I felt this was the way to go. Overall, the Wife Acceptance Factor (WAF) needed to be pretty high and these GUIs helped get me there quickly.
In addition to looking good, I wanted to keep the design on the “smaller” side. That way, we would be able to put the speaker on a fairly small end table and not have it take up the entire space. But I also didn’t want for it to be so small that it was too quiet…follow?
By utilizing LMS, we would have access to all of our local music as well as web based radio stations. This, in all honesty, is probably more music and options than we will ever use.
I decided pretty early on that I wanted to use a RaspberryPi for this project. Mostly since I wanted an excuse to play with one, but also I figured that it would be a good fit for this application. RaspberryPi’s are good at being networked devices, and the community has already adapted both SqueezeSlave and SqueezeLite to run on it.
The biggest challenge using the RaspberryPi, would be ensuring fast boot up. I did not want to have to wait 30-60 seconds before it was done booting so that I could finally play a song. In the end, I wound up utilizing ArchLinux, due to it having less overhead than Raspbian and thus booting significantly faster. On average, it only takes 5-10 seconds from flipping the power switch to a song playing.
I also needed to ensure quick volume control. I would hate needing to run to a computer/phone/tablet to just lower the volume if I needed to answer the phone or the door. So I wanted to have a nice volume control knob that would be easily accessed.
Lastly, I wanted for the entire speaker to be wireless (other than the power cable obviously). By making the SqueezePi a wireless sound system, I would not be tied down to placing the speaker by the single ethernet port in each room.
Like I said earlier, aesthetics were very important to the SqueezePi design. So, I spent a while coming up with different layouts, sizes, and shapes. Some designs featured LCDs, some had control buttons, and others had various other music source capabilities. In the end, I let my wife pick :-p.
Final Design Specs
- Name: SqueezePi
- Dimensions: 8″ cube – Dimensioned Drawing
- Input: 120V
- RaspberryPi (running ArchLinux)
- WiFi: 802.11b/g/n
- 4″ Speaker
- 3.5 Watt Amp
- Volume Control Knob
- Power Status LED
- Introduction to SqueezePi
- RaspberryPi Configuration
- Electronics Setup (coming soon)
- Speaker Box Construction and Assembly (coming soon)