Skip to content

Bluetooth Adapters

The bridge streams A2DP audio to every configured speaker simultaneously. Each SBC stream consumes ~345 kbps of Bluetooth bandwidth, so adapter choice directly affects connection stability, range, and the number of speakers you can drive from a single controller.

CriterionWhy it matters
Bluetooth 5.0+4× LE range, better coexistence when juggling multiple connections
Chipset with native btusb supportPlug-and-play on HAOS without sideloading drivers
Firmware shipped in linux-firmwareHAOS is immutable — you cannot install extra packages
USB 2.0 nano form factorClean Proxmox USB passthrough, doesn’t block adjacent ports
A2DP + SBCMandatory for audio streaming
Stable reconnect behaviorHeadless system with no UI for manual recovery

One Bluetooth adapter supports up to 7 active ACL links, but A2DP streaming is bandwidth-intensive. For reliable operation:

SpeakersRecommended adapters
1–31 adapter
4–52 adapters (2–3 speakers each)
6+3+ adapters, one per 2–3 speakers

All adapters below use the Realtek RTL8761B chipset — the de facto standard for BT 5.0 USB dongles on Linux. The btusb driver recognizes them from kernel 5.8+, and the required firmware (rtl_bt/rtl8761bu_fw.bin) is bundled with linux-firmware since 2020.

Section titled “1. TP-Link UB500 (v1 / v2) — Best overall”
SpecValue
ChipsetRealtek RTL8761B
Bluetooth5.0 (BR/EDR + LE)
Linux driverbtusb (kernel ≥ 5.8)
USB ID2357:0604
Range~20 m (Class 1.5)
Price~$12–15

The most widely tested BT 5.0 nano dongle on Linux. Firmware is included in every modern linux-firmware release, so HAOS picks it up immediately after USB passthrough.

SpecValue
ChipsetRealtek RTL8761B
Bluetooth5.0 (BR/EDR + LE)
Linux driverbtusb (kernel ≥ 5.14 by USB ID)
USB ID0b05:190e
Range~10 m (Classic / A2DP)
Price~$15–20

Same RTL8761B chipset in a slightly better-shielded ASUS package. Over 890 reports on linux-hardware.org and well-documented in the Home Assistant community.

SpecValue
ChipsetRealtek RTL8761B
Bluetooth5.0 (BR/EDR + LE)
Range~40 m (LE), ~10 m (Classic)
Price~$19

Comes with a 2-year warranty and lifetime technical support. The product page says “incompatible with Linux”, but the underlying RTL8761B chipset works perfectly through btusb.

SpecValue
ChipsetRealtek RTL8761BUV
Bluetooth5.1
Price~$10–12

An evolution of the RTL8761B with BT 5.1 direction finding (not critical for A2DP but a nice-to-have). Compatible btusb driver; may require a slightly newer linux-firmware for the firmware blob.

5. Zexmte / MPOW BT 5.0 Nano — Budget pick

Section titled “5. Zexmte / MPOW BT 5.0 Nano — Budget pick”
SpecValue
ChipsetRealtek RTL8761B (nominal)
Bluetooth5.0
Price~$8–10

Cheapest RTL8761B option. Good if you need to buy several adapters at once. Verify the USB ID after receiving — some batches may ship a different chipset.

#ModelChipsetBTLinux kernelPriceRating
1TP-Link UB500 v1/v2RTL8761B5.0≥ 5.8~$12⭐⭐⭐⭐⭐
2ASUS USB-BT500RTL8761B5.0≥ 5.14~$17⭐⭐⭐⭐⭐
3Plugable USB-BT5RTL8761B5.0≥ 5.8~$19⭐⭐⭐⭐
4EDUP EP-B3536RTL8761BUV5.1≥ 5.8~$11⭐⭐⭐⭐
5Zexmte BT 5.0RTL8761B5.0≥ 5.8~$9⭐⭐⭐

Raspberry Pi boards include an on-board Broadcom Bluetooth controller. It works for basic testing but has significant limitations for multi-speaker audio streaming:

BoardChipsetBT versionMax A2DP streamsNotes
Pi 4 Model BBCM4345C0 (CYW43455)5.0 (BLE)1Shared antenna with WiFi, limited A2DP bandwidth
Pi 5CYW43455 variant5.0 (BLE)1Same chipset lineage, same single-stream limit
Pi 3 Model B+BCM434384.21Older BT version, lower throughput

Software workarounds for adapter / BlueZ regressions

Section titled “Software workarounds for adapter / BlueZ regressions”

The bridge ships advanced compatibility tools for specific kernel, BlueZ, or PulseAudio failures. They live in Configuration → Bluetooth → Advanced recovery workarounds and stay hidden until you turn on Advanced compatibility tools on the General tab. The UI disables tools unsupported by the running host and explains why. See the Web UI page for details.

SymptomToggle
Speaker connects but PulseAudio reports no sink (BlueZ 5.86 dual-role regression, bluez/bluez#1922)EXPERIMENTAL_A2DP_SINK_RECOVERY_DANCE
Sink appears intermittently or only after a manual replugEXPERIMENTAL_PA_MODULE_RELOAD
The whole adapter goes silent under load and bridge cannot recover itEXPERIMENTAL_ADAPTER_AUTO_RECOVERY (rfkill check → MGMT/HCI power-cycle → optional USB reset)
Cannot pair a second speaker on a single-adapter setup while the first one is streamingTemporarily disconnect other speakers in the Scan modal
Speaker shows no SSP confirmation at all and bridge waits indefinitelyNoInputNoOutput pair agent in the Scan modal
A multi-profile device refuses to finish pairing unless HFP/HSP is acceptedAuthorize HFP/HSP for this pair for that attempt; playback is still A2DP-only

Treat these as targeted painkillers. Do not turn them on preemptively. Pairing compatibility options are one-shot, reset after every request, and the agent rejects requests from every MAC except the selected target.

Adapter / chipsetProblem
ZEXMTE BT 5.3 Long Range (180 m / high-gain antenna, ASIN B0CP5WQ7L8)Detects, pairs, plays — but unstable for A2DP music streaming (community report, #295)
TP-Link UB500 Plus (BT 5.3 with adjustable external antenna, ASIN B0DHJHMHFS)Same — detects and pairs, A2DP unstable. Avoid in favour of the regular UB500 nano. Community report, #295
CSR8510 A10BT 4.0, limited range (~10 m), aging silicon
Broadcom BCM20702BT 4.0, firmware-loading issues on immutable systems
Qualcomm QCA61x4Needs proprietary firmware, unstable with bluez
TP-Link UB500 v3BT 5.4 with a different chipset — HAOS compatibility unconfirmed
Any WiFi + BT comboConflicts with existing WiFi, complex USB passthrough
BT 5.2+ LE Audio donglesLC3 codec is not yet supported by PulseAudio 17
aptX / Snapdragon Sound transmitters (e.g. Creative BT-W6, B0DG34HRNC)Proprietary stack; the bridge streams strictly via A2DP/SBC

Community datapoints from #295 (sirs2k, tested on HAOS, hci0). All four detect and pair correctly; A2DP music-streaming behaviour is the differentiator:

VerdictProductASINBTNotes
⭐⭐⭐⭐⭐ BestUGREEN 80889 USB Bluetooth 5.0 AdapterB08R8992YC5.0Realtek RTL8761B nano, model 80889
⭐⭐⭐⭐ GoodTP-Link UB500 Nano (UK Version)B09C25VRXD5.0Same v1/v2 hardware as the global TP-Link UB500
❌ AvoidTP-Link UB500 Plus (BT 5.3 + external antenna)B0DHJHMHFS5.3Pairs and plays, A2DP unstable for music
❌ AvoidZEXMTE BT 5.3 Long Range (180 m antenna)B0CP5WQ7L85.3Pairs and plays, A2DP unstable for music

If you have a datapoint to add — model, ASIN, BlueZ version, and whether it sustained A2DP audio under load — please open an issue so future readers benefit.

If you are upgrading from the older CSR8510 A10 adapters:

  1. Purchase 2× TP-Link UB500 v1/v2 (or any RTL8761B dongle above).
  2. Proxmox: update USB device mappings to the new VID:PID.
  3. HAOS: the adapters are recognized automatically (btusb + linux-firmware).
  4. Verify with bluetoothctl list — you should see two controllers.
  5. Update adapter MAC addresses in the bridge configuration (hci0 / hci1).
  6. Re-pair each speaker and test A2DP playback.
  7. Monitor reconnect stability over 24 hours before considering the migration complete.

A typical two-adapter setup for 4–5 speakers:

Proxmox Host
├── USB Mapping "Audio" → TP-Link UB500 #1 (hci0) → 2–3 speakers
├── USB Mapping "BT2" → TP-Link UB500 #2 (hci1) → 2 speakers
└── HAOS VM
└── Sendspin BT Bridge
├── BluetoothManager (hci0)
└── BluetoothManager (hci1)

See Devices & Adapters for adapter naming, binding speakers to specific controllers, and managing the device fleet.