Thank you for your donation!


Cloudsmith graciously provides open-source package management and distribution for our project.


Solved: Bluetooth USB controller issues
#1
Hi everybody

System RPi4 8Gb

Just installed the latest v9.2.1 via onboard update.

I have the following issue with this release and some previous releases - my temporary workaround is at the end of this note.

Problem

I use a USB Bluetooth adapter to connect to my headphones.  In order to do this I have to disable the onboard RPi BT adapter and select the USB adapter.

I can do this via 

$ bluetoothctl list / bluetoothctl select [DEV].

In v 9.0.7 of Moode (my previous working version) this change persists past shutdown/reboot, and I could use the GUI bluetooth control to establish connection.

In v9.2.1 and some previous versions it does not persist and (perhaps related, perhaps not), does not connect.

The GUI in v 9.2.1 takes me as far as scan - find - pair my BT headphones, but when I click connect nothing happens.

I can complete the connection via the cli 

$ bluetoothctl connect [DEV]

I can then revert to the Moode GUI,  and play.  So I have a workaround.

But previously (i) my controller selection persisted and (ii) Connect in the Bluetooth GUI worked.

(FYI the GUI 'connect' works with the onboard BT controller, but that's not what I need.)

Hope this short explanation is sufficient to enable this to be fixed and the whole process to be done via the Moode Bluetooth GUI.  

Ideally, it could be helpful to be able to select which of two installed BT controllers Moode will use, and have the onboard scripts work accordingly.

Still think Moode is the best out there!

Tks
R
Reply
#2
1. Make/model of the BT adapter in case someone else has same one and can help troubleshoot.
2. Try doing the Connect using the same command that the WebUI Bluetooth Control screen uses. I'm assuming the device was already paired successfully using WebUI Bluetooth Control screen.

Code:
sudo /var/www/util/blu-control.sh -C <MAC_ADDRESS>

Available options
Code:
pi@moode9:~ $ sudo /var/www/util/blu-control.sh --help
** blu-control.sh version 1.6
**
** Bluetooth has a range of around 30 feet (10 meters) but range
** will vary depending on obstacles (metal, wall, etc.), device signal
** strength and quality, and level of electromagnetic interferrence.
**
** Usage: blu-control.sh [OPTION]
**
** -i Initialize/reset controller
** -s Scan (BR/EDR only) and trust devices
** -S Scan (LE and BR/EDR) and trust devices
** -p List paired devices
** -c List connected devices
** -l List trusted devices
** -d Disconnect device <MAC addr>
** -r Remove paired device <MAC addr>
** -P Pair with device <MAC addr>
** -C Connect to device <MAC addr>
** -D Disconnect all devices
** -R Remove all devices
** -h Help
pi@moode9:~ $
Enjoy the Music!
moodeaudio.org | Mastodon Feed | GitHub
Reply
#3
I may dig into this a bit myself just because I like puzzles so do share details of your adapter.

That said, I regularly use USB/BT audio adapters such as the Creative Tech BT-Wx series (in my case, a BT-W2 but threir latest model is a BT-W6). They enumerate as an audio output device in moOde so no mucking about with the Linux Bluetooth subsystem is required.

Further benefit: they suuport one or more advanced Bluetooth audio profiles in firmware; in my case aptX, which matches the capability of my aging Sennheiser headphones.

Regards,
Kent
Reply
#4
Hi Kent - thanks for the swift reply.

The adapter is the TP-LINK Long Range Bluetooth 5.3 USB Adapter UB500 PLUS

lsusb shows 2357:0604 TP-Link TP-Link Bluetooth USB Adapter

'''
[bluetooth]# show
Controller F0:09:0D:E9:93:43 (public)
       Name: Moode Bluetooth
       Alias: RTL
       Class: 0x000c041c
       Powered: yes
       Discoverable: yes
       DiscoverableTimeout: 0x00000000
       Pairable: yes
       UUID: A/V Remote Control        (0000110e-0000-1000-8000-00805f9b34fb)
       UUID: Audio Source              (0000110a-0000-1000-8000-00805f9b34fb)
       UUID: PnP Information           (00001200-0000-1000-8000-00805f9b34fb)
       UUID: Audio Sink                (0000110b-0000-1000-8000-00805f9b34fb)
       UUID: A/V Remote Control Target (0000110c-0000-1000-8000-00805f9b34fb)
       UUID: Generic Access Profile    (00001800-0000-1000-8000-00805f9b34fb)
       UUID: Generic Attribute Profile (00001801-0000-1000-8000-00805f9b34fb)
       UUID: Device Information        (0000180a-0000-1000-8000-00805f9b34fb)
       Modalias: usb:v1D6Bp0246d0542
       Discovering: no
       Roles: central
       Roles: peripheral
Advertising Features:
       ActiveInstances: 0x00 (0)
       SupportedInstances: 0x04 (4)
       SupportedIncludes: tx-power
       SupportedIncludes: appearance
       SupportedIncludes: local-name
       SupportedSecondaryChannels: 1M
       SupportedSecondaryChannels: 2M
       SupportedSecondaryChannels: Coded
'''


The connection script worked - thanks

'''
pi@moode:~ $ sudo /var/www/util/blu-control.sh -C A8:99Big GrinC:52:19:C4
** Connecting to device A8:99Big GrinC:52:19:C4
** Device A8:99Big GrinC:52:19:C4 connected
'''


But on reverting to the GUI and pressing play, I get the error message "Failed to open "ALSA Bluetooth" (alsa); Failed to open ALSA device "_audioout": No such device"

So perhaps the failure is not in the connection itself, but somewhere between connection and BT player.

As per the OP, connecting via bluetoothctl works.

Best
R
Reply
#5
I think if you are playing from moode -> bluetooth headphones via a dongle try changing "Local audio" to "Bluetooth speaker" in the Bluetooth Control screen
Enjoy the Music!
moodeaudio.org | Mastodon Feed | GitHub
Reply
#6
(01-04-2025, 04:40 PM)Tim Curtis Wrote: I think if you are playing from moode -> bluetooth headphones via a dongle try changing "Local audio" to "Bluetooth speaker" in the Bluetooth Control screen

Thanks Tim - I have been doing that, with no success. 

Strangely, when I select 'Bluetooth Speaker' in the GUI, I don't see any BT devices listed. but when I select 'Local audio' then my BT device appears in the list. 

But I can't connect to it, whichever output is selected.

Tks
R
Reply
#7
And just to add a bit more information - when I connect using the cli bluetoothctl connect [Mac address] I get the following:

connect A8:99Big GrinC:52:19:C4
Attempting to connect to A8:99Big GrinC:52:19:C4
[CHG] Device A8:99Big GrinC:52:19:C4 Connected: yes
[NEW] Endpoint /org/bluez/hci1/dev_A8_99_DC_52_19_C4/sep4
[NEW] Endpoint /org/bluez/hci1/dev_A8_99_DC_52_19_C4/sep3
[NEW] Endpoint /org/bluez/hci1/dev_A8_99_DC_52_19_C4/sep2
[NEW] Endpoint /org/bluez/hci1/dev_A8_99_DC_52_19_C4/sep13
[NEW] Endpoint /org/bluez/hci1/dev_A8_99_DC_52_19_C4/sep12
[NEW] Endpoint /org/bluez/hci1/dev_A8_99_DC_52_19_C4/sep11
[NEW] Transport /org/bluez/hci1/dev_A8_99_DC_52_19_C4/sep2/fd10
[CHG] Transport /org/bluez/hci1/dev_A8_99_DC_52_19_C4/sep2/fd10 Delay: 0x07d0 (2000)
Connection successful
[NEW] Player /org/bluez/hci1/dev_A8_99_DC_52_19_C4/player0 [default]
[CHG] Transport /org/bluez/hci1/dev_A8_99_DC_52_19_C4/sep2/fd10 Volume: 0x006b (107)
[CHG] Device A8:99Big GrinC:52:19:C4 ServicesResolved: yes

and whereas connecting via the sudo /var .. etc script returns 'connected' as per previous post, that is all it returns.

And as a reminder of the OP, the selection of the USB adapter is still not persistent.

Tks
Reply
#8
@rico1

So I rooted through a few boxes after dinner and finally dug up an ASUS USB-BT transceiver. (Most of my stockpile turned out to be BT receivers intended for a keyboard and/or mouse). The report returned by bluetoothctl for this adapter is very similar to the one you get for your TP-Link adapter, including Audio source, Audio sink, A/V remote control, etc.

I took the following steps to get it streaming audio to a JBL Flip 2 Bluetooth speaker from moOde 9.2.1 on a Pi 5

1. Plug it into an available USB port (!)

2. In the webUI, go to the System config screen and disable the integrated Bluetooth adapter.

3. Reboot

4. In the webUI, go to the Renderers config screen, enable Bluetooth controller.

5. (same screen), Open Bluetooth control

6. Go through the usual rigamarole: SCAN (Standard), PAIR with the JBL Flip 2 device which shows up in the scan results, CONNECT to it, then under options switch from Local audio to Bluetooth Speaker. It seemed like the first time I tried to switch to Bluetooth speaker, it reverted instantly to Local audio, but the second time it succeeded. This may be a real behavior or it may be i just flinched with the mouse. I don't have time to repeat the experiment.

7. Done. If I start a track playing, it streams from the JBL speaker.

It appears that on reboot I lose the connection but the pairing is still good so i just have to reconnect.

Sorry, I don't have time tonight or tomorrow morning to explore your problem further. 

Good hunting.

Regards,
Kent
Reply
#9
Kent - it's probably the middle of the night with you so hope this cheers you when you wake. Your solution solved the problem.

Disabling BT in the GUI BT controller was the key. Once the system had a clear path to a single controller everything else slotted into place without further fuss.

Many thanks and marking this as SOLVED.

Kind regards
R
Reply


Forum Jump: