Trying to connect more than 1 Xbox one S controller via Bluetooth

Hi all, need a bit of help here, and haven’t posted before so not sure if I’m in the right spot lol.

I’m trying to connect two Xbox One S controllers to my Manjaro laptop, it has a Realtek Rtl8723ae wifi/bluetooth 4.0 controller built-in.

I’ve installed xpadneo, and I’m using bluetoothctl command, along with the included bluetooth manager gui. I’m pretty green with this command, so not sure if I’m using it right.

It looks like ertm was disabled by default in my manjaro install, so I don’t think that’s an issue, but I put the bluetooth.disable_ertm=1 command in the default grub file anyway.

I can get the first one connected without issue, it’s when I try to connect the second one.

The second one can pair and trust, and will partially connect. What I mean by partially is bluetoothctl says Connected: yes at first but the light on the controller still blinks. After about a minute it drops and bluetoothctl says Connected: no. Here is the output:

[bluetooth]# connect EC:83:50:71:83:70
Attempting to connect to EC:83:50:71:83:70
[CHG] Device EC:83:50:71:83:70 Connected: yes
[CHG] Device EC:83:50:71:83:70 Modalias: usb:v045Ep02E0d0903
[CHG] Device EC:83:50:71:83:70 Modalias: usb:v045Ep02FDd0903
[CHG] Device EC:83:50:71:83:70 UUIDs: 00001124-0000-1000-8000-00805f9b34fb
[CHG] Device EC:83:50:71:83:70 UUIDs: 00001200-0000-1000-8000-00805f9b34fb
[CHG] Device EC:83:50:71:83:70 ServicesResolved: yes
[CHG] Device EC:83:50:71:83:70 Paired: yes
Connection successful
[Xbox Wireless Controller]# connect 9C:AA:1B:98:FB:13
Attempting to connect to 9C:AA:1B:98:FB:13
[CHG] Device 9C:AA:1B:98:FB:13 Connected: yes
[CHG] Device 9C:AA:1B:98:FB:13 Modalias: usb:v045Ep02E0d0903
[CHG] Device 9C:AA:1B:98:FB:13 Modalias: usb:v045Ep02FDd0903
[CHG] Device 9C:AA:1B:98:FB:13 UUIDs: 00001124-0000-1000-8000-00805f9b34fb
[CHG] Device 9C:AA:1B:98:FB:13 UUIDs: 00001200-0000-1000-8000-00805f9b34fb
[CHG] Device 9C:AA:1B:98:FB:13 ServicesResolved: yes
[CHG] Device 9C:AA:1B:98:FB:13 Paired: yes
[CHG] Device 9C:AA:1B:98:FB:13 Modalias: usb:v045Ep02E0d0408
Failed to connect: org.bluez.Error.Failed
[CHG] Device 9C:AA:1B:98:FB:13 ServicesResolved: no
[CHG] Device 9C:AA:1B:98:FB:13 Paired: no
[CHG] Device 9C:AA:1B:98:FB:13 Connected: no

I started thinking that maybe my hardware is old and limited and I can only have one xbox controller per bluetooth controller. With that thought, I bought a TP-link bluetooth 4.0 dongle. Bluetoothctl picks it up, but when I try to connect, it’s doing something similar - connecting then dropping. I can’t remember the output (I can post it later if needed).

As I said earlier, I’m not very familiar with bluetoothctl’s interface and maybe I’m doing it wrong - At first, the prompt says [Bluetooth], and after I connect the first controller successfully, it says [Xbox Wireless Controller] as the prompt and if I type info, it gives me the xbox controller’s device info. So my simple mind is questioning that if I’m running the pair and connect commands from this prompt, is that actually trying to connect my first xbox controller to the second one instead of the bluetooth controller? So I think I have to get out of the [Xbox Wireless Controller] prompt, back to my [Bluetooth] prompt and attempt running the pair/connect commands from there. And it should work… but how do I change my prompt back to [Bluetooth]?

So maybe someone can let me know if I’m thinking along the right lines, or maybe there’s something deeper I’m unaware of.

Cheers
Edit-added bluetoothctl output

Try doing this in the Arch Wiki
https://wiki.archlinux.org/index.php/Gamepad#Xbox_Wireless_Controller_/_Xbox_One_Wireless_Controller

Use either:

echo 1 > /sys/module/bluetooth/parameters/disable_ertm

Or add this file to your module configuration:

/etc/modprobe.d/xbox_bt.conf

options bluetooth disable_ertm=1

Yes, I’ve seen that and tried it, and found that there was already a file in the modprobe.d directory with disable_ertm=y.

But something doesn’t make sense about your solution…

The first controller connects successfully. It works, it’s paired, it’s trusted and will re-connect automatically. Therefore I believe ertm is disabled, otherwise how can it?

Is there a command that can confirm that ertm is disabled? Or is it the mere fact that the controller connected successfully that tells us the ertm is disabled??

As I said in my post, I’ve added bluetooth.disable_ertm=1 to the default grub file, and there’s already a file in the modprobe.d directory that has options bluetooth disable_ertm=y in it.

So if I add the xbox_bt.conf file with another ertm disable command (making that a total of 3 different ways it’s being disabled) what will that accomplish?

One more thing… (sorry for all the questions) I cannot find good instructions on using bluetoothctl command. I would just like to know if I’m right or wrong in thinking that I have to change the prompt from [Xbox Wireless Controller] back to [bluetooth]?

Or if this is actually possible? Has anyone connected more than 1 Xbox One S controller to linux via bluetooth? I see so many articles about connecting only 1 controller, and none for connecting multiples.

Thanks!

Okay, I’ve made progress. The new Bluetooth dongle was able to connect both xbox one S controllers successfully.
I figured out bluetoothctl a bit more, and no, the prompt doesn’t really make any difference.

I powered off my internal bluetooth adapter and only used the new tp-link one. Pairing and connecting worked like it should.

So in conclusion, my realtek built-in adapter could only support one xbox controller at a time.

Cheers all!

You may need to update controller’s firmware.
To flash #xbox controller with win10 in kvm under #linux:

  1. Add xpad to modrpobe’s blacklist.
  2. Reboot to apply modrpobe’s config.
  3. Plug your controller to USB, Xbox button should not light up.
  4. Pass through controller to VM’s. Use VirtManager’s “Add device” while VM is stopped.
  5. Start Win10 VM.
  6. Reconnect controller to USB or press and hold Xbox button. Button should light up.
  7. Install and run Xbox Accessories from Microsoft Store.
  8. Xbox Accessories should detect the controller and ask for update.
  9. Do not forget to remove xpad from blacklist and reboot.