BeoSound 5c
A Recreated Classic
A modern resurrection of the Bang & Olufsen BeoSound 5 that preserves its original interface and character—what it might have been if released today. Partly a technical experiment for my personal setup, partly a love letter to Bang & Olufsen. Designed to run on real BeoSound 5 hardware with your B&O PowerLink speakers or with Sonos. Works with Spotify, TIDAL and other sources, B&O remotes, and Home Assistant.
What is the original BeoSound 5? ↓
The BeoSound 5 (and its accompanying "computer" BeoMaster 5 required to run it) was a groundbreaking music system released by Danish premium audio manufacturer Bang & Olufsen. Announced in late 2008, it arrived in the early streaming era—post-CD but just as Spotify launched (founded in my home city Stockholm!).
At the time, it was clear CD wasn't the future of music. Yet streaming services were mostly accessed through computers, not dedicated devices. For context, Sonos didn't release its first speaker with built-in amplification until 2009.
BeoSound 5 was designed to browse and play music from the BeoMaster 5's internal hard drive—your ripped CD collection—or stream from iTunes and network file servers. It felt like the future. But that future moved in a different direction, and the software quickly felt dated as streaming services like Spotify never got proper long-term support.
Other factors likely contributed to its limited success: a retail price around $5,000 (without speakers), the need for a separate "ripper" device to digitize CDs, or paying B&O dealers for the service.
See a review from 2009 and more details on Beo.Zone.
What works (for me, and hopefully for you)
I've created a setup that works well for me, and I've tried making it work in a wider range of configurations too, but your mileage may vary. Expect to do some tweaking for your environment.
Original Hardware
Works with the original BeoSound 5 screen, including the buttons on the device and IR receiver. Replaces the old BeoMaster 5 'computer'. Works with your active Bang & Olufsen PowerLink speakers. Also works with the music you may have on the HDD/SSD in the BeoMaster 5.
Sonos or PowerLink
Tested with complex Sonos setups and works very well, including ability to join and unjoin other players. Speakers are auto-detected on your network. If you have active speakers connected to the BeoMaster 5 via PowerLink, no need for Sonos at all. Bluesound has experimental support.
Spotify, TIDAL, Apple, Plex, Radio
Browse your Spotify, TIDAL, Apple Music, or Plex library through the arc interface, or tune into 40,000+ radio stations. Select a playlist or song and it plays through your connected speaker. See GitHub for details on source and player compatibility.
Music Videos & Immersive Mode
A love letter to the MTV era I was born in. When a song starts playing — yours, or someone else's on Sonos, or a track dropped through Spotify Connect — a matching music video fades in. It's probably my favorite part of the whole project. Re-experience the songs you already know, in a format that feels like it's from a parallel retro sci-fi world.
Lossless CD Playback
If you have the original CD ripper for the BeoSound 5, it can stream lossless audio directly to any AirPlay device, such as a Sonos speaker. Album artwork is fetched automatically, just like any other source.
B&O IR Remotes
All Bang & Olufsen remotes with IR work out of the box. Tested: Beo4, Beo6, BeoSound Essence (all IR modes), Beolink 1000, Beolink 5000 (one-way), B&O Keychain, Beo1, and BeoTime.
Beo6 Two-Way Remote
Support for the classic Beo6 two-way remote. Allows artwork display and playlist selection. Works out of the box.
Configure From Your Phone
No config files to edit. After install, the BeoSound 5 screen shows a QR code — scan it to open the web-based config UI on your phone, tablet, or laptop. Set up your player, music sources, Home Assistant, and remotes, all from there.
Updates From the Device
When a new release is available, the system page on the BeoSound 5 shows an "Update available" callout with release notes. Press GO to install — no SSH, no commands, no reboots for most updates.
Home Assistant
Control scenes, lights, and other smart home devices. In Home Assistant you can customize any logic for any event - e.g., have your lights dim down automatically when you select your Dinner playlist.
What you need & how to set it up
Warnings
The BeoMaster 5 contains mains voltage components that can cause serious electric shock, burns, or fire. Always disconnect from mains power before opening. Capacitors may retain charge even when unplugged. If you're not comfortable working with high voltage electronics, don't attempt this modification. Proceed at your own risk.
- You'll need to modify the BeoMaster 5 or build an external power supply
- Will likely require some coding and configuration to get working for your setup
- Many features are best controlled through Home Assistant - direct control requires coding (not supported out of the box)
- This has been purpose-built for my setup - you'll likely need to tweak configurations, adjust the UI, or modify integrations
That said, if you have a BeoSound 5 gathering dust and enjoy tinkering, this might be a fun project.
Requirements
Required
Highly Recommended
Also Supported
Overview
Hardware: The Raspberry Pi 5 connects to the BeoSound 5 screen via HDMI (micro HDMI on the Pi to mini HDMI on the screen) and USB (for the wheel, buttons, and laser pointer). The BeoMaster 5 powers the screen and provides USB access to the IR receiver on the daughterboard. The BeoMaster 5's internal power supply could potentially power the Raspberry Pi directly, but this has proven a bit unreliable in some of my tests. For now, a good 5V 5A USB-C power supply is recommended, but I hope to get stability in just using the BeoMaster 5 power supply. The Raspberry Pi's built-in WiFi has limited range, so wired Ethernet is recommended. If that's not an option, a compatible USB WiFi dongle works as an alternative.
Software: The software is structured around a few different Python services, serving a web interface to Chromium running in kiosk mode. This architecture makes it easy to emulate and develop for the BeoSound 5 on a local machine without the actual hardware. See the GitHub repository for all the details.
Hardware setup
Open up the BeoMaster 5
Remove the black screws at the bottom of the BeoMaster 5. The top cover may need a bit of a shake to slide forward and off.
One of mine opened
Remove motherboard Optional
This frees up space for the Raspberry Pi and improves airflow, and is suitable if you want to mount the Pi inside the BeoMaster 5 case for a nice and tidy solution. Even if you don't, it's satisfying to remove an old x86 motherboard and feel like you're doing stuff.
- Unscrew the DVI fasteners at the back (2 for daughterboard, 2 for motherboard)
- Unscrew the daughterboard to access the motherboard
- Disconnect all cables from the motherboard (a VIA EPIA EX x86 board that ran Windows)
- Unscrew and remove the motherboard
- Mount the daughterboard back
The hard drive (512GB or 1TB SATA) can simply be removed, or if you want to access the music stored on it, connect it to the Raspberry Pi with a SATA to USB adapter (~$15 USD).
Liberation day
Fix the power supply
The BeoMaster 5 power supply is routed through the daughterboard (which is actually a modified Beolink PC2 Office). Power is cut off after a few minutes if the original computer isn't running.
On the power supply connector (the cable coming from the PSU to the daughterboard), put a jumper from pin 13 to pin 14, then secure it. This will trick the power supply to always be ready to supply your BeoSound 5c with power.
Power connector - jumper pins 13 and 14
Wire up the daughterboard Optional (for IR remote support)
Cut open a USB-A cable and connect to the USB header on the daughterboard. You can either connect directly to the header pins, or pull out the connectors and attach cables that way (easier if your cables don't fit the header - normal USB cables tend to be too soft).
This USB connection gives you access to the Bang & Olufsen IR receiver built into the BeoSound 5. B&O remotes use a special 455 kHz carrier frequency, and while third-party receivers like the TSOP 7000 exist, they're increasingly difficult to find and often out of spec. The built-in IR eye is about as good as it gets for receiving B&O IR signals. This connection also enables the MasterLink port on the back of the BeoMaster 5.
Wire colors: outer is daughterboard, inner is USB-A cable. Some BM5s have a grey daughterboard cable instead of blue
I'm an engineer and this is one of my wirings
Connect audio Optional (for directly connected speakers)
To get audio out from PowerLink (or S/PDIF or line out), you need to connect audio from the Raspberry Pi to the daughterboard. You can use a Pi HAT with digital audio, such as the InnoMaker Digi One (~$40) or a HiFiBerry — the InnoMaker says it doesn't support the Raspberry Pi 5, but it works fine in this setup — or alternatively a USB to coaxial S/PDIF adapter. The software supports both and will auto-detect your setup.
Next, build a cable between the digital output from the HAT or USB adapter and the S/PDIF input on the daughterboard. The easiest approach is to reuse the existing cable between the old motherboard and the daughterboard that connects to S/PDIF — cut it and attach a single RCA connector. Polarity shouldn't matter for digital audio over coax, but I connected the outer ring to black and the inner pin to red.
You only need this if you want to use the local player and route audio to a local port (PowerLink, S/PDIF, or line out). If you use Sonos or Bluesound as your player, skip this step.
There is also a hybrid option: if you're not using Sonos today but want its convenience while still getting local audio out, you can use a standalone Sonos device with digital out — such as a Sonos Port, Sonos Connect, or Sonos ZP90 (available on eBay for ~$25). Connect its digital out to the daughterboard using the cable described above, then configure the software with player = Sonos (with the device's IP) and VolumeAdapter = PowerLink.
Test
Connect to mains - the LED on the back of the daughterboard (next to the S-VHS style cable to the screen) should light up.
Connect USB to a computer you don't care about (in case something is wrong). The LED on top of the daughterboard (circled in the example) should light up to confirm USB is connected properly.
Connect the HDMI out on the Raspberry Pi to the BeoSound 5 screen. You can use a micro HDMI to mini HDMI cable directly, or more commonly a micro HDMI to HDMI adapter combined with an HDMI to mini HDMI cable.
Use the Pi's HDMI0 port (the micro HDMI closer to the USB-C power input) for the screen. The software assumes this port for video output — HDMI1 is reserved for optional digital audio out to an external amp or DAC.
This LED lights up if you connected it correctly
Finalize
Once validated, connect USB to the Raspberry Pi and connect the BeoSound 5 screen.
You can also put the Raspberry Pi inside the BM5 with a few external connectors and lead them out through the old holes in the back. In my setup, the Pi sits inside with a female USB (for the BeoSound 5 connection), Ethernet (with a female-to-female adapter), and micro HDMI to female HDMI. This particular unit has the Pi powered directly by the BeoMaster 5 power supply.
Back panel connectors
Software installation
Flash Raspberry Pi OS
Use Raspberry Pi Imager to flash Raspberry Pi OS Lite (64-bit) to an SD card. Enable SSH and set hostname to something you like, e.g., beosound5c.
Clone the repository and run the installer
SSH into your Pi, clone the project repository, and run the installer. One command does everything — packages, display, USB permissions, services. The installer reboots automatically when done.
git clone https://github.com/mkirsten/beosound5c ~/beosound5c
cd ~/beosound5c
sudo ./install/install.sh
Scan the QR code on the screen
After reboot, the BeoSound 5 screen shows a "Setup required" page with a QR code. Scan it with your phone to open the config UI — no editing config files, no reading JSON schemas. Set your player, music sources, Home Assistant, and remotes, all from the browser.
Services restart automatically as you save. You can reopen the config UI any time at http://<device-ip>/config, including from the BS5 system page.
Try it!
Once configured, you should have:
- Now Playing with album artwork, playback controls, and — after 30s of inactivity — immersive mode with Spotify Canvas loops or matching music videos
- Music section with your Spotify, TIDAL, Apple Music, or Plex library browsable via the arc interface
- B&O IR remotes — Beo4, BeoRemote One, Beolink 1000, BeoTime, and more, working through the original IR eye
- Home Assistant — remote button events sent as webhooks or MQTT; dashboards and camera overlays can be triggered back the other way (examples)
- News — headlines from The Guardian, browsable in the arc like everything else
- Wheel & buttons — the original BeoSound 5 navigation working as intended
New releases show up as an "Update available" callout on the system page — press GO to install, no SSH needed. If something goes wrong, bs5c-support opens a temporary Tailscale session for remote help.
Things I'd like to explore
These are features I've thought about but haven't had time to implement properly. If any interest you and you have ideas or want to contribute, I'd love to hear from you.
Support for BeoSound Essence Remote in Bluetooth Mode
I've always loved the Essence remote and have a few at home. I once built an Arduino hack with a TSOP7000 IR receiver, but the accuracy was never as good as native B&O IR eyes, and network traffic would cause stuttering. Then I spent weeks getting Bluetooth working through BlueZ - it worked beautifully, until it didn't. Now I just use them with IR and hope to eventually figure out reliable Bluetooth support. Maybe this will be a separate Bluetooth → Ethernet/WiFi bridge with PoE just sending webhooks. TBD.
Support for BeoLab 5 Control Done
Wireless control of the BeoLab 5s using some custom hardware. I guess this is a niche of a niche of a niche. Anyway, my personal favourite speakers, running as they should — with their internal DAC.
Support for Beo6 Two-Way Remote Done
Full two-way communication with the classic Beo6 remote. The remote sends commands and receives status back — showing now playing info, volume, and active source on its screen. Required reverse engineering the two-way protocol, which was never documented for third-party use. Niche of a niche, but technically satisfying.
Support for Full MasterLink Compatibility
The BeoSound 5c could show up as an entity in Home Assistant that supports sending and receiving MasterLink commands. There are already integrations that support MasterLink gateways (e.g., MLGW), so it could be interesting to explore for those who use it. This would allow the BeoSound 5c to integrate with existing B&O multi-room setups. Reading all MasterLink messages should work out of the box, but sending commands will need a bit more work.
Support for BeoMaster 5 Power Supply Experimental
It should be possible to power the Raspberry Pi directly from the BeoMaster 5 power supply instead of using a separate USB-C PSU. However, I've experienced intermittent failures with this approach - probably due to voltage fluctuations from varying power consumption. The Raspberry Pi is quite picky about its power supply. Would be nice to figure out a stable solution.
Improved BeoRemote One Bluetooth Reliability Done
Complete rewrite of the Bluetooth driver with true immediate response and optimized latency. Rock solid.
Improved Sonos Volume Control Done
The BeoSound 5c now speaks directly to Sonos for volume control, with cached volume state and heuristics to prevent runaway volume from queued commands. Low latency, works with grouped speakers.
Support for TIDAL, Apple Music, and Plex Done
TIDAL, Apple Music, and Plex are now supported alongside Spotify. Playlists and libraries are browsable through the arc interface just like before. Many that wanted to try out the BS5c were using TIDAL and Apple Music instead of Spotify.
Support for BeoMaster 5 Built-in SSD (or HD) Done
Connect your existing hard drive or SSD to the Raspberry Pi with a SATA to USB adapter and browse your music collection through the arc interface, just like the original.
Join the project
This is a hobby project, but contributions are welcome. Whether you want to fix bugs, add features, or just share your own BeoSound 5 setup, feel free to open an issue or PR. Read the backstory of how this project came to be.
View Repository on GitHubv0.4 · February 2026