atar-axis / xpadneo

Advanced Linux Driver for Xbox One Wireless Controller (shipped with Xbox One S)
https://atar-axis.github.io/xpadneo/
GNU General Public License v3.0
1.88k stars 110 forks source link

Xbox Series X|S controller now works with Intel AX200 bluetooth #366

Closed MageJohn closed 3 months ago

MageJohn commented 2 years ago

Version of xpadneo

AUR xpadneo-dkms-git: 0.9.r121.g727a84f-1

Controller Model

Connection mode

Installed Software

Protocol Information

Please help us identify at which layer the problem can be found if you want to report mapping errors or if the controller fails to be detected:

Please describe how it is failing below in the next sections.

Severity / Impact

Description

I'm submitting this report because the Intel AX200 chipset is currently reported as not working at all, and also so I have a record of what I did to make it work in the likely event I forget. I can pair the controller, turn it off, turn it on again, and it connects automatically again. I used the workaround from #336 and it all just works.

Steps

These steps were performed with all-default settings in /etc/bluetooth/main.conf.

  1. Start fresh and remove the the controller if it's already paired. In bluetoothctl: remove <controller mac>.
  2. Put the controller in pairing mode: long press the wireless pairing button.
  3. Turn on bluetooth scanning: scan on in bluetoothctl.
  4. scan off when the controller appears. For me it's named Xbox Wireless Controller, making it easy to identify.
  5. Pair the controller: pair <controller mac>. There was one instance where I had to do this twice before it succeeded.
  6. At this point the controller should stop flashing and give a rumble, and it should now be recognised fully as a gamepad by the system.
  7. Disconnect the controller: disconnect <controller mac> in bluetoothctl.
  8. Edit /var/lib/bluetooth/<adaptor mac>/<controller mac>/info and remove the lines:
    [IdentityResolvingKey]
    Key=<key>
  9. Restart bluetoothd: sudo systemctl restart bluetoothd.service.
  10. Make sure the bluetooth adaptor is on again: power on in bluetoothctl.
  11. Turn on the controller. It should now connect automatically.

System Information

# uname -a
Linux 5.17.11-xanmod1-rog-1 #1 SMP Mon, 30 May 2022 18:51:12 +0000 x86_64 GNU/Linux
# xxd -c20 -g1 /sys/module/hid_xpadneo/drivers/hid:xpadneo/0005:045E:*/report_descriptor | tee >(cksum)
00000000: 05 01 09 05 a1 01 85 01 09 01 a1 00 09 30 09 31 15 00 27 ff  .............0.1..'.
00000014: ff 00 00 95 02 75 10 81 02 c0 09 01 a1 00 09 33 09 34 15 00  .....u.........3.4..
00000028: 27 ff ff 00 00 95 02 75 10 81 02 c0 05 01 09 32 15 00 26 ff  '......u.......2..&.
0000003c: 03 95 01 75 0a 81 02 15 00 25 00 75 06 95 01 81 03 05 01 09  ...u.....%.u........
00000050: 35 15 00 26 ff 03 95 01 75 0a 81 02 15 00 25 00 75 06 95 01  5..&....u.....%.u...
00000064: 81 03 05 01 09 39 15 01 25 08 35 00 46 3b 01 66 14 00 75 04  .....9..%.5.F;.f..u.
00000078: 95 01 81 42 75 04 95 01 15 00 25 00 35 00 45 00 65 00 81 03  ...Bu.....%.5.E.e...
0000008c: 05 09 19 01 29 0c 15 00 25 01 75 01 95 0c 81 02 15 00 25 00  ....)...%.u.......%.
000000a0: 75 01 95 04 81 03 05 0c 0a b2 00 15 00 25 01 95 01 75 01 81  u............%...u..
000000b4: 02 15 00 25 00 75 07 95 01 81 03 05 0f 09 21 85 03 a1 02 09  ...%.u........!.....
000000c8: 97 15 00 25 01 75 04 95 01 91 02 15 00 25 00 75 04 95 01 91  ...%.u.......%.u....
000000dc: 03 09 70 15 00 25 64 75 08 95 04 91 02 09 50 66 01 10 55 0e  ..p..%du......Pf..U.
000000f0: 15 00 26 ff 00 75 08 95 01 91 02 09 a7 15 00 26 ff 00 75 08  ..&..u.........&..u.
00000104: 95 01 91 02 65 00 55 00 09 7c 15 00 26 ff 00 75 08 95 01 91  ....e.U..|..&..u....
00000118: 02 c0 c0                                                     ...
2986910699 1363

Controller and Bluetooth Information

xpadneo-btmon.txt xpadneo-dmesg.txt xpadneo-lsusb.txt

1985a commented 1 year ago

I just update my controller on Windows and after that, I synchronize the controller again, and now is working even the rumble is working fine.

kakra commented 1 year ago

Yep, it gets more and more clear that the primary issue is the controller firmware itself and since firmware 5.12, it seems rock solid on many Bluetooth chipsets.

ispanos commented 11 months ago

I just update my controller on Windows and after that, I synchronize the controller again, and now is working even the rumble is working fine.

I just bought a controller and its not even discoverable (using AX200). Do I need to install Windows to update the xbox controllers firmware? (I will try in a vm and pass-through the controller).

kakra commented 11 months ago

You can use a Windows eval version booted in a VM to update the controller but it only works reliably using the Xbox dongle - otherwise the controller will disconnect from the VM as soon as it reboots into firmware update mode (it becomes a different USB device in that mode). It may work if your VM software allows to automatically pass through new USB devices.

If your controller is still on firmware 4.x, there's a good chance it will work after updating to 5.x.

ispanos commented 11 months ago

You can use a Windows eval version booted in a VM to update the controller but it only works reliably using the Xbox dongle - otherwise the controller will disconnect from the VM as soon as it reboots into firmware update mode (it becomes a different USB device in that mode). It may work if your VM software allows to automatically pass through new USB devices.

If your controller is still on firmware 4.x, there's a good chance it will work after updating to 5.x.

I borrowed a Win. laptop and updated the firmware. I have installed xpadneo using a Copr on Fedora, but bluetoothctl doesn't even discover the device.

kakra commented 11 months ago

Does it find other Bluetooth devices? If not, the radio may be disabled. Maybe come over to our Discord to get some help for this.

ispanos commented 11 months ago

My headphones are working fine. What discord?

kakra commented 11 months ago

My headphones are working fine. What discord?

https://discord.gg/nCqfKa84KA

ispanos commented 11 months ago

@kakra Ready when you are.

github-actions[bot] commented 3 months ago

This issue has been automatically closed because there has been no response to our request for more information from the original author. With only the information that is currently in the issue, we don't have enough information to take action. Please reach out if you have or find the answers we need so that we can investigate further.