There are two separate but related pieces: the boards package that contains the USB descriptors for the XInput controller, and the library that makes it easy to interact with. The next thing you’ll need is the software to make this work. You will need to buy another microcontroller. Those three boards do not have native USB support and will not work for this. Note that the Arduino Uno, Nano, and Mega are missing from this list. This is not a complete list however! Check the supported boards list in the library repository to see if your board is compatible. Using a Leonardo or 5V Pro Micro is my usual suggestion, although if you need a little more ‘oomph’ you can pick up one of the Teensy boards. The first thing you’ll need is an Arduino-compatible microcontroller that has native USB support. In this tutorial, I’m going to show you how to program your own Arduino to emulate an Xbox controller using the ArduinoXInput library. Whether you’re retrofitting a Nerf gun, converting a rhythm controller to play an FPS game, or playing PUBG with a frying pan – using an Arduino makes it quick and easy to build your own custom controller. In my opinion, one of the more novel things you can do with an Arduino is put it to use as a custom game controller for your favorite games.