____ _ _ _____
| _ \ | | | | ____|
| |_) | ___ ___ | |_ _ __| | |__
| _ < / _ \/ _ \| | | | |/ _` |___ \
| |_) | __/ (_) | | |_| | (_| |___) |
|____/ \___|\___/|_|\__, |\__,_|____/
__/ |
|___/ ┌───────┐
┌─┴─────┐ │
┌─────────────┐ ┌─────────┐ │ .───. │)│
│ .┴. │ Pi 5/ │ │( )│ │
│ BS5 ( = )◀──USB+HDMI──│HifiBerry│◀──PowerLink──│ `───' │ │
│ `┬' │ │ │BeoLab ├─┘
└─────────────┘ └─────────┘ └───────┘
[!TIP] Try the new online device simulator just launched. Follow the progress as the UI matures :sparkles:
Back in the day, I absolutely adored the BeoSound 5, which I thought was a very beautifully designed item for the home - alongside being a sound system.
Unfortunately, Bang & Olufsen made a number of unfortunate choices, not preparing the product for future software updates. This has left the Windows XP-based system in the past, unable to provide modern streaming services or the like.
This project aims to bring new life into this device, with modern hardware and an open source platform to drive it.
This will eventually become an alternative product experience for the Beosound 5 controller.
And the project name? Well, "sound" is "lyd" in danish ;-)
This is a very early version of the new UI:
Currently, I am exploring how the rotary dial works over USB, trying to reverse engineer the protocol.
Code for the Rotary controller (which is a USB HID device) can be found in
src/dotnet
and src/rust
. Alternatively, a linux kernel module that exports
the HID events into "good" ones (joysting with axis, buttons, etc) is available
at
beosound5-kernel-module.
This work is greatly inspired and informed by @toresby's work on neomaster.
I am also looking into new hardware to replace the old Beomaster5, which I plan to replace with a Raspberry Pi with the Hifiberry DAC2 HD for audio.
The pinout for the mini-DIN 4 power connection is (view from port):
Please note that mini-HDMI and USB need to be plugged in for the screen to power on. The beosound 5 does not export EDID information, so the screen caracteristics need to be set beforehand. For unknown reasons, it works out of box on RaspberryPis.
I plan to build and extend the HifiberryOS (Beocreate) platform with a custom local UI that can be operated with the rotary dial on the Beosystem 5 control unit.
Hifiberry in itself will bring support for
I am exploring a .NET route (which is where I am most comfortable) and a Rust-based approach. The UI is probably going to be web-based on top of WebKitGTK.
Currently, Tauri/WRY (Rust-based) looks like good candidates for the UI platform. This will then bridge the BS5 controller with the web UI via a Javascript-bridge.
Update: The application consist of two parts:
This is a hobby project of mine. I don't know when I will be done or how it will look.
I am not a UI designer, so I could use some help in that department. Likewise, I am still a beginner in the embedded world, so defintately would appreciate a helping hand there as well.
Just start a discussion or create an issue then I'll get back to you.