Knowledge for the World

How to use a wireless bluetooth controller with RetroPie

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 (linked to below) 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.

In these interests [?]
  • pi
    82 Subscribers Subscribe
  • gaming
    24 Subscribers Subscribe
  • retrogaming
    12 Subscribers Subscribe
1

Connect your bluetooth adapter

Note: The Raspberry Pi 3 has built-in bluetooth -- If you're using a Pi 3, skip this step.

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!)

Connect your bluetooth adapter
2

Connect a wired USB controller (or keyboard)

You'll need to use a wired device 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.

Connect a wired USB controller (or keyboard)
3

Update your controller's firmware

It's important that your controller firmware is up to date.

If using an 8Bitdo controller, select your controller and then select "Firmware". If you're using the same controller as me -- the SNES30 -- here's a direct link for you.

The process is super simple; follow the instructions on that page to update your controller's firmware.

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.

Verify RetroPie version
5

Open RetroPie Setup

Inside the RetroPie interface, navigate to the right and select the RetroPie icon/system. Then, select RetroPie Setup.

Open 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.

Register a new bluetooth device to pair the controller with your Pi
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!

9

You're good to go!

Now you can sit back on your couch and play retro games the modern way.

You're good to go!
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.