Bluetooth keeps disconnecting DualSense controllers from time to time

Hey guys, how is it going?

I’m having some trouble running a pair of DualSense controllers over bluetooth.

When one controller is connected everything works fine, I’ve run it for several hours between weeks and no problem so far. But, when I try to connect a second controller to play with my girlfriend, after a random time one of the controllers disconnect and refuses to connect again.
It’s a pain in the ass to connect after that, usually we have to turn both controllers off and on again several times until we can connect both. Usually I just get tired of trying to reconnect the problematic controller and run it with a cable, which works fine every time.

The time between disconnects is completely random, varying from one controller not being able to connect from the beginning, to disconnecting after 15/30/40/60/90/120 minutes.

Here’s some infos about my bluetooth.
Hardware:

❯ lsusb | grep -i bluetooth
Bus 001 Device 002: ID 8087:0029 Intel Corp. AX200 Bluetooth

In bluetoothctl:

[bluetooth]# list
Controller DC:41:A9:D7:A2:C5 BlueZ 5.63 [default]
[bluetooth]# show
Controller DC:41:A9:D7:A2:C5 (public)
	Name: BlueZ 5.63
	Alias: BlueZ 5.63
	Class: 0x006c0104
	Powered: yes
	Discoverable: no
	DiscoverableTimeout: 0x000000b4
	Pairable: yes
	UUID: A/V Remote Control        (0000110e-0000-1000-8000-00805f9b34fb)
	UUID: Handsfree Audio Gateway   (0000111f-0000-1000-8000-00805f9b34fb)
	UUID: PnP Information           (00001200-0000-1000-8000-00805f9b34fb)
	UUID: Audio Sink                (0000110b-0000-1000-8000-00805f9b34fb)
	UUID: Headset                   (00001108-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: Audio Source              (0000110a-0000-1000-8000-00805f9b34fb)
	UUID: Generic Attribute Profile (00001801-0000-1000-8000-00805f9b34fb)
	UUID: Device Information        (0000180a-0000-1000-8000-00805f9b34fb)
	Modalias: usb:v1D6Bp0246d053F
	Discovering: no
	Roles: central
	Roles: peripheral
Advertising Features:
	ActiveInstances: 0x00 (0)
	SupportedInstances: 0x08 (8)
	SupportedIncludes: tx-power
	SupportedIncludes: appearance
	SupportedIncludes: local-name
	SupportedSecondaryChannels: 1M
	SupportedSecondaryChannels: 2M
	SupportedSecondaryChannels: Coded

Wireless radios:

❯ nmcli radio all
WIFI-HW  WIFI     WWAN-HW  WWAN    
enabled  enabled  enabled  enabled 
❯ rfkill list all
1: phy0: Wireless LAN
	Soft blocked: no
	Hard blocked: no
2: hci0: Bluetooth
	Soft blocked: no
	Hard blocked: no

Some packages versions:

❯ dnf --showduplicates list --installed | grep 'kernel\|iwl\|bluez'
abrt-addon-kerneloops.x86_64                      2.14.6-9.fc35                        @anaconda                                      
bluez.x86_64                                      5.63-1.fc35                          @updates                                       
bluez-cups.x86_64                                 5.63-1.fc35                          @updates                                       
bluez-libs.i686                                   5.63-1.fc35                          @updates                                       
bluez-libs.x86_64                                 5.63-1.fc35                          @updates                                       
bluez-obexd.x86_64                                5.63-1.fc35                          @updates                                       
bluez-tools.x86_64                                0.2.0-0.17.git20170912.7cb788c.fc35  @fedora                                        
iwl100-firmware.noarch                            39.31.5.1-127.fc35                   @updates                                       
iwl1000-firmware.noarch                           1:39.31.5.1-127.fc35                 @updates                                       
iwl105-firmware.noarch                            18.168.6.1-127.fc35                  @updates                                       
iwl135-firmware.noarch                            18.168.6.1-127.fc35                  @updates                                       
iwl2000-firmware.noarch                           18.168.6.1-127.fc35                  @updates                                       
iwl2030-firmware.noarch                           18.168.6.1-127.fc35                  @updates                                       
iwl3160-firmware.noarch                           1:25.30.13.0-127.fc35                @updates                                       
iwl3945-firmware.noarch                           15.32.2.9-127.fc35                   @updates                                       
iwl4965-firmware.noarch                           228.61.2.24-127.fc35                 @updates                                       
iwl5000-firmware.noarch                           8.83.5.1_1-127.fc35                  @updates                                       
iwl5150-firmware.noarch                           8.24.2.2-127.fc35                    @updates                                       
iwl6000-firmware.noarch                           9.221.4.1-127.fc35                   @updates                                       
iwl6000g2a-firmware.noarch                        18.168.6.1-127.fc35                  @updates                                       
iwl6000g2b-firmware.noarch                        18.168.6.1-127.fc35                  @updates                                       
iwl6050-firmware.noarch                           41.28.5.1-127.fc35                   @updates                                       
iwl7260-firmware.noarch                           1:25.30.13.0-127.fc35                @updates                                       
iwlax2xx-firmware.noarch                          20211216-127.fc35                    @updates                                       
kernel.x86_64                                     5.15.13-200.fc35                     @updates                                       
kernel.x86_64                                     5.15.14-200.fc35                     @updates                                       
kernel.x86_64                                     5.16.1-60.1.vanilla.1.fc35           @kernel-vanilla-stable                         
kernel-core.x86_64                                5.15.13-200.fc35                     @updates                                       
kernel-core.x86_64                                5.15.14-200.fc35                     @updates                                       
kernel-core.x86_64                                5.16.1-60.1.vanilla.1.fc35           @kernel-vanilla-stable                         
kernel-headers.x86_64                             5.15.4-200.fc35                      @updates                                       
kernel-modules.x86_64                             5.15.13-200.fc35                     @updates                                       
kernel-modules.x86_64                             5.15.14-200.fc35                     @updates                                       
kernel-modules.x86_64                             5.16.1-60.1.vanilla.1.fc35           @kernel-vanilla-stable                         
kernel-modules-extra.x86_64                       5.15.13-200.fc35                     @updates                                       
kernel-modules-extra.x86_64                       5.15.14-200.fc35                     @updates                                       
kernel-modules-extra.x86_64                       5.16.1-60.1.vanilla.1.fc35           @kernel-vanilla-stable                         
libreport-plugin-kerneloops.x86_64                2.15.2-6.fc35                        @anaconda

Infos about the controllers:

[bluetooth]# devices
Device D0:BC:C1:34:F5:29 DualSense - Red
Device D0:BC:C1:78:A6:DC DualSense - Black
[bluetooth]# info D0:BC:C1:34:F5:29
Device D0:BC:C1:34:F5:29 (public)
	Name: Wireless Controller
	Alias: DualSense - Red
	Class: 0x00002508
	Icon: input-gaming
	Paired: yes
	Trusted: yes
	Blocked: no
	Connected: no
	WakeAllowed: yes
	LegacyPairing: no
	UUID: Human Interface Device... (00001124-0000-1000-8000-00805f9b34fb)
	UUID: PnP Information           (00001200-0000-1000-8000-00805f9b34fb)
	Modalias: usb:v054Cp0CE6d0100
[bluetooth]# info D0:BC:C1:78:A6:DC
Device D0:BC:C1:78:A6:DC (public)
	Name: Wireless Controller
	Alias: DualSense - Black
	Class: 0x00002508
	Icon: input-gaming
	Paired: yes
	Trusted: yes
	Blocked: no
	Connected: no
	WakeAllowed: yes
	LegacyPairing: no
	UUID: Human Interface Device... (00001124-0000-1000-8000-00805f9b34fb)
	UUID: PnP Information           (00001200-0000-1000-8000-00805f9b34fb)
	Modalias: usb:v054Cp0CE6d0100

dmesg output (last time this issue have happened was January 18 late night):
https://gist.github.com/OliRafa/44e0b20cee44b36b513b3c6debb50561

As you can see, I’ve tried to update my system to kernel v5.16 to see if the changes made to iwlwifi could improve this problem, but after that started appearing this message here Bluetooth: hci0: Failed to read codec capabilities (-56) (as can be seen in the dmesg output). It seemed harder to reconnect also, comparing to kernel v5.15.

Do you guys have any idea what’s being causing this issues? Is there any more logs I can provide to help?

Thanks in advance!

Welcome to ask.:fedora:edora @olirafa

Does this might help you ?

Hi @ilikelinux!
Thanks for the link but unfortunately this didn’t help.

The problem happens with both controllers, so it’s not something hardware related I think.

Quitting the game didn’t change anything too, because it happened in different games and even out of any game - in Steam Big Picture or even in the Desktop.

Another thing I forgot to mention is that I’ve made a fresh install of Fedora 35 after three or four days of testing, to make sure it wasn’t some software that could be broken after one update or something like that. In that sense it was more or less the same as repairing the controllers, and it didn’t help either /:

So I’ve been trying to find information about why my Dualsense keeps disconnecting my Bluetooth headphones and I stumbled across this thread. Does the disconnection also occur for you between a Dualsense and a regular pair of BT headphones?

I think this might be some weird bandwidth limitation on the AX200.

  1. If I have a Dualsense and a BT headset that uses a higher bandwidth codec than SBC, the headset will disconnect whenever the Dualsense connects
  2. If I instead force the BT headset to use SBC, then it seems to work fine
  3. If I use an external USB Bluetooth dongle, this issue doesn’t occur.

Something is funky with the AX200 and I don’t know where exactly to file a bug for this.

I have AX210 and facing the same issue on Fedora 38, 39 beta. I have used 3 different variants of AX210, one being M.2, two PCIe x1 form (with one made by Gigabyte with long wired external antenna).

The M.2 was the worst, I believe perhaps the casing was blocking the signal given the antenna was put at the back of the case. The Gigabyte’s version fare better, but it is frustratingly almost always disconnect after few minutes.

I am playing Steam game with 2 PS5 controllers - where most of the time the issue happen.

I wish I could find another non Intel AX200/210 series to try, but almost super hard to find.

I’m having a similar issue, and I found another thread where others (including me) were having the same issue.

In my own testing I managed to connect 7 bluetooth devices to the AX200 in my laptop without any issues, including my BT headphones, 4 genuine Wiimotes, an 8BitDo controller and something else. As soon as I connected my DualSense, everything else dropped connection.

Using an external bluetooth dongle didn’t solve anything either, I got the same problem with the DualSense being greedy. My only other suspicion is it could’ve started when DualSense driver support was officially added by Sony into the kernel.

I am sorry to hear the issues you are having. Given that it is a laptop, it is less clean to get another dongle - if you could even find one that is behaving well.

Personally, I have found Wifi 6E/BT module with chipset Realtek RTL8852CE far more stable. I have played same game, same pc with two DualSense controllers connected (playing at the same time) and have never gotten disconnected.

Though, life isnt all rosy with Realtek RTL8852CE - it would sometimes - have issues connecting (the first connect) devices. If that happens, the solution is rather odd - we have to power down PC, switch off power supply and press power button a few times - presumably to reset the capacitance or some corrupted memory in the module. I have Gigabyte motherboard with this same chipset, same behavior.

But… I will take having stable connection while playing games.