
LibreVerter Controller
imendizabal/LibreVerter
Open Source Power Converter - Hardware Components

Control your vintage Bang & Olufsen Beogram turntable from Home Assistant or Sonos.
Beogram esp32 is an open-source printed circuit board by wr, from the wr/beonos repository on GitHub. It is a 2-layer board of 25.2 × 64.4 mm with 19 parts on 17 nets, routed with 60 tracks and 6 vias.
It is built around the LTV-356T. Its parts include 6 resistors, 4 capacitors, 3 ICs and 2 connectors. It belongs with the home automation and IoT and retro computing and games boards and the ESP32 and RISC-V boards of this library.
Control your vintage Bang & Olufsen Beogram turntable from Home Assistant or Sonos.
What is it? ⬪ Buy a board ⬪ Which turntables ⬪ Hardware ⬪ Firmware ⬪ Repo layout ⬪ License
I recorded a full build video that you can watch here.
Get it as a kit, pre-soldered or not, from the Wells Workshop shop.
Or order your own Beonos Controller from PCBway. You can use my referral code to get $5 off your order, if you want. In my experience they're usually pretty fast and high quality, especially for the price.
A small ESP32-C6-powered custom PCB that splices into a Beogram's keyboard cable, reads what the turntable is doing, and sends play/pause/stop commands. The result is a 'smart' vintage turntable that behaves like a digital Sonos source.
The board splices in-line, so nothing about the turntable is modified permanently — unplug the two headers and it's stock again.
The Beogram 1800 family — the last generation of radial-arm Beograms — all share one control board, so the splice is the same across them:
| Model | Years | Status |
|---|---|---|
| Beogram RX 2 | 1985–90 | Built and tested against this |
| Beogram 1800 | 1983–84 | Confirmed from service manuals |
| Beogram 2000 | 1983 | Confirmed from service manuals |
| Beogram 5000 | 1984 | Confirmed from service manuals |
| Beogram RX | 1984 | Very likely, not yet verified |
The RX-2 service manual is published as a supplement to the Beogram 1800/2000/5000 manual, and the three share the same power supply (PCB 8005076) and control board (PCB 8005117). Their keyboards are the same two sub-boards — 8005070 for PLAY/STOP and 8005109 for 45/CUE/33 — landing on the same P7 pins, which is what this board splices into. The RX is unverified only because no manual was to hand; it replaced the 1800 and differs from the RX 2 mainly in being supplied with a pickup.
Not compatible. The Beogram 2200 looks close but wires its speed switches straight to the control board alongside indicator lamps and a motor relay, with no separate keyboard board and no CUE or PLAY/STOP lines to intercept. Tangential-arm Beograms (4002, 8000, 6500, 7000, 9000, 5005 and relatives) use a different arm and control system entirely, and pre-1983 radial decks predate this microcomputer control.
To identify an unknown deck, look for a control PCB stamped 8005117, a 24-pin MCU marked B040680 / ETL 5410N, and a keyboard on its own cable whose buttons switch +12V.
TO BOARD) and J2 (header, silkscreened TO KEYBOARD). Pins 1, 2, 4, 6, 7, 8 pass straight through; pins 3 and 5 also land on the optocoupler emitters.On-Off IN, PlayPause IN, GND IN, 12V, 5V, GND — so solder by the printed label, not the designator.Board is 25 × 64 mm, two layers. Sources are beogram-esp32.kicad_pcb / .kicad_sch / .kicad_pro, with the BOM in bom.csv.
| XIAO pin | Pad | GPIO | Net | Purpose |
|---|---|---|---|---|
| D0 | 1 | GPIO0 | IN_OnOff_3V3 | COP410 pin 11 → ESP. LOW = arm in (turntable on) |
| D3 | 4 | GPIO21 | IN_PlayPause_3V3 | COP410 pin 12 → ESP. HIGH = playing |
| D8 | 9 | GPIO19 | DRV_PlayPause | ESP → U2 opto LED. Pulse 500 ms to "press" PLAYPAUSE |
| D10 | 11 | GPIO18 | DRV_Cue | ESP → U3 opto LED. Pulse 500 ms to "press" CUE |
| 5V | 14 | — | VCC | 5V in from the MP1584 buck (PS1) |
| GND | 13 | — | GND | Common ground |
D6/D7 (GPIO16/17) are UART0 and are left unconnected on purpose, so the ROM bootloader's serial output can't reach an optocoupler on reset.
pip install esphome
cp secrets.yaml.example secrets.yaml
# fill in WiFi creds in secrets.yaml
esphome run beogram-rx2.yamlFirst flash needs USB-C; after that, updates go over the air.
Once it joins WiFi the device shows up in Home Assistant. Set the "Sonos IP" entity to your speaker's address. That's the only setup — the RINCON UUID is discovered from the speaker on boot.
| Entity | Type | Notes |
|---|---|---|
| Turntable On | binary_sensor | true = arm in / playing position |
| Turntable Playing | binary_sensor | true = motor on, arm down |
| Sonos Playing | binary_sensor | derived from polled transport state |
| Sonos On Line-In | binary_sensor | true if speaker is on line-in |
| Sonos Transport State | text_sensor | PLAYING / PAUSED_PLAYBACK / STOPPED |
| Sonos Current URI | text_sensor | what the speaker is currently playing |
| Sonos IP | text (config) | edit in HA, persists across reboots |
| Press Play/Pause | button | manually fire the turntable's PLAYPAUSE |
| Press Cue | button | manually fire the turntable's CUE |
| Sonos Play / Pause | buttons | manual SOAP commands |
| Sonos Switch to Line-In | button | manual SOAP command |
| WiFi Signal | sensor | dBm, 60s update |
beogram-esp32.kicad_pro KiCad project
beogram-esp32.kicad_sch Schematic
beogram-esp32.kicad_pcb PCB layout
fp-lib-table Registers the project footprint libraries
sym-lib-table Registers the project symbol library
beogram.pretty/ Project footprints (MP1584 wire pads)
beogram.kicad_sym Project symbols
New_XIAO_Series_Footprints/ Seeed's XIAO footprint library (vendor)
beogram-rx2.yaml ESPHome firmware config
secrets.yaml.example Template for WiFi/OTA/API creds
bom.csv Bill of materials
bang-olufsen_beogram_rx2_sch.pdf RX 2 service-manual schematic, for referenceESPHome, the Seeed Studio XIAO ESP32-C6, KiCad, and Bang & Olufsen's engineers, who documented the RX2 well enough to reverse a splice point out of it forty years later.
While beonos is free and open source, donations are deeply appreciated, and make ongoing development and support possible. Donate now
CC BY-NC-SA 4.0. © 2026 Wells Riley.
| Qty | Value | Footprint | References |
|---|---|---|---|
| 2 | 1.5M | Resistor_SMD:R_0402_1005Metric | R6, R8 |
| 2 | 10nF | Capacitor_SMD:C_0402_1005Metric | C3, C4 |
| 2 | 1M | Resistor_SMD:R_0402_1005Metric | R5, R7 |
| 2 | 470R | Resistor_SMD:R_0402_1005Metric | R1, R2 |
| 2 | LTV-356T | Package_SO:SO-4_4.4x3.6mm_P2.54mm | U2, U3 |
| 1 | 100nF | Capacitor_SMD:C_0402_1005Metric | C2 |
| 1 | 10uF | Capacitor_SMD:C_0402_1005Metric | C1 |
| 1 | 2.54-1*40P right-angle(C2334) | Connector_PinHeader_2.54mm:PinHeader_1x08_P2.54mm_Horizontal | J2 |
| 1 | GND IN | TestPoint:TestPoint_Pad_1.5x1.5mm | TP5 |
| 1 | MP1584EN module | beogram:MP1584_Module_Wired | PS1 |
| 1 | On-Off IN | TestPoint:TestPoint_Pad_1.5x1.5mm | TP2 |
| 1 | PM254-1-08-W-8.5(C2897390) | Connector_PinSocket_2.54mm:PinSocket_1x08_P2.54mm_Horizontal | J1 |
| 1 | PlayPause IN | TestPoint:TestPoint_Pad_1.5x1.5mm | TP3 |
| 1 | SEEED STUDIO XIAO ESP32C6 | New_XIAO_Series_Footprints:XIAO-ESP32-C6-SMD | U1 |
It measures 25.2 × 64.4 mm and has 2 copper layers, 1.6 mm thick.
19 parts, built around the LTV-356T. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
From the wr/beonos repository on GitHub, at the commit this page was made from: the board is beogram-esp32.kicad_pcb and its schematic beogram-esp32.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository states no licence, so its author keeps all rights: ask wr before reusing the design.

imendizabal/LibreVerter
Open Source Power Converter - Hardware Components

brucemack/microlink
An open source EchoLink/AllStarLink implementation that runs on a simple microcontroller.

HacklabJKL/sergei_cnc2
Second version of Hacklab's custom built CNC machine

DepartmentOfAlchemy/minimain-esp32-s2
PCB files for the MiniMain ESP32-S2 in an Adafruit Feather compatible format.

Fominsky/HIGH-SPEED-USB-ISOLATOR
High-speed USB isolator with external power based on ADuM3165/ADuM3166

tuwrraphael/inkjet-printer
Inkjet printer for printing ceramic thin films: software, electronics and CAD designs

