I have an issue with my HD 405BT (
https://assets.sennheiser.com/global-downloads/file/14814/HD_450BT_Manual_EN.pdf) headpones
I've found that when I'm using the headset as an A2DP sink to listen to music, it periodically drops to HSP/HFP.
pavucontrol shows A2DP as
Unavailable and I have to disconnect and reconnect the headset to get it back for a bit.
HSP/HFP audio quality is dire - not entirely unexpected as, by design, it's lower quality than A2DP (which is only 1 way - no mic).
It is possible to have better quality HSP/HFP audio (although not to
A2DP levels), but it seems that PulseAudio is quite stubbornly behind the curve though -
https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/issues/776
I've ordered a USB bluetooth soundcard to avoid having to use
pavucontrol to switch the headset profile when I went to go on a call, but in the meantime want to try and get to the bottom of this (if I can fix it, I might just set up an software toggle, or try and get PA's auto-toggle working).
dmesg doesn't show much
[Tue Aug 3 09:29:52 2021] input: HD 450BT (AVRCP) as /devices/virtual/input/input94
[Tue Aug 3 09:29:53 2021] Bluetooth: hci0: SCO packet for unknown connection handle 0
[Tue Aug 3 09:29:53 2021] Bluetooth: hci0: SCO packet for unknown connection handle 0
[Tue Aug 3 09:29:53 2021] Bluetooth: hci0: SCO packet for unknown connection handle 0
[Tue Aug 3 09:29:53 2021] Bluetooth: hci0: SCO packet for unknown connection handle 0
[Tue Aug 3 09:29:53 2021] Bluetooth: hci0: SCO packet for unknown connection handle 0
[Tue Aug 3 09:30:43 2021] Bluetooth: hci0: SCO packet for unknown connection handle 257
[Tue Aug 3 09:31:48 2021] input: HD 450BT (AVRCP) as /devices/virtual/input/input95
As well as the audio quality issues, I had other issues whilst on a Zoom call yesterday.
At first, my headset wasn't available for use (headset was showing as connected in Bluezman). So, I gave up and plugged in a wired headset. Midway through the call, it suddenly switched an my HD450BT came into use.
A little while later, the headset dropped into A2DP so the mic input moved to my wired headset, leaving me in the ridiculous position of holding a headset up to my face to use the mic.
I would
guess that's related though - the result of it disconnecting/reconnecting, with PA then trying to adjust config as a result.
---------------------------------------------------------------------
Installed versions
OS:
root@bumblebee:~# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 21.04
Release: 21.04
Codename: hirsute
Software:
root@bumblebee:/home/ben# dpkg --list | egrep -e 'Pulse|blue'
ii bluedevil 4:5.21.4-0ubuntu1 amd64 KDE Bluetooth stack
ii bluez 5.56-0ubuntu4.1 amd64 Bluetooth tools and daemons
ii bluez-cups 5.56-0ubuntu4.1 amd64 Bluetooth printer driver for CUPS
ii bluez-obexd 5.56-0ubuntu4.1 amd64 bluez obex daemon
ii gstreamer1.0-pulseaudio:amd64 1.18.4-1ubuntu1 amd64 GStreamer plugin for PulseAudio (transitional package)
ii libbluetooth3:amd64 5.56-0ubuntu4.1 amd64 Library to use the BlueZ Linux Bluetooth stack
ii libcanberra-pulse:amd64 0.30-7ubuntu2 amd64 PulseAudio backend for libcanberra
ii libkf5bluezqt-data 5.80.0-0ubuntu1 all data files for bluez-qt
ii libkf5bluezqt6:amd64 5.80.0-0ubuntu1 amd64 Qt wrapper for bluez
ii libkf5pulseaudioqt2:amd64 1.2-2build1 amd64 Pulseaudio bindings library for Qt
ii libopenconnect5:amd64 8.10-2build1 amd64 open client for Cisco AnyConnect, Pulse, GlobalProtect VPN - shared library
ii libpulse-mainloop-glib0:amd64 1:14.2-1ubuntu1 amd64 PulseAudio client libraries (glib support)
ii libpulse0:amd64 1:14.2-1ubuntu1 amd64 PulseAudio client libraries
ii libpulsedsp:amd64 1:14.2-1ubuntu1 amd64 PulseAudio OSS pre-load library
ii pulseaudio 1:14.2-1ubuntu1 amd64 PulseAudio sound server
ii pulseaudio-module-bluetooth 1:14.2-1ubuntu1 amd64 Bluetooth module for PulseAudio sound server
ii pulseaudio-module-gsettings 1:14.2-1ubuntu1 amd64 GSettings module for PulseAudio sound server
ii pulseaudio-utils 1:14.2-1ubuntu1 amd64 Command line tools for the PulseAudio sound server
ii qml-module-org-kde-bluezqt:amd64 5.80.0-0ubuntu1 amd64 QML wrapper for bluez
Hardware
lshw doesn't show much:
description: Bluetooth wireless interface
vendor: Intel Corp.
physical id: a
bus info: usb@3:a
version: 0.02
capabilities: bluetooth usb-2.01
configuration: driver=btusb maxpower=100mA speed=12Mbit/s
lspci shows a little more though
00:14.3 Network controller [0280]: Intel Corporation Wi-Fi 6 AX201 [8086:a0f0] (rev 20)
Subsystem: Intel Corporation Wi-Fi 6 AX201 [8086:0070]
Kernel driver in use: iwlwifi
Kernel modules: iwlwifi
The
AX201 is integrated Wi-Fi and Bluetooth (
https://ark.intel.com/content/www/us/en/ark/products/130293/intel-wi-fi-6-ax201-gig.html)
Activity
2021-08-03 09:45:42
Apparently, it's taken issue with that - as I finished that sentence my headset has again dropped A2DP
2021-08-03 09:45:56
2021-08-03 09:52:27
Earlier examples look similar, but there's nothing else logging that's common
2021-08-03 09:54:41
So, the headset won't be paired with the laptop/touch Bluez at all - Pulseaudio will just see a USB soundcard (the button on the front of it is used to switch between HFP and A2DP).
2021-08-03 11:07:40
The video was just someone talking over slides, so incredibly low bandwidth on the audio side of things. I've another video to watch, but I've put some music (much higher bandwidth) on first to see if I get a dropout.
Not that it should matter too much, but in both cases, the audio source is Firefox (music playing in Jamstash, video playing on the training site).
2021-08-03 14:22:11
2021-08-03 14:42:11
Unfortunately:
This BlueZ bug also sounds about right: https://github.com/bluez/bluez/issues/102
The version I'm running is right too
They also list a logline that's common with mine
Fix is here - https://github.com/tedd-an/bluez/commit/fac790455a8a2d1fd7973db1fed2f297d67f5d9f
There is an update in the Ubuntu repos to
2021-08-03 17:04:22
2021-08-03 17:21:04
Log entries look the same too
2021-08-04 09:27:22
There's a bug here: https://github.com/bluez/bluez/issues/130 where a user waited for Manjaro to get
There's some discussion about
- https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/issues/1155
- https://bugzilla.redhat.com/show_bug.cgi?id=1929434
I'm running the following:
The Ubuntu Errata for this version notes
And links to the Ubuntu bug - https://bugs.launchpad.net/ubuntu/+source/linux-firmware/+bug/1922406
Means I should have the fix.
But, there has been mention that you need to power off and then boot for firmware changes, so is this the version I installed from new or is it a recent update?
It was installed along side a lot of other packages - it's the original install.
2021-08-04 09:38:10
OK, so that release was made 7 Apr 2021.
Based on the PA thread though, the release we're interested in (i.e. that fixed it for others) is
As Ubuntu doesn't have anything newer in the repos, I guess the next step is to go out of band.
Need to power off and boot back up now
2021-08-04 09:42:07
So now we put some music on and wait....
For avoidance of doubt, the headphones have been re-paired to the laptop (I had unpaired them to play around with the 1mii B10)
2021-08-04 11:14:15
2021-08-04 11:42:01
However, I've just had a Zoom call, so have just switched to HSP/HFP (at the beginning of the call) and then switched back to A2DP, so that may yet prompt a failure
2021-08-04 12:03:31
Triggered a Zoom test call with music still playing, worked a charm.
It switched to HSP/HFP while the Zoom call was active, and then when I left the call, went back to A2DP
2021-08-04 14:15:06
At risk of immediately triggering the issue: I think we've solved it.
2021-08-04 17:09:04
When I got into a Zoom call, Pulse correctly switches to HSP/HFP (if there's music still playing it noticeably degrages in quality). BUT, I can't use the headset's mic - it's listed but I can't switch to it in Zoom or in
2021-08-04 17:20:48
If I kill Zoom, manually switch to HSP/HFP in
But, if I let auto-switch take me from A2DP to HSP automatically, it doesn't seem to get any input from the mic.
The problem is, I can't seem to just set Zoom to use
2021-08-05 10:17:33
Sounds like I'm hitting this: https://github.com/NixOS/nixpkgs/issues/80042
On the original Ubuntu bug (https://bugs.launchpad.net/ubuntu/+source/pulseaudio/+bug/508522) there's
Maybe I didn't imagine that first test then....
Let's set
2021-08-05 10:27:07
When triggering a test call (https://zoom.us/test) the test screen lists the HD450BT, but in
Going into Pavucontrol and switching to HSP/HFP before triggering the test call works fine, we end up using the right mic.
I guess Zoom must be doing some kind of lookup/binding when the call first opens but (presumably) generates the mic list dynamically.