Satisfyer devices can cause all devices to disconnect randomly
qdot opened this issue · comments
Describe the bug
- Start intiface central
- Connect multiple devices, one of them being a satisfyer device
- Play around with the sliders on the devices tab
Expected behavior
Devices should stay connected, move accordingly
Actual behavior
At some point, all devices, EVEN XINPUT, disconnect completely. Bluetooth devices do not come back.
Additional context
I have no fucking clue how this is happening. Tried it with a XBox Controller, OhMiBod Lumen, WeVibe Verge, and Satisfyer Royal One. If I turn the satisfyer off, everything is fine. The fact this takes out the fucking gamepad is weird as hell, since that's USB?! My best guess is that the satisfyer update loop has a major bug where it's just flooding the bluetooth radio with commands. That said, this is all going to a USB 3 hub, so we REALLY shouldn't be saturating a fucking PCI-E bus enough for a disconnect, but there might be some internal OS buffer getting overrun?
Is it possibly because the command handlers send the updates, but the keepalive could fire mid command (or vice versa), and cause BLE errors? An error on the keepalive thread should log and exit the loop, which might prematurely shutdown the keepalives, but doesn't explain the wider errors.