Safety Concern: Unexpected Input Changes with Xbox Button in Windows

I have replicated this across an official Xbox One controller, a GameSir Kaleid Flux, two computers, two years of the driver station, simgui, and Xbox Game Bar enabled, disabled, and uninstalled.

Steps to reproduce:

  1. Connect a controller with an Xbox button to a computer with Driver Station installed. Do not make any input on the controller yet.
  2. Observe that the axis values all start at 0 until you make the first movement.
  3. Disconnect and reconnect the controller before testing the next part.
  4. Press the Xbox button. Make sure it’s the first input after the controller is connected.
  5. I observe that the axis values for the sticks (0,1,4,5) all go to -1 until the next input (button or axis) from the controller.

Preferred behavior:
Before any input, the joystick values are correct (i.e. nonzero if there’s stick drift). I understand this isn’t actually possible given when controllers send updates, however…
Expected behavior:
Pressing the Xbox button does not change joystick values, or perhaps updates them to be accurate.

This led to multiple major scares where the sticks were centered (hands off the controller), but the axis values were reading -1 when entering auto because someone had pressed the Xbox button during pre-auto setup.

Can anybody else reproduce? It’s now seeming like a Windows driver issue unfortunately.

5 Likes

I can confirm that the same issue appears in my copy of the driver station. Given even the slightest brush on the sticks will prevent it from occurring it feels like a race condition and is easy to see how it could be missed.

1 Like

After further testing, on one of the above laptops it’s not limited to only the driver station; simgui and an online tester show the same issue.

Can confirm with a PowerA wired Xbox controller and DS version 25.0.

If it happens with simgui and an online tester, this is either internal joystick behavior or something being done by the Windows driver. There’s not much the DS can do about it if the device or driver is feeding it incorrect data.

Yep, needs more testing but I’ve amended the topic because it’s not a driver station issue.