When I was 10, a family friend had a Bang & Olufsen system with a remote that had buttons labeled things like "LIGHT". I didn't get it. A remote was for the TV - how could it control lights? It felt like technology from the future. I was also amazed that it was in heavy metal and not cheap plastic. Some things stick with you.
Growing up, my family could never afford B&O stuff, but I'd buy and sell second-hand pieces - partly because I enjoyed doing business, partly as a way to understand the products. One of those sales turned into a lasting friendship. I was 18, selling an old B&O stereo I'd inherited, and met a guy named Andreas in a parking lot. Turned out he had similar interests. We've been close ever since - holidays, boats, car hacks, good times. We sunk one of those boats. More than once.
Early experiments
Around 18 years old, I built my first B&O integration: listening to MasterLink and using text-to-speech to announce what song was playing. This was back in the iTunes days. It barely worked, and TTS in the 90s was a far cry from today. I also tried getting Beolink PC2 Office to work properly with my Mac and iTunes - that didn't fully work either.
Another decade later, I built another integration. This time together with another friend, Richard. We'd coded games together in QBASIC back in the early 90s. First we built it around Arduino, then ran out of RAM and migrated to the early Raspberry Pis. At the time it was challenging to get IR to run, and I remember coding interrupts in C to get the IR data correct. We wanted other people to use it. We couldn't make that happen. I ran one in my apartment for years before finally decommissioning it. My friend? Our work indirectly led us to build an unrelated SaaS company where we didn't need to ship hardware. Neither of us do any development in the company anymore, but it means we still have a technical platform to jointly work on.
I also reverse-engineered the MasterLink Gateway, before HomeKit and Home Assistant was mature or maybe even existed, trying to use B&O's app for home control. This hack worked well, but was painful to configure. After moving, I never really used much of the B&O stuff I previously hacked, although I kept a few speakers and some basic minor hacks on a few Arduinos. Most of my coding was now on Home Assistant related stuff and getting some Lutron equipment to work nicely for the family.
Making something work for yourself and making it work for strangers are completely different problems. Making it work for the family turns out to be something in between.
A decade later
When Bang & Olufsen released the recreated Beosound 9000c, I picked up an original Beosound 9000 - two actually, still have one in my great room. One I bought as defective and intended to fix it. I spent two hours calibrating the laser mechanism and figuring out which parts needed replacement. Then I found the problem. Four of the six CD slots were loaded with DVDs. The BeoSound 9000(c) got me thinking which 90s/00s products more would I want to see recreated. I always loved the BeoSound 5, but the software felt so outdated.
I didn't want to mess with the old CPU and GPU, nor Windows, and I wasn't going to use the PowerLink audio anyway since my setup is Sonos-based. I started exploring whether I could do a drop-in replacement of the motherboard while keeping what mattered: the screen, all the controls, IR, and possibly MasterLink. I got something up and eventually created a web-based UI for it, and started using it at home. That was summer 2025.
I found I wasn't the first to want to resurrect the BeoSound 5. There was a project called Beolyd5 by Lars Baunwall that had made great progress recreating the UI. It didn't seem to be in active development, and it didn't have the setup I wanted, but I reused the drawing of the arc for the laser pointer in SVG from there as it looked absolutely perfect.
Luxury products age differently than cheap ones. A $50 device becomes landfill. A $5000 device becomes a puzzle worth solving.
The Jurassic Park moment
The device was now working with artwork from Sonos and basic Home Assistant control. But I really wanted the IR receiver working. The old IR remotes are what fascinated me as a kid. The signal runs through an S-Video type connector from the screen, so I tapped into that. Got some data, but it was messy with weird voltage levels. I used a poor man's oscilloscope to capture signals but couldn't figure out the levels or decode it properly. I connected some resistors to get the voltage level correct, I thought. Nope. Another dead end. I went to bed.
The next morning it hit me: somehow the software on the original system must get the IR signal from the daughterboard to the motherboard. I traced through all the connectors between the boards - there are quite a few. Eventually I concluded it must be going over USB. There wasn't really any other logical way B&O would have designed it.
I found the old motherboard specs and located the USB header. I cut up an old USB-A cable and connected
it to the header. Plugged it into an old computer, half expecting to fry something. Nothing fried this time. I connected it to my Raspberry Pi, that now was connected
to the BeoSound 5 screen, checked in the terminal and... lsusb showed a device: Beolink PC2.
I know this! I've reverse-engineered this before!
Suddenly it made sense. The BeoMaster 5 wasn't some custom computer with a completely specific BM5 board. It was a PC with a Beolink PC2 Office installed and some additional features on the daughterboard. If I could just listen to the events, they'd show up as MasterLink telegrams.
I started a USB sniffer and pressed my Beo4. Nothing. Tried another remote. Still nothing.
Something needed to initialize the PC2 to start listening. I dug out an old Windows machine, installed the software from the late 90s, sniffed the USB traffic, and there it was - an initialization message. I went back to my other computer, sent the message, pressed the remote... nothing again.
Part brute forcing and part reasoning about the initialization message, I finally got it working. The IR messages were formatted the same way I'd seen years ago when reading IR on the Arduino. The circle closed. Following this, I also added support for Bluetooth, and this runs with the built in Bluetooth chip on the Rpi. I've tweaked the messages and it should work with MasterLink too, but I haven't tested it. I have a Beosound 9000 that might be useful for that, now that it doesn't have to play DVDs. That cut-up USB cable? Still connected to this day.
Fast forward
The UI was up, but ugly, and my various B&O remotes were finally working. The first time I got Sonos artwork to display on the BeoSound 5 screen - Days Like This by Van Morrison - I knew I'd keep going. Here's some pictures on how it evolved:
I have a few BeoSound 5 units in the house now, likely more than anyone reasonably needs. All purchased second-hand in decent to excellent condition. I made the software open source and put it on GitHub. You can see it in action, try the emulator, or check the setup guide if you want to build one yourself. I'd love to hear about it — reach out at markus@beosound5c.com.
Andreas? Richard? They have BeoSound 5cs waiting for them.