Bug 216218 - Nintendo Switch Pro Controller randomly disconnects with force feedback (bluetooth only)
Summary: Nintendo Switch Pro Controller randomly disconnects with force feedback (blue...
Status: NEW
Alias: None
Product: Drivers
Classification: Unclassified
Component: Input Devices (show other bugs)
Hardware: All Linux
: P1 normal
Assignee: drivers_input-devices
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2022-07-07 23:13 UTC by tinozzo123
Modified: 2022-12-28 18:57 UTC (History)
1 user (show)

See Also:
Kernel Version: 5.18.5
Subsystem:
Regression: No
Bisected commit-id:


Attachments

Description tinozzo123 2022-07-07 23:13:48 UTC
The Nintendo Switch Pro Controller (managed by hid-nintendo), if connected via Bluetooth, frequently disconnects during force feedback (a.k.a. rumble).
Many video games use force feedback, so this bug is a huge detriment to the usability of this controller on Linux.

More information (like logs) can be found on:
https://github.com/DanielOgorchock/linux/issues/33

In short (all but the last two are not tested by me):
This bug is present only on the Pro Controller. It's not present on Joy-Cons, despite being managed by the same driver.
If multiple Switch Pro controllers are connected, they will disconnect at the same time, while the other controllers stay connected (the user didn't specify if all controllers were receiving the same force feedback).
The issue is not on the Bluetooth adapter: the same controller on the same machine doesn't disconnect on Windows.
In my experience, disconnections are much more frequent on games with a high force feedback strength.
Comment 1 Taylor C. Richberger 2022-12-28 18:57:04 UTC
I have the same issue, but not exclusively with my Switch Pro Controllers. The Sony DualSense has a really weird manifestation of this. The DualSense shows up in Dolphin as three controllers: Wireless Controller, Wireless Controller Motion Sensors, and Wireless Controller Touchpad. When I'm playing in Dolphin with the Switch Pro controllers with rumble on, they will disconnect after a while and need to be reconnected and refreshed. When I'm playing with the DualSense with rumble on, after a while, only the Wireless Controller Motion Sensors disconnects, while the Wireless Controller stays connected.

Also interestingly, I'm using the virtualized Pointer (which emulates a Wii pointer using the motion controls). When I have rumble on, the pointer jumps all over the place when the rumble is active.

I wonder if the rumble is overloading the motion sensor, sending more data than the Linux bluetooth stack can cope with. On the Switch Pro Controller, because the motion sensors are registering on the same device as the buttons, it just knocks out the whole pad. On the DualSense, because it's showing up as a different device, it only knocks out the motion sensor device.

Note You need to log in before you can comment on or make changes to this bug.