How to Use a Wireless Bluetooth Controller with RetroPie
What you'll need
Using a Bluetooth controller with RetroPie is a piece of cake — this guide will show you how. Works on all Raspberry Pi versions (including the Pi Zero).
I chose to use an 8Bitdo SNES-style gamepad as the 8Bitdo quality and compatibility is superb. There are cheaper Bluetooth gamepads out there, but you may have issues getting the controller to work properly.
This guide will focus primarily on setting up an 8Bitdo Bluetooth controller; however, the steps here will be extremely similar for other Bluetooth controllers, including Xbox controllers. Be sure to check out our master RetroPie controller guide to explore other options, too!
How to Use an Xbox One Controller on the Raspberry Pi
Get a grip and control your Pi!
The Ultimate RetroPie Controller Guide
Press A! Press A! No no no…not B!
1 – Connect your Bluetooth adapter
If you’re using a Raspberry Pi Zero W, Raspberry Pi 3, or newer, skip this step.
If you’re using an older Pi that doesn’t have Bluetooth, you’ll need to add this, or a similar, USB Bluetooth adapter.
Power down your Pi. Then, connect your USB Bluetooth adapter to any available USB port. If you followed my NES PiCart guide, there’s a free USB port on the rear of the USB hub (lucky you!)
|🛈 There are some very small bluetooth adapters out there! You can barely see mine plugged into the rear of my hub.|
2 – Connect a wired USB controller (or keyboard)
You’ll need to use a wired device — like a USB controller or keyboard — to navigate the RetroPie UI and update the Raspberry Pi’s configuration to accept your new bluetooth controller.
Connect a wired gamepad or keyboard. Then, connect your Pi to your display and boot it up.
3 – Update your controller’s firmware
It’s important that your controller firmware is up to date.
If using an 8Bitdo controller, select “Firmware” and then click “Download” next to your specific controller.
The process is super simple; follow the instructions on that page to update your controller’s firmware.
4 – Verify RetroPie version
Bluetooth controllers (and 8Bitdo support) work best when using RetroPie v4.0 or above — if you installed RetroPie between August 2016 and now, you’re already running v4.0+. If you aren’t, I recommend updating to the latest version of RetroPie or you may encounter issues. If you don’t want to update, you can still use bluetooth controllers, but the process is much more involved.
5 – Open RetroPie Setup
Inside the RetroPie interface, navigate to the right and select the RetroPie icon/system. Then, select RetroPie Setup.
6 – Open Bluetooth device config
Once inside the RetroPie Setup menu, navigate to Configuration/Tools and select bluetooth – Configure Bluetooth Devices.
Next, turn the 8Bitdo hack option off by selecting the 8Bitdo mapping hack (ON – old firmware) option so that it now says 8Bitdo mapping hack (OFF – new firmware).
7 – Register a new Bluetooth device to pair the controller with your Pi
Power on your Bluetooth controller and make sure it is searching for a connection — this is normally done by holding a combination of buttons for a few seconds. The exact button sequence varies based on which Bluetooth gamepad you have, but the method will be listed in the manual that came with your controller. For my controller (the SNES30), this is done by holding down the Start button for 3 seconds until the blue light starts flashing.
Once your wireless controller is in searching mode, use your wired controller to select Register and Connect to Bluetooth Device. You’ll see a “Searching…” box and then a list of Bluetooth devices by MAC address. If you don’t see the name of your device here, select Cancel and then search again. It seems that the Bluetooth device name doesn’t always appear after searching for the first time.
After selecting your device, choose the DisplayYesNo security option. If the SNES30 is paired properly, the blue light will now be solid.
8 – Tell Emulation Station to recognize the controller on boot
Finally, you need to tell Emulation Station to search for and recognize your new Bluetooth gamepad on system boot. From the same Bluetooth Setup menu, select Set up udev rule for Joypad (required for Joypads from 8Bitdo etc). Select your controller from this list.
Select Cancel to exit Bluetooth Setup and RetroPie Configuration. Finally, reboot your Pi.
While it’s rebooting, go ahead and unplug your wired controller. After your Pi boots to the Configure Device menu, hold down any button on your Bluetooth controller and you will be prompted to map it. You’re good to go!
|🛈 The L and R bumper buttons on the SNES30 controller should be mapped as “shoulder” buttons, not “bumper” buttons.|
9 – You’re good to go!
Now you can sit back on your couch and play retro games the modern way.
|🛈 Remember — RetroPie supports multiple bluetooth controllers 😉|
10 – Questions? Comments?
Post below and I’ll do my best to help you out! The RetroPie Wiki also has some great resources for troubleshooting 8Bitdo and other Bluetooth controllers.