Hi, All.
Thank you for this thread. I found it AFTER I clicked the button to order my controller! I now have the 8BitDo SN30 Pro+ controller working flawlessly on a Raspberry Pi 4B, with RetroPie 4.7.1 on updated OS.
Before I attempted to pair, the pad was connected via USB to the Ultimate Software application for a firmware update. I also configured a Switch profile, with star(★) as turbo button.
I followed these steps before pairing, too. I consider these safe steps, as it only disables an unused SIM card driver and delays bluetooth start for two seconds at boot.
So, then...
$ sudo nano /lib/systemd/system/bluetooth.service
$ sudo nano /lib/systemd/system/bthelper@.service
$ sudo rm /etc/udev/rules.d/99-bluetooth.rules
$ sudo reboot
$ sudo /home/pi/RetroPie-Setup/retropie_setup.sh
Configuration / Tools -> bluetooth
hack OFF
power on controller by holding Y + start one second (Switch mode)
hold in pair button for three seconds
leds will rotate like knight rider
Register and Connect to Bluetooth Device
on "Searching" screen, pressing some buttons can help
choose "Pro Controller"
DisplayYesNo
Setup the udev rule
hold start three seconds to turn pad off
reboot
turn on controller
configure input
GOOD
I have the pad in Switch mode. To select the profile with turbo, press both sticks (L3+R3) and the heart/home button will light up. Hold a button and press star(★) to enable/disable turbo. It will stay in Switch mode with profile, so now all you have to do is hold the start button to turn it on or off.
Hope that helps. Cheers.