I was setting up a new RetroPie 4.7.1 build to connect to a new 8bitdo Pro 2 controller.
However, almost every time I'd open Bluetooth config and try to Pair and Connect to Bluetooth Device, I'd see Searching... followed by this error
No devices were found. Ensure device is on and try again
Power cycling the controller / raspberry pi did nothing.
Occasionally it would find my device, but then when I'd try and select the DisplayYesNo
security mode option, the computer would freeze.
Power cycling the computer would show the device as added, but I still wasn't able to use it.
When I'd try and remove the device I'd get the following error:
Error removing device:
Error:
GDBus.Error:org.bluez.Error.NotReady
: Resource Not Ready
After some googling, I was able to find some instructions in this thread but they were a bit buried, so I'm copying them here in case I need to run through this again.
-
Edit the file /lib/systemd/system/bluetooth.service by running
sudo nano /lib/systemd/system/bluetooth.service
And change the following line
- ExecStart=/usr/lib/bluetooth/bluetoothd + ExecStart=/usr/lib/bluetooth/bluetoothd --noplugin=sap
This disables the non-working SAP plugin, which is required to make the Bluetooth service run.1
-
Edit the file lib/systemd/system/[email protected] by running
sudo nano /lib/systemd/system/[email protected]
And change the following lines
[Service] Type=simple + ExecStartPre=/bin/sleep 2 ExecStart=/usr/bin/bthelper %I + ExecStartPost=sudo /etc/init.d/bluetooth restart
-
Delete the old configuration (if you had any) for the previously paired device
sudo rm /etc/udev/rules.d/99-bluetooth.rules
-
Reboot the raspberry pi.
sudo reboot
-
Run the Retro Pie config script:
sudo /home/pi/RetroPie-Setup/retropie_setup.sh
-
Navigate to Configuration / Tools → Bluetooth
-
Ensure that the "hack" setting is set to
OFF
. -
Move the 8bitdo controller mode to the
S
position on the bottom to boot into Switch Mode. -
Hold the Bluetooth Pair button up top for three seconds until the LED lights begin "rotating" / "bouncing" back and forth. The controller is now in pairing mode.
-
Select the Pair and Connect to Bluetooth Device option.
-
After searching, it should now find a Pro Controller device. Select it.
If no device is found, try exiting to the terminal and running the following commands before trying again
sudo systemctl daemon-reload sudo systemctl restart bluetooth
-
Choose
DisplayYesNo
as the Security mode. -
After successfully paired, select the option to Set up udev rule for Joypad. Accept the defaults.
-
Hold the Start button down on the controller for 3 seconds to turn off the device.
-
Reboot the raspberry pi again
sudo reboot
-
Turn on the controller.
-
It should now connect and be detected, you'll need to configure the button mappings within Emulationstation, and be all set!