Joakim 2526d5b087 feat: M3 complete — WiFi, BT keyboard and mouse
Bluetooth (RTL8723D USB combo chip):
- GPIO pin 357 (active low) enables WiFi/BT hardware via x6200_gpio_set()
- bluez5_utils 5.64 (downgraded from 5.79 — HID input plugin broken in 5.79)
- rtl8723d_config.bin added to overlay (missing from linux-firmware package)
- S45wifi-bt: GPIO enable + modprobe btusb/uhid/hidp at boot
- S85bt-keyboard: auto-connect loop with scan+connect every 20s

WiFi (RTL8723DU):
- out-of-tree lwfinger/rtw88 driver (RTW88_8723DU not in kernel 6.1 mainline)
- linux-firmware RTL_RTW88 for rtw88/rtw8723d_fw.bin
- regulatory.db for cfg80211
- wpa_supplicant with multi-network config in /etc/wpa_supplicant.conf
- S46wifi: wpa_supplicant + udhcpc at boot

Key findings:
- RTL8723D USB WiFi (0bda:d723) requires out-of-tree rtw88 on kernel 6.1
- BT and WiFi share same USB device, both need GPIO 357 = 0 to power on
- bluez5 5.79 HID input plugin not linked into bluetoothd (build system bug)
2026-05-09 21:02:53 +02:00
2026-05-02 22:12:59 +02:00
2026-05-02 22:12:59 +02:00
2026-05-02 22:12:59 +02:00
2026-05-02 22:12:59 +02:00

Mestre

An open-source control head for software-defined radios — built on the Xiegu X6200.

What is Mestre?

Mestre turns a Xiegu X6200 into a dedicated, tactile remote control head for any networked SDR transceiver, starting with the Hermes-Lite 2.

The motivation is simple. Concepts like FlexRadio's Maestro prove that a dedicated piece of hardware — real VFO knob, real buttons, no laptop — gives the operating experience that touchscreens and mouse-driven SDR consoles don't. But Maestro is closed, expensive, and locked to the FlexRadio ecosystem.

Mestre uses a radio you may already own (the X6200) and turns its physical controls into a Maestro-class experience for radios you may already own (HL2, ANAN, anything HPSDR-compatible). Open hardware, open software, open protocol.

┌─────────────────────────┐                ┌──────────────────────┐
│        X6200            │                │   Hermes-Lite 2      │
│  ┌───────────────────┐  │                │                      │
│  │ Knobs, buttons    │  │                │   (or any HPSDR rig) │
│  │ Touchscreen, LCD  │  │                │                      │
│  └─────────┬─────────┘  │                └──────────┬───────────┘
│            │            │                           │
│  ┌─────────▼─────────┐  │     Network (HPSDR)       │
│  │ Mestre service    │  │                           │
│  │ (evdev → MIDI)    │  │                           │
│  └─────────┬─────────┘  │                           │
│            │            │                           │
│  ┌─────────▼─────────┐  │                           │
│  │     piHPSDR       │◄─┼───────────────────────────┘
│  └───────────────────┘  │
└─────────────────────────┘

Mestre vs Virtuoso

The project is Mestre — the build system, services, and software stack.

The product name Virtuoso is reserved for when (if!) Mestre actually delivers a Maestro-class experience. It must be earned.

Project Status

🚧 Early development. Building the foundation.

# Milestone Status
1 Boot a recent Buildroot LTS on the X6200 (serial console) 2026-05-03
2 Working audio stack 2026-05-06
3 WiFi and Bluetooth keyboard and mouse 2026-05-09
4 Forward-port LCD panel driver — full display output 2026-05-03
5 piHPSDR running on X6200, controlled by mouse and keyboard Planned
6 piHPSDR audio — HL2 audio via SoC speaker Planned
7 mestre service: evdev → ALSA virtual MIDI bridge Planned
8 End-to-end: X6200 controlling Hermes-Lite 2 as a control head Planned
9 First-boot wizard, settings persistence, polished UX Planned
Earn the right to call it Virtuoso TBD

Architecture

Mestre is built as a Buildroot-based Linux distribution for the X6200. The system runs three cooperating components:

  • piHPSDR — handles the SDR protocol, audio, waterfall, and overall radio UI on the X6200's LCD. Connects over the network to the actual transceiver hardware (HL2 or other HPSDR rig).
  • mestre service — a small daemon that reads the X6200's physical knobs and buttons via /dev/input/eventX and translates them into MIDI control change messages on a virtual ALSA MIDI port.
  • piHPSDR's MIDI mapper — already built into piHPSDR. Subscribes to the virtual MIDI port and acts on the controls.

The architecture is deliberately patch-free: piHPSDR is used as-is, and the MIDI protocol is the well-known, stable contract between the two halves.

Hardware

  • Control head: Xiegu X6200 (Allwinner R16 / sun8i-a33, 480×800 LCD, knobs, buttons, internal speaker)
  • Transceiver: Hermes-Lite 2 (open-hardware HF SDR), or any HPSDR-protocol radio supported by piHPSDR

Building

⚠️ Pre-1.0: actively developed. Core build works; some milestones still in progress.

Prerequisites

A recent Linux host with the Buildroot prerequisites installed. Building inside the provided container is also supported.

Quickstart

git clone --recurse-submodules <repo-url> mestre
cd mestre
./scripts/build.sh

The resulting sdcard.img will appear under build/images/. Flash it to a microSD card with dd or your tool of choice and boot the X6200 from it.

Buildroot version

Mestre is pinned to Buildroot 2025.02 LTS for stability — the LTS line is supported with security and bugfix updates for three years. Bumping is a deliberate, documented choice, not a continuous treadmill.

Repository layout

mestre/
├── buildroot/              # submodule → Buildroot 2025.02.x
├── br2_external/           # all our Buildroot customisations
│   ├── configs/            #   defconfig
│   ├── board/x6200/        #   linux config, U-Boot config, DTS, overlay
│   └── package/            #   custom packages (mestre service, etc.)
├── docs/                   # design notes, hardware notes
├── scripts/                # build wrappers
├── README.md               # this file
└── DESIGN.md               # architectural decisions

Credits & Prior Art

Mestre stands on the shoulders of others. In particular:

  • gdyuldin/AetherX6200Buildroot — the Aether project, from which Mestre inherits the X6200 device tree, U-Boot configuration, and LCD panel driver. Aether's project goal (improving the X6200 as a transceiver) differs from Mestre's (using the X6200 as a control head), but Aether's hardware enablement work made Mestre feasible from day one. Vendored files retain their original copyright headers.
  • apritzel (#linux-sunxi @ OFTC) — device-tree guidance for the X6200, acknowledged in the DTS source.
  • Rui Oliveira and Oleg Belousov — original authors of the Jinglitai JLT4013A panel driver, forward-ported here for use with current mainline kernels.
  • The piHPSDR project — the SDR console Mestre wraps. Mestre would not exist without piHPSDR's existing MIDI control infrastructure, which lets us avoid patching the console itself.
  • The OpenHPSDR community and Steve Haynal (N0EJV / Hermes-Lite 2) — for keeping open-protocol SDR alive.

License

GPL-2.0-or-later, matching the kernel-derived components Mestre vendors. Userland components written specifically for Mestre may be re-licensed (e.g. to MIT) on a per-component basis where doing so doesn't conflict with this overall license; such cases will be marked clearly in the relevant subdirectory.

Description
No description provided
Readme GPL-2.0 104 KiB
Languages
Shell 87.6%
Makefile 10.5%
Batchfile 1.9%