Re: [PATCH] Add rumble support to latest xbox controllers

From: Bastien Nocera
Date: Thu Oct 20 2022 - 13:34:03 EST


On Thu, 2022-10-20 at 09:14 -0700, Siarhei Vishniakou wrote:
> Currently, rumble is only supported via bluetooth on a single xbox
> controller, called 'model 1708'. On the back of the device, it's
> named
> 'wireless controller for xbox one'. However, in 2021, Microsoft
> released
> a firmware update for this controller. As part of this update, the
> HID
> descriptor of the device changed. The product ID was also changed
> from
> 0x02fd to 0x0b20. On this controller, rumble was supported via
> hid-microsoft, which matched against the old product id (0x02fd). As
> a
> result, the firmware update broke rumble support on this controller.
>
> The hid-microsoft driver actually supports rumble on the new
> firmware,
> as well. So simply adding new product id is sufficient to bring back
> this support.
>
> After discussing further with the xbox team, it was pointed out that
> other xbox controllers, such as xbox elite, should also be possible
> to
> support in a similar way. However, I could only verify this on 2
> controllers so far.
>
> In this patch, add rumble support for the following 2 controllers:
> 1. 'wireless controller for xbox one', model 1708, after applying the
>    most recent firmware update as of 2022-10-20.
> 2. 'xbox wireless controller', model 1914. This is also sometimes
>    referred to as 'xbox series S|X'.

This is a good summary of the different models:
https://en.wikipedia.org/wiki/Xbox_Wireless_Controller#Summary

You can remove the mention of the other names it might have, or the
names at the back of the joypad, and use the model numbers instead.

I think I have a model of each one of the devices in the list (except
1797 and 1537 IIRC), so I could test this if needed. Do you have a good
test case for the various forces of rumble that would exercise both
motors?