AirPlay 2 and more bass, name a more iconic duo..
AirPlay 1 is so 2021. Can only play to one speaker? Unacceptable. We have new standards in Q4 2022. Thanks to shairport-sync and moOde’s latest update, AirPlay 2 has been liberated from Apple’s MFI and shared with all us DIYers to have a play.
The previous few sentences explained
AirPlay (referred to as AirPlay 1 retroactively once v2 was released) is the name for Apple’s old video and audio streaming protocol. To build a device (speaker, screen etc) that can receive an AirPlay stream, you’ll need to be a manufacturer and apply to become a member of Apple’s MFI program. Well, that was until the (audio portion of the) Airplay 1 protocol was reverse engineered. Since then, DIYers have been able to add Airplay 1 support to their speaker projects. The most popular project for this is shairport-sync. Many projects (eg. moOde, the software running my Table Speakers) use it. AirPlay 1 allows streaming to a single speaker but in 2018, Apple released AirPlay 2 which can stream to multiple speakers. Since then, the work has proceeded to reverse engineer AirPlay 2. A few weeks ago, shairport-sync received a really big update, AirPlay 2 support was here!
The Plan
I’ve already upgraded the hardware and software on my Table Speakers and they’re working great with AirPlay 2. There’s not enough bass though. I need a sub with AirPlay 2 so I can group it with my Table Speakers. It’s time to turn a free passive subwoofer into an AirPlay 2 Active Subwoofer!
Parts List (with costs @ 25/11/2022)
Purchased:
- IQaudIO DigiAMP+ – R499.90 – PiShop.
- Raspberry Pi Zero 2 W – R339.90 – PiShop.
- AirPlay 2 support requires at least a Pi 2 or Zero 2W.
- I recommend checking rpilocator often and/or setting an alert on Gumtree as all models are still difficult to purchase. Hopefully this is resolved soon.
- DC Socket 2.5×5.5×0.9 – Mantech KZN
- Chassis Mount DC Plug – Mantech KZN
- DC Socket Line in with Lead – Mantech KZN
- Lenovo 20V 90W DC Power Supply – R250 – Second hand – Gumtree
- The power output of the amplifier scales with voltage so use the highest voltage DC power supply you can get (up to 24V) with a power output ideally > 70w.
Salvaged/Free/Old:
- Micro SD Card – Samsung EVO+ U1 32GB SD.
- Passive Subwoofer – Free Samsung PS-WTZ215 passive subwoofer.
Software Used
- moOde™ audio player – v8.2.2 (64 bit)
- Use the latest version of the software available to you. Guide is based on version above.
- Etcher – To write the disk image to the micro SD.
Other Requirements
- Micro SD Card Reader
- Soldering Iron + Solder + Heatshrink
- Screwdrivers
- Wires for subwoofer
Hardware and Software Setup
Basic Raspberry Pi + moOde + DigiAmp+ Setup
First, cut off the plug on the laptop power supply and replace it with a 2.5×5.5×0.9 one. Then follow the steps in moOde Installation and Setup on Raspberry Pi using the DigiAMP+ as the HAT.
If you’re lucky, it’ll all just work perfectly. Unfortunately I experienced WiFi crashes with one of my new Zero 2Ws and after some debugging, this fix worked for me.
Subwoofer Setup
The plan is to move the Pi + Amp into the sub and wire it like so:
First, remove the speaker:
3Ω on sticker, 4Ω on sub, weird
Drill, wire, solder, heatshrink and mount the 12v Plug:
Superglued screws are a DIY standoff mounting method:
Pi and AMP mounted with power connected:
Last photo before closing up, speaker outputs connected:
CamillaDSP Setup
At this stage, I can play music to the Table Subwoofer and group it with my Table Speakers using AirPlay 2. The issue of course is that it’s sending all frequencies of the Right audio channel to the speaker driver and all frequencies of the Left audio channel to the speaker terminals. This is where CamillaDSP comes in:
Corrections/Clarifications can be found in a pinned comment here.
Since CamillaDSP adds a delay, these speakers are now out of sync with my other AirPlay 2 speakers. To remedy this, click m, ⚙ Configure, ▶️ Renderers, Edit under AirPlay and add a latency offset on to correct this delay. A value of -0.264 on my Table Subwoofer and Table Speakers got them to a decent not-that-echoey sync with other speakers in different rooms.
Testing + Conclusion
Ah yes, that sub-100Hz rumble is now there. The mono output is also working perfectly, handy to have for speaker testing or to easily add another matching sub if I want stereo bass. It’s a flexible, upgradeable, 35w x 2 amplified quad core Linux subwoofer that I can SSH into. And if I can get my hands on a higher quality passive sub, all the parts can easily be transplanted.
The Future
My desk setup now sounds amazing, PROJECT COMPLETED. However, having played with CamillaDSP, I’m now entering the world of audio signal processing, room correction and other fun stuff. Save me..
If you have any questions/would like to share your experience with Raspberry Pis, AirPlay 2 or DIY Audio leave a reply below. To receive an email when I publish a post, subscribe here.
(Featured image remixed from this photo)
Do an airplay milo tin speaker next!
If you send me a milo tin..