I’ve been a Sonos user for probably five years now. Initially, they were something of a marvel of integration and software polish, providing ease of setup and room filling sound for … they are not cheap. Their closed ecosystem was another sour note for me, but I pushed past that in favor of convenience.
The past year or so, I’ve become increasingly frustrated by the Sonos platform. Their recent push to provide Amazon Alexa integration, a new user account system and changes to their privacy policy that allows feedback to Sonos Inc with my personal music preferences, room names and who-knows-what-else left me a little queasy. Continuous, nagging app updates with no visible improvements, degradation of performance and playback limitations have forced me to look for alternatives. I have been unable to effectively play from my extensive, NAS-based local library on the Sonos for some time, despite my best efforts to make it work.
This led me to the HifiBerry Amp2. I have some old speakers kicking around. All they need is an amplifier and a sound source, and this little module looked like it might fit the bill.
Update: Originally, the Amp+ was a 25WPC amp, the new Amp2 pictured above is capable of 30WPC, 60 Watts total power. The onboard DAC is also upgraded to support 44.1KHz-192KHz audio files.
For any project of sufficient complexity, you should really start with a full stomach. I had a (TRIGGER WARNING!) tuna sandwich with pickled onions on sourdough bread from an excellent new bakery here in town. It was delicious.
Unboxing and Assembly
Properly fed, I proceeded to unbox my newly arrived AMP 2 kit. I ordered it last week and it arrived intact all the way from Switzerland.
All told, it’s a surprisingly small package. The included power supply is easily the biggest piece in the kit. I’ve included my Raspberry Pi 3 and an apple for comparison in the above image. The simple cardboard box the Amp2 came in has a nice little message on it and not much else.
The case it came with is a simple ABS plastic thing with a snap cover, some plastic standoffs and little silicone feet. It’s not going to win any beauty contests, but once it’s together, I plan on hiding it in a cupboard in the kitchen.
Assembly was trivial. The Amp 2 sits on top of the GPIO pins on the Raspberry Pi as a dedicated HAT. And therein lies the beauty of this little thing. By using the I2C connection on the Pi, it provides a direct hardware connection to the processor, bypassing the USB bus and effectively becoming isolated from any noise or interference from the Pi’s main board. It also provides power back to the main board through the GPIO pins. Neat.
The GPIO pins remain available for additional hardware hacking if needed. I plan on using mine to install a rotary encoder and a pushbutton for volume knob and play/pause. I’ll report back with a schematic when I have it working.
That black rectangular chunk near the bottom of the device contains left and right speaker terminals, another terminal for installing a hard-wired, 14V power supply, and a circular pin and ring plug for the included 14V power adapter which drives the whole thing. No need for the usual Raspberry Pi USB power supply with this and you shouldn’t use one with this setup.
I did have to figure out which way the standoffs go. I left the extra bits coming out of the top, because mounted the other way made the stack too tall to fit properly into the case. The little plastic hex nuts don’t have a lot of room near the pins on top so I had to turn them very slowly with my SOG multitool. If you’ve got a tiny socket set, that might be the way to go to save yourself some aggravation.
Once together, I maneuvered the thing into the case and hooked up the speakers.
The speakers I’m using are an ancient pair of Koss MS20s from the Pre Internet Era. I’ve had these things since I was in high school, were my main speakers all through university, then spent a few years on the shelf until being recovered and used as rear channels in a surround sound setup. They still sound fantastic despite their great age. Please disregard the bag of croissants and plum jam blocking the view.
Volumio
For software, I opted for Volumio v2.4 (“The Open Audiophile Music Player”). I’m not sure how I settled on it, but I think I heard of it from another HifiBerry user, probably on a forum. There are several other options out there that I intend to explore, but chose this as the first, liking the combination of “bit-perfect playback” and “free”. So far, I like Volumio though setup wasn’t a totally seamless experience and I’ll run through a few pain points I encountered along the way.
Installation is easy enough. First, grab an image and flash it to a Micro SD card with Etcher. Raspberry Pi users should be familiar with this routine from installing Raspbian.
Once you have an image, pop it into the Raspberry Pi’s SD card slot and plug it in.
Volumio does something really cool here, it opens a wifi hotspot you can connect to with your phone or laptop that lets you configure wireless, your network drive if you have one and your output device (the Amp2, in my case) through an attractive web interface. It took me all of three minutes to get my Pi hooked up on my network, and after a reboot, I was online.
This is when I encountered my first issue. The list of supported DACs in Volumio is pretty extensive, but there was no mention of the HifiBerry Amp2. The previous Amp+ was there and attempts to use that as a driver failed.
Some internet searches directed me to use the HifiBerry DAC Plus driver, but my first attempts to use that were also unsuccessful. More internet searches, all of them taking me to Volumio’s forums or out-dated HifiBerry Guides, many of the entries referring to Volumio 1.5 and dating from 2014 or so. I eventually found a post that suggested turning off the I2C drivers, restarting, then turning them back on again and restarting once more. The driver installation equivalent of unplugging the cable then plugging it back in. After doing this a couple of times I got it working and streaming music from Radio Paradise.
Not bad at all.
The next pain point was connecting to my music collection on my Synology NAS. The Synology machines are rock solid and I have no trouble connecting to these things from just about every computer imaginable. Unfortunately, Volumio proved to be unable to connect to local storage no matter what I tried. I tried SMB/CIFS because that’s what everything else uses and got cryptic error messages flashing in the corner of the web interface. The error messages flash by pretty quickly, but I was able to grab a copy so I could at least search for the error messages.
The setup page suggested NFS as a recommended protocol, but that was also generating errors attempting to mount the filesystem.
It became very apparent that this web interface was a simple wallpapering over some linuxy setup commands under the covers. I feel like a bit of effort on the part of the team to try a couple of things to make this setup easier would be beneficial to capturing new users. There are some debugging options I learned about later on, but I was fairly insistent on not opening a terminal for setup and I’ve stuck to it, getting everything to work without the need for an SSH session and a bunch of log delving.
Anyway, more internet searches were performed. More forum results obtained. The final suggestion was to include the version number of the server’s SMB configuration as an option.
Again, this could have been included as a default, or added in and retried after a failure, because I think the majority of SMB servers support 2.0, but… Here we are.
With that set, I was able to scan my NAS and after it indexed everything, I had full access to my music.
Playback of my local collection is excellent, I am happy to report. I’m able to play even high res files at 96KHz/24bits over wireless without any issues. I’ve only noticed one drop-out in the past few days I’ve been using it, and I think better placement of the box will improve the wifi connection.
CBC Radio stations weren’t included in the Web Radio section, but manually adding one was easily done. (PS, CBC, you should really provide higher quality streams outside of your web interface and closed apps. You are supposed to be a public broadcaster after all).
Volumio has a pretty extensive set of Plugins for providing alternative sources and hardware options available as well. They have a Radio Paradise plugin with full FLAC streaming which sounds delightful. There is no such option on the Sonos.
Spotify users will be happy to know that there is a plugin for that as well.
Oh, one other feature that is theoretically very useful: Volumio can act as UPnP DLNA or Airplay end point for streaming. I haven’t been able to get this working yet, but should be a good way to get multi-room streaming working if I can figure it out. It shows up on the network, but the different connections I’ve tried yielded no sound.
And the sound… I still love these little Koss speakers and the amplifier in the HifiBerry is more than adequate to drive them. Loudly. They’re a little light on bass, but have excellent mids and smooth detailed highs. At thirty years old, they still sound fantastic.
How does the Amp2 compare to the Sonos?
Sonically, there’s no comparison. HifiBerry Amp2 and Volumio with a decent pair of speakers blows the Sonos 3 and 5 out of the water. First, it’s in stereo which is an instant win. Second, it’s more powerful. You can really fill a room with this.
Price-wise, all-in, I think this cost me around $120CDN. Call it $150 for the SD card and speaker cables. Attach a pair of PSB Alphas or Paradigm book shelf speakers and you can be up and running for under $300. If you can find a decent pair of used speakers, even better. Considering the price of a base Sonos speaker, you are miles ahead on savings.
Where the Sonos has the edge: multi-room connectivity and syncing. I only have the one Berry so far, so I’m not sure how Volumio handles multiple room setups, but I’ll wager it’s rudimentary at best. The Sonos Apps, for all their flaws, are better than the Android and iOS apps which are only a thin webview over Volumio’s web interface. They work pretty well, but on Android, the back button doesn’t work (at all) and I frequently get error screens if I leave the app running and it loses connection.
Neither of these are insurmountable and are likely solvable by using one of the other (for pay) installations available, which I will likely investigate next. Max2Play seems to be the favored contender in this space so it’s worth a look. There’s also Rune Player which has some interest as well.
Update: Untested, but Volumio comes with multi-room support built-in. The Snapcast plugin will apparently provide syncing. Advantage: Volumio.
HifiBerry Amp2 + Volumio Verdict: HIGHLY RECOMMENDED.
Interesting article! I tried Volumio and Runeaudio a few years ago, but found functionality a bit limited compared to the Logitech Media Server I was using (and still use) – perhaps I should revisit. Volumio/Rune didn’t seem at that time to index files using tags (but it’s entirely possible I was doing this all wrong).
Just now I’m using a mix of Logitech branded hardware, iPads and Raspberry Pi based players with LMS running on a Raspberry Pi.
Depending on how long ago you tried it, it might be worth revisiting. Volumio’s been completely rewritten for version 2+ and it gets a lot right. It certainly will index based on your files’ metadata.
cheers! Thanks for the comment.
This makes an ideal output zone in a Roon system. Just flash the microSD card with DietPi and install RoonBridge from the dietpi-software menu. I’ve used the AMP+ and AMP2 cards to drive loudspeakers like the JBL 4311B and SVS Ultra Bookshelf. In dietpi-config, use “hifiberry-dacplus” for the soundcard.
Thanks for the suggestion. I’d like to try Roon at some point, but not at their current pricing scheme. So far Volumio’s been great, but I’ll see how I feel about it after I install another Hifiberry in another room.
Hey Rob thanks for sharing this. I am an early adopter of Sonos, starting my collection in 2006. I am now looking for options for all the reasons you mention plus the fact that they are starting turn off components and mess with the controllers. I have locked my sonos system down to verision 8.4. I have several sets of Paradigm Bookshelf Speakers so this winter I plan on testing multi room hifi-berry. 12 zones might be a challenge for the squeeze platform. Cheers.
Hi Alan,
Thank you for the reply.
Since writing this I’ve setup another Hifiberry (this time, a DAC+ Pro) which I’ll be posting about soon.
So far, synced, multiroom playback with Volumio is rudimentary at best, and requires a plugin to work. Twelve zones is an aggressive target, but if you’re not syncing all of them it should work. Post back and let me know how you make out!
cheers!
Thank you so much for this tutorial! This maybe a stupid question, but what pins did you use for the raw speaker wire to insert it into the hifiberry amp housing?
You’re welcome! That’s not a stupid question as it isn’t obvious from the board and I had to look it up too. The screw-in connectors are the two pairs on the right. See the diagram in the following link for instructions: https://www.hifiberry.com/docs/archive/connecting-power-supply-and-speakers-to-the-hifiberry-amp/. Hope this helps!
Awesome I just found that diagram about 5 minutes before you responded to the comment. Thank you so much! Excited to see how the speaker turns out – working on hardware stuff at the moment.
Great write up Rob! I too have a Hifiberry Amp2 and am very pleased with it. Currently using it to power ceiling speakers in my kitchen and just purchased a second for speakers in my bathroom.
As something you may like to try, which is particularly good for multi-room audio is slim server or logitech media server. It was open sourced by logitech when they pulled out of the streaming audio market a number of years ago and the project has continued. It has support for Spotify/Tidal, SMB shares and internet streaming audio. The interface is old and a little clunky, but there are a number of add-ons to update it, with good options for mobile interfaces (check out Craig Drummond’s ‘material skin’). The nice thing about it is one interface to control all of the media players. There are also plugins for airplay, chromecast and DLNA endpoints, which can be used to sync audio with pre-existing audio systems. On the pi, you can install picoreplayer, based on tinycore linux, which runs in the ram so no need for a proper power down – just pull the plug.
Hi Anton,
Thanks for the reply.
You’re not the first person to recommend Logitech Media Server to me and I’m pretty sure there’s a version of it I could run on my NAS, or at the very least one of my Pi 4Bs.
I have a mashup of Volumio and a recent Mopidy install I’ve been meaning to write up, but I’m going to dig into your suggestions. I’ll write something up if I end up liking it. Sounds like a good project for December. 🙂
All the best!
Roon Labs is offering a three month trial subscription for $1. This is a great way to kick the tires since the usual trial is only 14 days. The deal ends in a couple of days, so I’d suggest grabbing it while you can. You may not decide to keep it, but you’ll have fun playing with it over the holidays. 🙂
https://land.roonlabs.com/black-friday-one-dollar
Hi David,
This is a timely, and time-sensitive comment. 🙂
I’ve tried Roon and found it to be a bit problematic for the price tag. It felt unfinished, I had playback glitches on my local machine (running as a Roon Core and single endpoint) and didn’t really like some of the editorializing it did on my music metadata. But for some that might be just what they’re looking for.
cheers!
That’s fair. Roon is not for everyone. I used JRiver Media Center for 5+ years before transitioning to Roon. It took some adjustment, but now I can’t imagine living without it. Happy holidays.
you too, David! Happy listening. 😀