XBox-One S Controller Support
The XBox One S controller (the most modern, with bluetooth support) can be used without any dongles, but you will have to change a configuration option in the bluetooth driver. This is done by creating a file in /etc/modprobe.d/. The file can be called anything, you’ll need to be root to create it, and must specify a single line. In my case I used
tom@Ogre ~ $ sudo nano /etc/modprobe.d/bluetooth.conf
…to create a file, with a single line:
options bluetooth disable_ertm=1
After doing this you’ll need to reboot your computer. If you don’t perform this step your controller will pair, but will not stay connected for more than a couple of seconds (if you’re using the graphical bluetooth manager you’ll see it connecting and disconnecting forever). There don’t appear to be any drawbacks to setting this option, at least none that I’ve found in the context of making robots.
Once this is done you should be able to pair with Pairing Controllers over Bluetooth as with any normal bluetooth device.