Xbox Controller (Bluetooth Low Energy Firmware)
-
Hi! A new firmware has been released a few weeks ago by Microsoft to bring support of Bluetooth Low Energy (BLE) amid other stuff. Given I just had some 'fun' with that firmware for my Xbox One (not S/X) bluetooth controller I wanted to share with you quick steps to get it working.
I wasn't aware of that firmware update. It happened when I hooked up the controller to my pc couple of days ago. I realized something went wrong when I wasn't able to reconnect the controller to my Pi(4). I'm using a USB dongle not the integrated bluetooth by the way.
I've tried to update the
xpadneo
driver from Retropie Setup but it's pointing to a tag and that new firmware is supported only inmaster
branch for now. I had first togit clone
etc as described on xpadneo's repo. Installation went ok.But still couldn't pair or reconnect the controller. From
dmesg
output I was able to see messages like:Bluetooth: hci0: security requested but not available
After some further digging I got it working by issuing the following command (with controller off):
$ sudo hciconfig hci0 reset
By switching on the controller this time it started to rumble and reconnect immediately. Yet my Select button refused to work!? All other buttons including axes have no issue just Select... It's a known issue from xpadneo with a rather simple workaround:
- edit the following file
$ sudo vi /etc/modules-load.d/modules.conf
- add a line
hid-xpadneo
so that you got something like:
# /etc/modules: kernel modules to load at boot time. # # This file contains the names of kernel modules that should be loaded # at boot time, one per line. Lines beginning with "#" are ignored. uinput hid-xpadneo
- Reboot your Pi and you should be good to go.
Hope this helps.
-
Thanks for the heads-up.
I've been following the development ofxpadneo
- the0.9.2
version should add the BLE support that's now inmaster
(this PR). We'll add it to RetroPie-Setup when it's released and see if any additional configuration options are needed (I think themodprobe
configuration may be included in that version so less configuration will be needed for users). -
@mitu I had little doubt you were following this closely. Let me use that opportunity to thank you for everything you do for Retropie. Thank you big time!
Regarding that new firmware after a few days I can testify it's much more robust. The bluetooth connection is much more stable as I did not experience a single disconnect in that period. Sounds promising.
-
What firmware is on your controller? Mine is at 5.13.3143.0.
I have cloned the current xpadneo repo, and when installing, I get the following message: WARNING: kernel uhid module not found, controller firmware 5.x will not be supported
I am running on a Pi4B with RetroPie 4.8.2. My issue is that when trying to pair the controller, I am not even seeing the controller.
-
The latest
xpadneo
package in RetroPie has version0.9.3
of the driver, you don't need to use the upstream repository to get it. Try to install the driver from RetroPie-Setup instead of cloning the upstream repo.The Raspberry Pi OS kernel includes the
uhid
module (I think it's built-in, hence the warning), so there shouldn't be any issue here. -
@mitu Thank you so much for taking the time to respond. I had originally tried to use the RetroPie setup to install xpadneo, but had no luck, which is where I tried the current repo. My issue is that the Pi never sees the controller when trying to pair.
Here has been my process:
- Fresh RetroPie image
- Configure location and update keyboard
- Configure wifi
- Update RetroPie
- Update RaspberryPi
- Install xpadneo
- Attempt to pair
I have attempted pairing in both the RetroPie setup and via bluetoothctl. The controller simply doesn't show.
pi@retropie:~ $ bluetoothctl
Agent registered
[bluetooth]# scan on
Discovery started
[CHG] Controller DC:A6:32:B3:4B:B2 Discovering: yes
[NEW] Device 52:37:1A:DF:2E:25 52-37-1A-DF-2E-25
[NEW] Device 54:36:10:C8:A7:08 54-36-10-C8-A7-08
[NEW] Device F0:13:B1:59:CA:DF N02QS
[NEW] Device 9C:20:7B:BC:F4:0B 9C-20-7B-BC-F4-0B
[NEW] Device C5:9A:48:3D:6C:A9 C5-9A-48-3D-6C-A9
[NEW] Device FC:A4:A8:AA:D2:11 N04EV
[NEW] Device DA:72:80:5D:BE:77 DA-72-80-5D-BE-77
[CHG] Device C5:9A:48:3D:6C:A9 ServiceData Key: 0000feaf-0000-1000-8000-00805f9b34fb
[CHG] Device C5:9A:48:3D:6C:A9 ServiceData Value:
13 03 22 dc 25 36 18 51 7d 07 8a 5a 59 d3 bf ad ..".%6.Q}..ZY...
24 de b0 b0 $...
[CHG] Device 52:37:1A:DF:2E:25 RSSI: -58
[NEW] Device C3:55:C3:EA:0E:B6 C3-55-C3-EA-0E-B6
[CHG] Device DA:72:80:5D:BE:77 RSSI: -64
[CHG] Device FC:A4:A8:AA:D2:11 ServiceData Key: 0000feaf-0000-1000-8000-00805f9b34fb
[CHG] Device FC:A4:A8:AA:D2:11 ServiceData Value:
10 01 00 02 5a 23 09 00 66 a0 31 00 00 30 b4 18 ....Z#..f.1..0..
00 .
[CHG] Device 54:36:10:C8:A7:08 RSSI: -31
[CHG] Device 54:36:10:C8:A7:08 TxPower: 7
[CHG] Device 54:36:10:C8:A7:08 ManufacturerData Key: 0x004c
[CHG] Device 54:36:10:C8:A7:08 ManufacturerData Value:
10 07 77 1f e8 23 bd cb 08 ..w..#...
[CHG] Device C5:9A:48:3D:6C:A9 ServiceData Key: 0000feaf-0000-1000-8000-00805f9b34fb
[CHG] Device C5:9A:48:3D:6C:A9 ServiceData Value:
13 03 22 dc 26 36 18 25 fe dc 84 8e af 1a e0 88 ..".&6.%........
3c 84 51 09 <.Q.
[CHG] Device 54:36:10:C8:A7:08 RSSI: -41
[bluetooth]# scan off
[CHG] Device F0:13:B1:59:CA:DF RSSI is nil
[DEL] Device F0:13:B1:59:CA:DF N02QS
[CHG] Device C3:55:C3:EA:0E:B6 RSSI is nil
[CHG] Device DA:72:80:5D:BE:77 RSSI is nil
[CHG] Device FC:A4:A8:AA:D2:11 RSSI is nil
[CHG] Device C5:9A:48:3D:6C:A9 RSSI is nil
[CHG] Device 9C:20:7B:BC:F4:0B RSSI is nil
[CHG] Device 54:36:10:C8:A7:08 TxPower is nil
[CHG] Device 54:36:10:C8:A7:08 RSSI is nil
[CHG] Device 52:37:1A:DF:2E:25 TxPower is nil
[CHG] Device 52:37:1A:DF:2E:25 RSSI is nil
[CHG] Controller DC:A6:32:B3:4B:B2 Discovering: no
Discovery stopped -
@Ratoka Is the Xbox controller set to pair mode ? Are you sure it's a bluetooth device and not a wireless + dongle controller ?
-
@mitu #FacePalm Yes, it is a 1708 model, but, I totally forgot about the pair button VS just holding the X-Box button to connect. Thank you for screwing my head on straight; sometimes you can see the forest full of trees, sometimes you can't...
Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.
Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.