How to add Xbox controller support to RetroPie
The RetroPie operating system is a favorite among Raspberry Pi emulator enthusiasts, for one reason: it is highly customizable. Unlike a lot of other emulation OSes for Raspberry Pi, the user is free to add and install whatever they like to the OS.
While being incredibly customizable is a strenth for RetroPie, it also makes it slightly tedious to use. A lot of devices that you’d expect to have support, flat out don’t. One device that RetroPie doesn’t support is the Xbox One Bluetooth controller.
In this guide, we’ll show you how to make RetroPie work with the Xbox One Bluetooth controller. To start the process, ensure that you have the latest RetroPie set up on Raspberry Pi 4, 3, etc. Then, connect a keyboard and follow the instructions below to get everything working.
Note: if you do not use RetroPie, but still need to get your Xbox One controller working on Linux, please follow our guide on how to set up the Xbox One controller over Bluetooth on Linux.
Test Xbox One controller connection
While it is true that the Xbox One controller will not work out of the box with RetroPie, it’s still essential to test the connection. By checking the connection you can tell that if it refuses to connect because RetroPie hasn’t shut off ERTM to enable Xbox One controller support.
To test a connection with your Xbox One controller in RetroPie, follow the step-by-step instructions below.
Step 1: Access the configuration menu in the RetroPie user interface. Once in the configuration menu, select the “Bluetooth” option to access the Bluetooth area.
Step 2: Turn the Xbox One controller into Bluetooth pairing mode. You can do this by pressing the sync button on the back until the Xbox logo starts blinking rapidly.
Step 3: When the Xbox logo is blinking rapidly, it will appear in the Bluetooth menu. Select it to try and pair it. Assuming the pairing fails, you’ll know that your RetroPie device does not yet have support to handle the Xbox One controller, as it cannot communicate with it since ERTM is not shut off.
Once you’ve tried to pair the Xbox One controller, unplug the batteries to shut it off. Then, move to the next section of the guide.
Enable Xbox One controller support with RetroPie
Turning on Xbox One controller support in RetroPie is achieved by editing a configuration file. To edit this configuration file, you must put the RetroPie into the command-line mode. To do this, press F4 on the keyboard.
Once you press F4, a terminal console will appear. From here, you can use the touch command to create a new file in the modprobe.d
directory.
sudo touch /etc/modprobe.d/bluetooth.conf
After making the new file, open it up with the Nano text editor using the nano command below.
sudo nano -w /etc/modprobe.d/bluetooth.conf
In the Nano text editor, write out the following code into the file. This code will turn off the function that makes it impossible to pair your Xbox One controller to the RetroPie.
options bluetooth disable_ertm=Y
With the code written into Nano, the edits need to be saved. To save the edit to the file, press the Ctrl + O button on the keyboard. Once the edit is saved to the file, you can close the Nano text editor by pressing Ctrl + X.
Once the Nano text editor has saved the changes, the command-line is no longer needed. You must exit the command-line. To exit the command-line, simply press the F4 button again on the keyboard.
Connect your Xbox One controller to the RetroPie
Shutting off the Bluetooth ERTM in RetroPie is all that is required to add Xbox One controller support to the RetroPie. Now, you can connect your controller and use it to enjoy all of the excellent emulation tools that RetroPie has to offer.
To connect your Xbox One controller to the RetroPie over Bluetooth, follow the step-by-step instructions below.
Step 1: Go back to the configuration menu accessed earlier in the guide. Once at the configuration area, select “Bluetooth” in the available menu choices.
Step 2: Put the Xbox One controller into Bluetooth pairing mode. To do this, press and hold down the sync button for a couple of seconds until the Xbox logo starts rapidly flashing.
Step 3: Look through the list of pairable Bluetooth devices, and select the Xbox One controller. When you select this device, RetroPie will attempt to pair the device to your RetroPie. Be patient, as pairing could take a couple of seconds, and likely won’t be instantaneous.
Once the Xbox One controller is paired to your RetroPie, it should be usable. From here, select “Configure Input” to customize the controls for the Xbox One controller.
Does not work at all! Followed all instructions to the letter, and it still does not pair. I get to pick it from the list, select one of the input options it asks for next (yes, i tried them all) and then get thrown back to the tools-menu. The light at the controller keeps blinking, as it’s not even trying to pair. Goes without saying that the controller works flawlessly on two windows pcs, so it is definitely not the controller. This is getting ridiculous. Either this (and about a doven other tutorials) are just plain lies, or I have a very special, unique pi4 that is custom made to not accept an XBox controller. I wonder which of those options is more unlikely?
I’m sorry it didn’t work for you. Have you considered updating Retropie or starting with a fresh installation?