Bluetooth headset keeps "re-connecting"

Hello there,

I’m running Manjaro Gnome on Lenovo Carbon X1, and I have a JBL TUNE750BTNC bluetooth headset connected to it. It works almost perfectly, with one irritating hiccup: If I don’t listen to music in, say, 5 minutes, the headset plays its bling sound - “I’m connected to a device now” kinda - out of the blue. It is connected before and after afaik and sound works as expected. One indication that it is and stays connected is that PulseAudio Equalizer doesn’t reset its profile, which happens when I do disconnect the device, or connect it again.

I found this: this thread and installed tlpui, disabled all USB and audio power save modes, but it didn’t help…

The Bluetooth adapter is Intel AX201, and there are WLAN-related issues on the forum, after a quick search.

Here’s the device:

Bus 003 Device 028: ID 8087:0026 Intel Corp. AX201 Bluetooth
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.01
  bDeviceClass          224 Wireless
  bDeviceSubClass         1 Radio Frequency
  bDeviceProtocol         1 Bluetooth
  bMaxPacketSize0        64
  idVendor           0x8087 Intel Corp.
  idProduct          0x0026 AX201 Bluetooth
  bcdDevice            0.02
  iManufacturer           0 
  iProduct                0 
  iSerial                 0 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x00c8
    bNumInterfaces          2
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0xe0
      Self Powered
      Remote Wakeup
    MaxPower              100mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           3
      bInterfaceClass       224 Wireless
      bInterfaceSubClass      1 Radio Frequency
      bInterfaceProtocol      1 Bluetooth
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass       224 Wireless
      bInterfaceSubClass      1 Radio Frequency
      bInterfaceProtocol      1 Bluetooth
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x03  EP 3 OUT
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0000  1x 0 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0000  1x 0 bytes
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       1
      bNumEndpoints           2
      bInterfaceClass       224 Wireless
      bInterfaceSubClass      1 Radio Frequency
      bInterfaceProtocol      1 Bluetooth
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x03  EP 3 OUT
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0009  1x 9 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0009  1x 9 bytes
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       2
      bNumEndpoints           2
      bInterfaceClass       224 Wireless
      bInterfaceSubClass      1 Radio Frequency
      bInterfaceProtocol      1 Bluetooth
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x03  EP 3 OUT
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0011  1x 17 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0011  1x 17 bytes
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       3
      bNumEndpoints           2
      bInterfaceClass       224 Wireless
      bInterfaceSubClass      1 Radio Frequency
      bInterfaceProtocol      1 Bluetooth
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x03  EP 3 OUT
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0019  1x 25 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0019  1x 25 bytes
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       4
      bNumEndpoints           2
      bInterfaceClass       224 Wireless
      bInterfaceSubClass      1 Radio Frequency
      bInterfaceProtocol      1 Bluetooth
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x03  EP 3 OUT
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0021  1x 33 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0021  1x 33 bytes
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       5
      bNumEndpoints           2
      bInterfaceClass       224 Wireless
      bInterfaceSubClass      1 Radio Frequency
      bInterfaceProtocol      1 Bluetooth
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x03  EP 3 OUT
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0031  1x 49 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0031  1x 49 bytes
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       6
      bNumEndpoints           2
      bInterfaceClass       224 Wireless
      bInterfaceSubClass      1 Radio Frequency
      bInterfaceProtocol      1 Bluetooth
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x03  EP 3 OUT
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x003f  1x 63 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x003f  1x 63 bytes
        bInterval               1
Binary Object Store Descriptor:
  bLength                 5
  bDescriptorType        15
  wTotalLength       0x000c
  bNumDeviceCaps          1
  USB 2.0 Extension Device Capability:
    bLength                 7
    bDescriptorType        16
    bDevCapabilityType      2
    bmAttributes   0x0000040e
      BESL Link Power Management (LPM) Supported
    BESL value     1024 us 
Device Status:     0x0001
  Self Powered

And here’s the kernel module:

ilename:       /lib/modules/5.14.2-1-MANJARO/kernel/drivers/bluetooth/btintel.ko.xz
firmware:       intel/ibt-12-16.ddc
firmware:       intel/ibt-12-16.sfi
firmware:       intel/ibt-11-5.ddc
firmware:       intel/ibt-11-5.sfi
license:        GPL
version:        0.1
description:    Bluetooth support for Intel devices ver 0.1
author:         Marcel Holtmann <marcel@holtmann.org>
srcversion:     8ECFE5BDEA31A6A149CB41A
depends:        bluetooth
retpoline:      Y
intree:         Y
name:           btintel
vermagic:       5.14.2-1-MANJARO SMP preempt mod_unload

And the kernel is Linux carbonator 5.14.2-1-MANJARO #1 SMP PREEMPT Wed Sep 8 14:11:01 UTC 2021 x86_64 GNU/Linux.

Any clue what’s going on? What other info could help? Thanks!

(Edit: URL) (Edit: Manjaro Gnome)

It seems to be a “feature” of the JBL TUNE750 series: they turn off after 5 minutes of no sound, even low-volume music, during conference calls, … to preserve their battery in wireless mode, so you have 2 options:

  1. Turn them back on when you want.
  2. Please read this:
    [HowTo] become a Manjaro power user when you're a wizard at Windows but a N00b at Manjaro / Linux
    Especially the section What’s this Upstream / Downstream business? and then file a bug upstream

:sob:

1 Like

I don’t know if it has been fixed, sounds like it hasn’t. I had to downgrade linux-firmware and prevent it from being upgraded to have a stable bluetooth connection on my AX200 & AX201 cards:

Similar issue on Arch Forums:

2 Likes

I may be new at the forum, but I’be been using Linux since 2005, so I wouldn’t describe myself as n00b anymore :slight_smile:

To further clarify: My JBL headphone haven’t once powered off by themselves, without me actually pressing the power button (or having battery run out). When the extra chime sounds, I don’t have to turn back on on the headphones, as they are not powered off. If I just start playing something, it plays from the headphones as expected. It’s just making that extra connection chime every once in a while, when sound is not being played by the computer. I guess it’s audio going to sleep and disconnecting, I could dig into PulseAudio as well (or try PipeWire).

I don’t think this is an issue in the headset, because this only occurs on my Carbon X1. With several smartphones, another Lenovo with less expensive Bluetooth chipset, with Samsung TV… With none of those the headset makes those extra connection sounds. So, it must be in the PulseAudio behavior, AX201 driver, firmware, or hardware (I hope not).

Thanks for the tip, I’ll try downgrading the firmware to see if it helps.

No offence intended: That post allows me to not have to write the same thing over and over again.

Ah! Now you give all the information! :wink: :grin:

Anyway, I won’t be able to help you any further…

:sob:

1 Like

Sorry, downgrading firmware only made things worse… Now the headphones make the reconnection sound every five seconds instead a few times a day… Well, updating the firmware back up again and keeping my fingers crossed it gets fixed at some point :sweat_smile:

would be the wise thing to do instead of doing nothing and hoping someone else will… :man_shrugging:

Therefore, I’ve marked this answer as the solution to your question as it is by far the best answer you’ll get.

However, if you disagree with my choice, please feel free to take any other answer as the solution to your question or even remove the solution altogether: You are in control! (If you disagree with my choice, just send me a personal message and explain why I shouldn’t have done this or :heart: or :+1: if you agree)

:innocent:
P.S. In the future, please don’t forget to come back to your question after your issue has been solved and click the 3 dots below the answer to mark a solution like this below the answer that helped you most:
Solution
so that the next person that has the exact same problem you just had will benefit from your post as well as your question will now be in the “solved” status.

I stayed with the old firmware for a few days, and the behavior turned out to be identical with the newest one after all. It was some sort of a glitch that made the connection sounds happen. So, in the end, I updated the firmware, and it works similarly.

I have a few USB Bluetooth dongles, so I can my JBL with them, too, and with other computers and distros/OSes, too.

1 Like

Thanks for the post. I’ll admit that I almost got used to the blings and almost forgot about this post, but I’ll still investigate this a bit further before creating a bug report. If it ends up in being the Intel AX201 that causes it, where should I create it?

The pair of JBL TUNE750BTNC I have doesn’t power off, so that really doesn’t count as an answer in my case. So, I’ll keep testing and will report back once something/nothing turns out :slight_smile:

1 Like

Well, there’s new firmware for AX201 in upstream, but it’s not for my variant (there seems to be a lot of them):

$ sudo dmesg | grep ibt
[    7.092744] Bluetooth: hci0: Found device firmware: intel/ibt-19-0-4.sfi
[    9.001291] Bluetooth: hci0: Found Intel DDC parameters: intel/ibt-19-0-4.ddc

The output above is after I installed the four files in the commit manually to /usr/lib/firmware and did a full power cycle to make sure the firmware reloads. I could try to temporarily remove those two files and see if it loads another firmware version…

Also, I switched to PipeWire from PulseAudio, that didn’t affect things.

:scream:

fab-user@fab-manjaro:~
$ pipewire --version
pipewire
Compiled with libpipewire 0.3.38
Linked with libpipewire 0.3.38
fab-user@fab-manjaro:~
$ pulseaudio --version
pulseaudio 15.0

But that’s just me: I don’t even install version 1.0 of anything and wait until version 1.1 is out.

:stuck_out_tongue_winking_eye:

The bleeps have stopped. I suspect it was the firmware update that did the trick, but I really can’t tell.

Thanks all for help!

Edit: It wasn’t the firmware, because modinfo btintel still shows the same firmware files loaded… Well, kernel has updated a few times and I bet pipewire, too. Oh well, it works flawlessly now, I’m happy :slight_smile:

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.