My last post dealt with setting up the software side of a multi-room home audio solution and demonstrated how you can use Snapcast and Mopidy to create a server that will stream audio from various sources across your network to a configured client – this post will deal with the hardware side of things.
DISCLAIMER: I PURCHASED ALL OF THESE ITEMS OUT OF MY OWN POCKET, I HAVE NOT BEEN PAID FOR THIS BLOG POST, NOR WAS I PROVIDED WITH THE HARDWARE BY THE VENDORS.*
As you may recall, the goal of this project is to provide a Sonos-like experience for less than £167/room. The solution has to provide the following:
- The ability to send different audio streams to different rooms at the same time
- The ability to send the same stream to different rooms at the same time
- Compatibility with OpenHAB
Snapcast server and client take care of sending the audio between the various devices, whilst Mopidy takes care of handling what the streams actually are.
The hardware for this needed to be small but with a reasonable sound quality and, most importantly, reasonably priced. It also needs to run Linux so we can install snapclient on it, so I settled on a Raspberry Pi Zero as the client and a cheap bluetooth radio alarm-clock for the speakers.
The Pi Zero I purchased was part of a project kit and came with a pHAT-DAC to provide the audio out capability of the device. Assembly was simple – solder the header pins on to the pHAT-DAC, plug it in to the Raspberry Pi Zero GPIO pins and then enable the correct settings before rebooting the pi.
Plug the included cable from the Zero to the speaker’s “line in”, and connect a cable between the “usb” port on the speaker and the “power in” on the Zero (this has the added benefit of making the whole thing portable, as the speaker has a battery in it as well!) before setting the input of the speaker to “Line” using the “mode” button.
Install the Snapclient software onto the Pi Zero, and configure it to use the correct soundcard by adding the correct config flags to /etc/default/snapclient and start the snapclient service.
The device should now show up in your Android app, and you can assign it to the room (and therefore the correct stream) and start listening to your music on a device that looks like this:
In total, this has cost £52, less than half the price of a Sonos per room. The sound quality is possibly not quite as crisp at the lower end as the Sonos might have been, but for this price it’s well worth it in my opinion.
The first thing to do will be to create a nice case for it all to live in, as the above isn’t exactly aesthetically pleasing, however, I need to design and build this so that could take quite a while!
As well as OpenHAB integration, I want to get the platform integrated with PLEX so that if I choose to stream a sports event or similar from BBC iPlayer or the like, I can route the audio throughout the house and even into the back garden…
* Although if anyone out there wants to send me free stuff in return for a brutally honest review, let me know and I’ll think about it! 🙂