Skip to content

Steam not receiving input from Elite 2 Controller after reconnection #605

@rethyria

Description

@rethyria

Version of xpadneo

v0.10.1
v0.10
v0.9.8

Note: This was not an issue on 0.9.8. The bug only occurred after upgrading to v0.10. However, I attempted to resolve it by downgrading to 0.9.8 again which worked until I rebooted my computer and the bug appeared again, this time on 0.9.8. This behaviour was replicated by another user in discord.

Controller Model

  • Xbox One S controller
  • Xbox Elite 2 controller
  • Xbox Series X|S controller
  • Other:

Connection mode

  • Bluetooth connection
  • USB cable (not yet supported by xpadneo)
  • Xbox Dongle connection (not yet supported by xpadneo)

Installed Software

  • Anti-Micro (may affect button mappings)
  • OpenRGB (may mess up mappings and rumble stability)
  • Steam Input (enabled by default via Steam Desktop client)
  • Steam Link (usually via Raspberry Pi or other micro computers)
  • devices with QMK firmware (may affect udev rules, similar to OpenRGB)
  • netstick (shares input devices via network similar to Steam Link)
  • xboxdrv (user-space gamepad driver, not used for Bluetooth)
  • xone (kernel-space gamepad driver for using USB or the Xbox Dongle)
  • xow (obsolete user-space driver for using the wireless Xbox Dongle)

Protocol Information

  • Steam Proton games are having issues
  • Steam Linux-native games are having issues
    • I don't use Steam or did not try
  • games running through Lutris, wine and/or Bottles are having issues
    • I don't use Lutris, Bottles, wine or did not try
  • Linux-native games are having issues
    • I don't use native games or did not try
  • Other software is having issues (describe software and issues below)
  • Running evtest is showing issues (describe the issues below)
    • Keep in mind that BTN_NORTH and BTN_WEST are intentionally swapped
  • Running jstest is showing issues (describe the issues below)
    • I don't have this tool or don't know how to use it
  • Running gamepad-tool is showing issues (post console output below)
    • I don't have this tool

Severity / Impact

  • I've read the docs and the bug reporting instructions
  • I've applied the latest firmware update to the controller
  • I've tried disabling or running without above mentioned software
  • It does not work at all
  • It used to work in a previous version
  • It mostly works but sometimes it doesn't
  • I found a work-around
  • I probably didn't figure it all out but it's too early to give up
  • I don't know how to ...
  • It's too complicated
  • Fantastic work but ...
  • I can code and I want to help

Describe the Bug

Xbox Elite 2 Controller works on boot, but after disconnecting and reconnecting the controller (by power cycling the controller or bad connection) the controller connects to the system and is detected by Steam but Steam receives no input. Only full system reboot fixes it.

Note: Steam Input does not seem to have an effect whether enabled or disabled.

Steps to Reproduce

  1. Power on computer.
  2. Power on controller.
  3. Observe controller connects via bluetooth correctly (confirmed by evtest).
  4. Observe Steam detects controller correctly (via glyphs and controller specific settings).
  5. Observe Steam receives input correctly.
  6. Power off controller.
  7. Power on controller.
  8. Observe controller connects via bluetooth correctly (confirmed by evtest).
  9. Observe Steam detects controller correctly (via glyphs and controller specific settings).
  10. Observe Steam and games launched via Steam DO NOT receive input from the controller.

Expected Behavior

After the controller reconnects via bluetooth, Steam should receive input from the controller.

Screenshots / GIFs / Videos

Image Context: Settings screen after controller reconnects (no longer receiving input but still detects the controller).

System Information

# uname -a
Linux Home 6.19.9-arch1-1 #1 SMP PREEMPT_DYNAMIC Thu, 19 Mar 2026 16:33:17 +0000 x86_64 GNU/Linux
# dmesg -H | grep -E -i 'bt|bluetooth|hci|l2cap|att|xbox|045e|hid|input|xpadneo' | tee xpadneo-dmesg.txt
[Apr 2 17:47] input: Xbox Wireless Controller as /devices/virtual/misc/uhid/0005:045E:0B22.001A/input/input59
[  +0.000403] input: Xbox Wireless Controller Consumer Control as /devices/virtual/misc/uhid/0005:045E:0B22.001A/input/input60
[  +0.000159] input: Xbox Wireless Controller Keyboard as /devices/virtual/misc/uhid/0005:045E:0B22.001A/input/input61
[  +0.000302] hid-generic 0005:045E:0B22.001A: input,hidraw16: BLUETOOTH HID v5.21 Gamepad [Xbox Wireless Controller] on 70:a8:d3:7d:a5:27
[  +0.149924] hid_xpadneo: loading out-of-tree module taints kernel.
[  +0.000005] hid_xpadneo: module verification failed: signature and/or required key missing - tainting kernel
[  +0.005069] loaded hid-xpadneo v0.9.8
[  +0.000051] xpadneo 0005:045E:0B22.001A: BLE firmware version 5.21
[  +0.000005] xpadneo 0005:045E:0B22.001A: pretending XB1S Windows wireless mode (changed PID from 0x0B22 to 0x028E)
[  +0.000002] xpadneo 0005:045E:0B22.001A: working around wrong SDL2 mappings (changed version from 0x00000521 to 0x00001130)
[  +0.000003] xpadneo 0005:045E:0B22.001A: report descriptor size: 464 bytes
[  +0.000002] xpadneo 0005:045E:0B22.001A: fixing up Rx axis
[  +0.000002] xpadneo 0005:045E:0B22.001A: fixing up Ry axis
[  +0.000001] xpadneo 0005:045E:0B22.001A: fixing up Z axis
[  +0.000001] xpadneo 0005:045E:0B22.001A: fixing up Rz axis
[  +0.000002] xpadneo 0005:045E:0B22.001A: fixing up button mapping
[  +0.000252] xpadneo 0005:045E:0B22.001A: enabling compliance with Linux Gamepad Specification
[  +0.000002] xpadneo 0005:045E:0B22.001A: unmapping bogus buttons
[  +0.000069] input: Xbox Wireless Controller as /devices/virtual/misc/uhid/0005:045E:0B22.001A/input/input62
[  +0.000194] xpadneo 0005:045E:0B22.001A: input,hidraw16: BLUETOOTH HID v11.30 Gamepad [Xbox Wireless Controller] on 70:a8:d3:7d:a5:27
[  +0.000007] xpadneo 0005:045E:0B22.001A: controller quirks: 0x00000058
[  +0.000003] xpadneo 0005:045E:0B22.001A: testing weak motor: sustain 50ms release 50ms loop 2 wait 30ms
[  +0.330038] xpadneo 0005:045E:0B22.001A: testing strong motor: sustain 50ms release 50ms loop 2 wait 30ms
[  +0.330034] xpadneo 0005:045E:0B22.001A: testing trigger motors: sustain 50ms release 50ms loop 2 wait 30ms
[  +0.331143] xpadneo 0005:045E:0B22.001A: Xbox Wireless Controller [44:16:22:48:d1:ca] connected
[  +0.005099] xpadneo 0005:045E:0B22.001A: switching left trigger to half range mode
[ +15.659411] xpadneo 0005:045E:0B22.001A: reverting to original version (changed version from 0x00001130 to 0x00000521)
[  +0.000017] xpadneo 0005:045E:0B22.001A: reverting to original product (changed PID from 0x028E to 0x0B22)
[  +3.583404] xpadneo 0005:045E:0B22.001B: BLE firmware version 5.21
[  +0.000004] xpadneo 0005:045E:0B22.001B: pretending XB1S Windows wireless mode (changed PID from 0x0B22 to 0x028E)
[  +0.000001] xpadneo 0005:045E:0B22.001B: working around wrong SDL2 mappings (changed version from 0x00000521 to 0x00001130)
[  +0.000001] xpadneo 0005:045E:0B22.001B: report descriptor size: 464 bytes
[  +0.000001] xpadneo 0005:045E:0B22.001B: fixing up Rx axis
[  +0.000000] xpadneo 0005:045E:0B22.001B: fixing up Ry axis
[  +0.000001] xpadneo 0005:045E:0B22.001B: fixing up Z axis
[  +0.000000] xpadneo 0005:045E:0B22.001B: fixing up Rz axis
[  +0.000000] xpadneo 0005:045E:0B22.001B: fixing up button mapping
[  +0.000094] xpadneo 0005:045E:0B22.001B: enabling compliance with Linux Gamepad Specification
[  +0.000001] xpadneo 0005:045E:0B22.001B: unmapping bogus buttons
[  +0.000023] input: Xbox Wireless Controller as /devices/virtual/misc/uhid/0005:045E:0B22.001B/input/input63
[  +0.000066] xpadneo 0005:045E:0B22.001B: input,hidraw16: BLUETOOTH HID v11.30 Gamepad [Xbox Wireless Controller] on 70:a8:d3:7d:a5:27
[  +0.000002] xpadneo 0005:045E:0B22.001B: controller quirks: 0x00000058
[  +0.000001] xpadneo 0005:045E:0B22.001B: testing weak motor: sustain 50ms release 50ms loop 2 wait 30ms
[  +0.330046] xpadneo 0005:045E:0B22.001B: testing strong motor: sustain 50ms release 50ms loop 2 wait 30ms
[  +0.330036] xpadneo 0005:045E:0B22.001B: testing trigger motors: sustain 50ms release 50ms loop 2 wait 30ms
[Apr 2 17:48] xpadneo 0005:045E:0B22.001B: Xbox Wireless Controller [44:16:22:48:d1:ca] connected
[  +0.001461] xpadneo 0005:045E:0B22.001B: switching left trigger to half range mode

xpadneo-dmesg.txt

Controller and Bluetooth Information

xpadneo-btmon.txt

Additional Context

After reconnecting the controller, input is correctly received by:

Only Steam and games launched via Steam do not receive input. Steam does detect the controller as glyphs and settings react to the controller connecting and disconnecting. Enabling or disabling Steam Input does not seem to have any effect.

Note: Some system details may have changed as I've tested on different versions of xpadneo and there was a kernel update at some point.

Summary output from Lumo while trying to troubleshoot with it:

System Info:

Arch Linux, kernel 6.19.8-arch1-1
xpadneo-dkms 0.10-1
Bluetooth adapter: Intel AX210 (8087:0032)
Controller: Xbox Wireless Controller (BLE firmware 5.21)

What Works:

Controller connects and pairs successfully
evtest receives input correctly after reconnect
Rumble test passes on reconnection
Permissions are correct (input group, ACL user:river:rw-)
udev rules apply correctly (verified with udevadm test)
Steam DOES recognise the controller is connected after controller reconnect (confirmed by Xbox Controller menu being displayed in settings)

What Doesn't Work:

Steam receives no input after controller power cycle
Restarting Steam does NOT fix it
Restarting Bluetooth service does NOT fix it
Only full system reboot restores functionality

Key Observations:

Each reconnection creates a new device instance (.0010 → .0011 → ... → .0017)
dmesg shows clean disconnect/reconnect sequences with no errors

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions