Beautiful hardware.
Obsolete protocols.
Between 1980 and 2012, Bang & Olufsen shipped some of the finest-looking audio hardware ever made, and locked it behind proprietary multi-room buses. MasterDataTool is a Raspberry Pi HAT that speaks those buses fluently, so a modern streaming source (AirPlay, Spotify, Roon) feels built-in to a 30-year-old music system.
Proprietary serial buses from the pre-IP era.
MasterLink and DataLink carried multi-room audio and control long before Wi-Fi was a thing. Today, that's a wall: no off-the-shelf streamer speaks those signals. Working replacements are rare and expensive; most installers just give up.
A HAT that speaks their language.
MDTv2 emulates N.Radio / N.Music sources on MasterLink, forwards Beo4 remote commands to your host, returns metadata to the display, and pipes bi-directional audio. On DataLink it handles DL'80 / DL'86 and the Aux Link. The onboard MCU bridge exposes the whole bus as plain serial messages. No special drivers, no protocol-handling code on the Pi. Nothing inside the vintage unit is modified.
Six ways to retrofit old hardware with new signal paths.
Every scenario below has been tested on the listed devices. Software
support lives in the ml-tools and dl-tools repositories
(links in Getting Started).
MasterLink streaming receiver
MDTv2 emulates a SourceCenter, providing the N.Radio and N.Music sources. Start an AirPlay stream from your phone and your BeoSound auto-powers-on; skip tracks from the Beo4. Modern music systems display metadata natively.
MasterLink streaming source
Run the direction in reverse: capture the audio output of the music system's CD/tuner over ML, then redistribute it over AirPlay to modern speakers. Playback controls from the original remote still work because commands round-trip through MDT.
BeoLab active speakers
The BL3500 and BL2000 only accept signal over their ML port. Plug
MDTv2 straight in, run shairport-sync, and you've got an
AirPlay speaker that still respects the original remote, and
auto-syncs the BL3500 display clock while it's at it.
BeoSystem 3 / TV bridge
Coming from a legacy ML-based TV setup? Keep the BeoSystem 3 for audio processing, swap the TV for anything modern over S/PDIF. MDTv2 translates Beo4 remote commands into IP commands for your new TV, so the UX still feels fully integrated.
DataLink music systems
For the brick-era systems (BeoSystem 6500/7000, BeoCenter 9500).
MDTv2 injects streaming audio over the Aux Link and auto-powers
the unit on via DL'86 commands. Note: on DL the system starts
up muted; a single key-press on device or remote clears it.
DataLink turntables
B&O's tangential turntables (BeoGram 4004, 6500, 7000) exposed full control over DataLink. Connect one directly to MDTv2 to get an IP-streamed vintage turntable. Start / stop / track-select from any AirPlay client on the network.
What's on the board.
MDTv2 is a stacking HAT for the Raspberry Pi. Plug it on, attach an ML or DL cable, power up. That's it. Three things make it work:
Bi-directional audio
Studio-grade 24-bit DAC and ADC handle audio in and out. They drive MasterLink's symmetric audio pairs natively (no analog switches, no op-amp stages), and they cover DataLink's single-ended line-level audio on the same board. The audio side is HiFiBerry DAC+ADC Pro compatible, so it appears to Linux as a standard sound card with stereo input and output. shairport-sync, Spotifyd, mpd, your own scripts: anything just works.
Onboard MCU · serial bridge
The big change in v2: a dedicated microcontroller on the board handles the messy parts of MasterLink and DataLink: the unusual framing, the weird voltage levels, the timing. Your software just reads and writes plain serial messages over the Raspberry Pi's GPIO UART. Nothing to wire up, no extra USB cable, no driver tricks. Send "skip track" as a one-liner; receive now-playing metadata as a string.
Transparency mode · zero-config audio
There's a catch the audio path can't solve on its own: the vintage
B&O system has to be told over MasterLink that audio
is playing, otherwise it stays in standby and the audio port is
silent. Normally that's the job of the
ml-tools stack you set up on the Pi.
The MCU firmware short-circuits this with a built-in
transparency mode. It watches the audio bus on
its own, and the moment Linux starts streaming audio without a
matching ML command, it automatically sends a generic power-on
telegram to open the audio port. You won't get metadata or
granular control this way (that still needs ml-tools),
but the audio itself plays through with zero software
configuration, on any Raspberry Pi OS, out of the box.
Standard connectors
RJ45 for MasterLink (with an included ML ↔ RJ45 adapter that works with any shielded Ethernet cable), 7-pin DIN for DataLink. Stacks onto the Pi's 40-pin GPIO header. Comes with a 3D-printed housing.
From box to first stream in about 20 minutes.
What's in the box
- MasterDataTool PCB assembly
- 3D-printed housing (three plastic parts + 8 screws)
- ML ↔ RJ45 plug-in adapter
- Short manual / quick-start card
What you'll need separately
- A Raspberry Pi (model 2, 3, 4 or 5)
- A microSD card for the OS
- A power supply (we recommend the official Raspberry Pi PSU)
- An RJ45 cable to connect MDTv2 to your B&O device. Must be shielded (look for visible metal on the connector). Standard plastic-clad CAT cables won't carry the MasterLink signal reliably.
1. Assemble
- Drop the Raspberry Pi into the larger plastic shell.
- Hold the small plastic frame against the top of the Pi and insert four screws from the bottom.
- Plug the MDTv2 PCB onto the Pi's 40-pin GPIO header.
- Fit the top plastic part and secure it with the remaining four screws.
2. Flash the operating system
We recommend Raspberry Pi Imager. Choose your Pi model and pick Raspberry Pi OS Lite (under "Other"). Click Next → Edit Settings and:
- Set a custom hostname you'll remember
- Enter a username and password
- Enable wireless LAN and add credentials (unless you'll use Ethernet)
- Pick the correct timezone and region
- Go to the Services tab and enable SSH with password authentication
Save, write, and wait for the flash to complete.
3. First boot
- Insert the microSD into the Pi + MDTv2 stack.
- Attach the ML or DL cable to the target vintage device.
- Power up the Pi and wait for it to appear on your network.
4. Install dependencies
SSH in:
ssh your_username@your_hostname.local
Then install the packages MDT needs:
sudo apt-get update
sudo apt-get install git redis python3-redis python3-serial lirc
5. Install ml-tools (MasterLink)
git clone https://gitlab.com/masterdatatool/software/ml-tools
cd ml-tools
chmod +x install.sh
sudo ./install.sh
sudo cp rpi/config.txt /boot/config.txt
6. Install dl-tools (DataLink)
git clone https://gitlab.com/masterdatatool/software/dl-tools
cd dl-tools
chmod +x install.sh
sudo ./install.sh
sudo cp rpi/config.txt /boot/config.txt
Both repositories have deeper documentation and example scripts.
7. Enable the right service
Pick one based on what MDTv2 is connected to:
For a stand-alone link speaker (BL3500 / BL2000)
sudo systemctl enable ml-linkspeaker-standalone
For a full music system (BS9000 / BC2 / etc.)
sudo systemctl enable ml-netprovide
Reboot to pick up the overlay and service:
sudo reboot
8. Add a streaming source
shairport-sync is an excellent AirPlay receiver and a good
first target:
sudo apt-get install shairport-sync
Start streaming from any AirPlay source and MDT will auto-wake the connected ML/DL device, forward metadata where supported, and hand playback control back to the original remote.
Where to go from here
The software is in early-alpha territory. Every scenario we ship
works for us, but the corner cases are many. ml-debug
(bundled with ml-tools) gives you a real-time view of every ML
telegram flying by; it's the first tool to reach for when something
isn't behaving. The broker exposes a Redis interface, so wiring up
custom automations on top is trivial.
Or skip the embedded work. MDT-OS is on the way.
MDT-OS will be a highly engineered Linux distribution built specifically for MDTv2 by the same engineers who built the hardware. If you don't want to learn embedded Linux just to stream into your BeoSound, this is the path: flash an SD card, plug in the Pi, done. Planned price €250, optional.
What's planned
- Pre-configured ML and DL scenarios (link-speaker emulation, source provision, audio injection, remote forwarding), all running out of the box, no commands to type.
- Web configurator: open the Pi's IP in a browser, point and click your way through which mode you want and which streaming services to enable.
- All the popular streaming back-ends bundled and pre-wired:
shairport-sync(AirPlay),librespot(Spotify Connect),Lyrion(Logitech Media Server), Roon Bridge, and more. - Tiny installer image, self-updating thereafter. Flash a small bootstrap SD card once. On first boot it pulls the real OS from our servers and installs it; from then on it keeps itself updated automatically.
- Made for users without embedded Linux experience: no SSH, no
apt-get, no/boot/config.txt. If you can flash an SD card and open a webpage, you can run MDT-OS.
MasterLink, reverse-engineered.
MasterLink is B&O's second-generation multi-room bus. Introduced in the early 1990s, it replaced DataLink and stayed in production until around 2014. It carries symmetric bi-directional line-level audio alongside a low-voltage data channel, all on the same connector, a real engineering feat for its era.
What you can do with it
- Stream into a music system as a native source. Appears as N.Radio / N.Music with metadata on the display.
- Capture audio from the music system (CD, tuner, etc.) and redistribute over IP.
- Drive standalone link speakers like the BeoLab 3500 / 2000 directly: auto power-on, clock sync, full remote control.
- Forward Beo4 remote presses to your own scripts to control whatever you like (a modern TV, smart-home routines, etc.).
- Read everything happening on the bus (live now-playing, source changes, transport state) as plain serial messages.
How it shows up in software
The onboard MCU bridge converts the MasterLink wire protocol into a
clean line-based serial stream on the Pi's UART. Open
/dev/serial0 in any language, write commands as text,
read events as text. The ml-tools package wraps that
with a Redis pub/sub broker and a handful of ready-made services
(link-speaker emulator, source-provider, remote forwarder).
Connector
Original MasterLink used a 16-pin Molex connector that's still available but expensive. MDTv2 ships with a passive ML ↔ RJ45 adapter that plugs into any ML socket and accepts standard shielded CAT cable. Extra adapters and a passive RJ45 distributor (for chaining multiple ML devices) are available separately.
DataLink, the older sibling.
DataLink was B&O's interconnect standard before MasterLink arrived (around 1980 to early 90s). MDTv2 supports the variants that matter today: Audio Aux Link / DL'86 for music systems and TVs, and DL'80 for standalone peripherals (turntables, CD players, cassette decks).
What you can do with it
- Inject streaming audio into the music system over the Aux Link, with auto power-on and remote control respected.
- Pull audio out of brick-era systems (BC9500, BS6500/7000) for distribution to modern AirPlay speakers.
- Connect a vintage turntable directly (BeoGram 4004 / 6500 / 7000) for IP-streaming of standalone tangentials with full transport control.
- Bridge Beo4 IR commands to whatever modern target you want.
How it shows up in software
Same as MasterLink: the onboard MCU bridge handles the DataLink
line code and exposes everything as plain serial messages on the
Pi's UART. The dl-tools package provides a Redis
pub/sub broker plus reference services on top.
Known to work with 40+ devices.
Grouped by connector and device family. Some features depend on firmware; notes inline where it matters. If your device has an ML or "Audio Aux Link" connector and isn't listed, email us. Odds are it works and we just haven't written it down.
ML Music Systems
- BeoSound 9000 MK1/2 need SW 4.2+ for N.Radio/N.Music · MK3 native
- BeoSound 3000 / 3200 MK1 needs SW 1.34a · MK2 native
- BeoSound Overture / 4000 N.Radio support depends on firmware
- BeoSound 5 / BeoMaster 5 TV/SAT workaround always works
- BeoSound 4 Native N.Radio/N.Music · rich metadata · only system that forwards Light remote commands (SW 2.15+)
- BeoCenter 2 Native N.Radio/N.Music · rich metadata
DL Music Systems
- BeoCenter 2300 / 2500
- BeoCenter 9000 / 9300 / 9500
- BeoSystem 5000 / 5500
- BeoSystem 6500 / 7000
- BeoSystem 4500 · 3300
- BeoMaster 5000 / 5500 / 6500 / 7000
- BeoMaster 6000 / 8000
Speakers & Link Room
- BeoLab 3500 / LCS 9000 Stereo active · IR + display · clock auto-synced
- BeoLab 2000 Stereo active · IR + buttons
- BeoLink Passive Stereo amp + external IR receiver
- BeoLink Active Same as above, for active speakers
DL Peripherals
- BeoGram CD 50 / 3300 / 5500 / 6500 / 7000 External CD players
- BeoGram 4004 / 4500 / 5500 / 6500 / 7000 Tangential turntables · phono preamp may be needed
- BeoGram 6002 / 8002 Tangential turntables · phono preamp may be needed
- BeoCord 5500 / 6500 / 7000 External cassette decks
Televisions
- BeoSystem 3 A/V processor · still useful for surround
- BeoVision Avant (CRT gen)
- BeoVision 6-23 / 6-26
- BeoVision 7-32 / 7-40 / 7-55
- BeoVision 10-32 / 10-40 / 10-46
- Any other ML-equipped BeoVision
- BeoVision MX series (DL, often used for retro gaming)
Order direct from the engineers.
- MDTv2€ 180
- MDT-OS · pre-configured Linux distribution€ 250 *
- ML → RJ45 adapter (extra)on request
- RJ45 passive ML distributoron request
- Germany (DHL)free
- EU / UK / CH / NO (FedEx)on request
Ordering process
MDTv2 is currently pre-order only; first stock is expected during May. Email us your name, shipping address, desired quantity, and preferred payment (SEPA or PayPal) to reserve a unit.
We reply with a proforma invoice. Once payment clears your unit is held for you, and as soon as production stock lands we ship (DHL within Germany, FedEx internationally) with a final invoice and tracking number.
EU business customers: include your VAT ID for VAT-exclusive pricing.
info@polyvection.com