8bitdo SF30 Pro and SN30 Pro
-
@meats For RetroPie, you should actually use the "macOS" instructions and not the "Switch". Even though all buttons & analog sticks work for both, the "Switch" profile incorrectly calibrates the analog sticks from -27391 to 26966 (about 83% of the full motion range). The "macOS" profile correctly calibrates the analog stick from -32767 to 32767 (the full motion range).. which is necessary for performing joystick combinations in N64 games like Waverace. I confirmed this on RetroPie 4.3 (with the latest updates) using the jstest utility. My SF30/SN30 Pro firmware is v1.20.
EDIT:
I discovered that with the "macOS" profile, the controller will work immediately after registering with bluetooth. If, however, you lose connection & try reconnecting, it will never work (even after rebooting the RetroPie) though it strangely still displays as connected with bluetooth. This was the behavior while the connect mode was set to 'default'.
Once I set the connect mode to 'boot' or 'background', I was able to get the controller working only during boot of the RetroPie. If the controller isn't turned on during the boot and/or missed connection, you can only try rebooting RetroPie for another chance. If you turn the controller off, or it goes to sleep or loses connection somehow, again you'll need to reboot RetroPie for another chance to reconnect.
I understand this problem should've been alleviated with the following udev line:
SUBSYSTEM=="input", ATTRS{name}=="Wireless Controller", MODE="0666", ENV{ID_INPUT_JOYSTICK}="1"
However, my tests were conducted with it active the whole time (thanks to the built-in menu option).. so I doubt it had any effect. Hopefully someone with more experience finds a solution... or helps me push 8bitdo to fix their "Switch" profile's joystick calibration (I recently sent an email to their support contact).
In hindsight, the "Switch" profile had no issue working after reconnecting my controller any time while RetroPie was running. If it weren't for its bad joystick calibration, I'd use that profile. There may be a (complex) way to build a recalibration script that runs whenever the controller connects, not to mention much reconfiguring of RetroArch... but this is too big a task for me at the moment. For now, I'd rather use the "macOS" profile for proper calibration & risk rebooting the RetroPie mid-game if the controller disconnects.
-
Have you tried it in Android mode ? I had a GameSir G3s which could connect as D-Input/X-Input etc. but it would only connect correctly in Android mode. It also correctly awakes from sleep mode in RetroArch emulators.
-
@maxbeanz As meats indicated, the left/right controller triggers are not recognized in the "Android" & "Windows" profiles. This I've confirmed.
-
This post is deleted! -
I saw this post and many others on Reddit and elsewhere prior to receiving my SN30 Pro and was like "Shit. This is a mess. I should never have bought this thing."
I'm happy to say that I received my SN30 pro today and got it working on the very first try - flawlessly - using the following instructions:
- Right out of the box, update to the latest 8bitdo firmware first. v1.20 as of this post.
- Turn on the controller by holding down Start. Don't screw around with any "modes" or holding down any other buttons. Just hold down Start until the four lights start to cycle.
- Pair the controller with Retropie.
- Have it add the udev rule.
- Save changes and restart Retropie.
- Setup the buttons within Emulation Station
Hey, look at that. You're all done. It works in all emulators.
The analog sticks' range of motion works great in everything. If your controller gets disconnected for lack of activity or whatever, just hold down Start (and no other buttons) to turn it on again and you'll reconnect with 10 seconds or so. No need to reboot or re-pair.
There's never any need to select an alternate mode. Just power it on by holding down Start. Done.
I've been using this for a few hours now and have tried many different disconnection scenarios, but this seems pretty solid to me so far!
-
FYI to all... a new Firmware update to 1.22 is out:
Firmware v1.22
- Enhanced the stability of the Bluetooth pairing.
- Fixed the crashing issue of the controller when charging.
- It will disconnect from bluetooth connection when using USB connection.
-
So I removed my controllers from my Retro Pi setup.
I upgraded to firmware 1.22. I started the remotes with only the "Start button mode" only as described above. I paired the remotes using the 98:XX MAC Address. I added the udev from the bluetooth menu. I restarted the device and so far everything seems normal. I haven't given this a ton of testing but so far this seems like it may work.I was able to load a single player game and two-player game.
Hope everyone has a similar experience and with further testing declares these controllers good-to-go.
-
@robertclemens said in 8bitdo SF30 Pro and SN30 Pro:
So I removed my controllers from my Retro Pi setup.
I upgraded to firmware 1.22. I started the remotes with only the "Start button mode" only as described above. I paired the remotes using the 98:XX MAC Address. I added the udev from the bluetooth menu. I restarted the device and so far everything seems normal. I haven't given this a ton of testing but so far this seems like it may work.I was able to load a single player game and two-player game.
Hope everyone has a similar experience and with further testing declares these controllers good-to-go.
As I'm home sick with the Flu (yay), I've had some time to test this. So far this is working great.
-
@bmn001 Great!
-
I hate to break it to everyone, but we're still back where we started. First allow me to clear up this "miracle" of holding down just Start (not screwing around with any modes):
Every mode (profile) changes the way the LEDs light up:
-- "Switch" profile makes all 4 LEDs cycle back-n-forth
-- "Mac" profile makes the first 3 LEDs blink repeatedly
-- "Windows" profile makes the first 2 LEDs blink repeatedly
-- "Android" profile makes the first LED blink repeatedlyWhen you hit just Start, you are activating the last chosen profile. By default (particularly after a firmware upgrade) it's the "Switch" profile, aka 4 LEDs cycle back-n-forth.
I don't know what bmn001 did to confirm the analog sticks true range of motion, but I can attest that my previous findings (and meats's) remain after upgrading to the 1.22 firmware. The "Switch" profile still produces 85% of the full analog range (-27391 to 26966 instead of -32767 to 32767; thus can perform ample gameplay movement but certainly not specific joystick combinations), the "Mac" profile still has weird reconnection issues, and the "Windows" and "Android" profiles still don't recognize the left & right triggers.
FYI, I did receive an email from 8bitdo on 12/20 thanking me for my feedback and that they'll "submit this problem & test it soon." I'll keep everyone posted as things progress.
-
@louiehummv said in 8bitdo SF30 Pro and SN30 Pro:
I hate to break it to everyone, but we're still back where we started. First allow me to clear up this "miracle" of holding down just Start (not screwing around with any modes):
Every mode (profile) changes the way the LEDs light up:
-- "Switch" profile makes all 4 LEDs cycle back-n-forth
-- "Mac" profile makes the first 3 LEDs blink repeatedly
-- "Windows" profile makes the first 2 LEDs blink repeatedly
-- "Android" profile makes the first LED blink repeatedlyWhen you hit just Start, you are activating the last chosen profile. By default (particularly after a firmware upgrade) it's the "Switch" profile, aka 4 LEDs cycle back-n-forth.
I don't know what bmn001 did to confirm the analog sticks true range of motion, but I can attest that my previous findings (and meats's) remain after upgrading to the 1.22 firmware. The "Switch" profile still produces 85% of the full analog range (-27391 to 26966 instead of -32767 to 32767; thus can perform ample gameplay movement but certainly not specific joystick combinations), the "Mac" profile still has weird reconnection issues, and the "Windows" and "Android" profiles still don't recognize the left & right triggers.
FYI, I did receive an email from 8bitdo on 12/20 thanking me for my feedback and that they'll "submit this problem & test it soon." I'll keep everyone posted as things progress.
This is good information to have. I wouldn't quite say we are back at where we started. I'm now able to successfully connect/reconnect without a reboot. So progress has been made, at least with bluetooth connectivity. I've played several hours since I'm sick with the Flu and the connectivity is amazingly better.
Hopefully an update will be made to adjust the range of motion on the joysticks.
Thanks for the update and hopefully we will get a new firmware soon to address that. Please update this thread if you see any positive or negative changes.
-
@louiehummv said in 8bitdo SF30 Pro and SN30 Pro:
When you hit just Start, you are activating the last chosen profile. By default (particularly after a firmware upgrade) it's the "Switch" profile, aka 4 LEDs cycle back-n-forth.
Ahh okay, that makes sense. 8bitdo doesn't have the best documentation. Thanks for clearing that up.
I don't know what bmn001 did to confirm the analog sticks true range of motion, but I can attest that my previous findings (and meats's) remain after upgrading to the 1.22 firmware.
I just played a few games and things seemed to work. I didn't experience any game-breaking limits on joystick range, but don't doubt that they're still not giving the full values. Thanks for reporting that to them!
I think the moral of the story is that, as it stands today, the Switch profile is probably the best bet for Retropie, and it'll be perfect once they address the limited range of the analog sticks in a future firmware update.
-
@robertclemens I didn't realize connection without a reboot was an old issue, as I never had that problem even since the stock firmware v1.0somenumber. Only the "Mac" profile had, and still has, that problem.. at least for me. Glad people have found the profile most tolerable for them.
-
@bmn001 Personally I think the "Mac" profile is best if you feel you have a reliable bluetooth connection and don't anticipate walking away for a while (since the controller goes to sleep after some time). One of my favorite N64 games, Waverace, is frustrating without full joystick range. Otherwise, any non-joystick-combo game works fine with the ease-of-connectivity "Switch" profile, as you & meats implied.
-
One thing to mention about the Switch profile is that, per the manual, turbo feature does not apply to that profile. It would be ideal to utilize a "fully featured" profile instead. I just realized this trying to play a game where I would have liked turbo mode on a button for a short bit.
So as it stands it seems like the "Switch" profile is the easiest and best choice if you don't need the joysticks or at least full-range joysticks or turbo features.
The "macOS" profile appears to have the full joystick motion range but bluetooth re-connection issues upon sleep mode or other disconnection events occur.
Have any of the other modes (Android and Windows) been fully tested by anyone for RetroPie?
-
For the record (as of firmware v1.22, 2017-12-20)
Confirmed Issues
- "Switch": analog range is only 85% (-27391 to 26966 instead of -32767 to 32767); turbo feature not recognized
- "Mac" : reconnection established only after reboot when connect mode has been set to 'boot' or 'background'
- "Windows" : left & right triggers aren't recognized
- "Android" : left & right triggers aren't recognized
Confirmed LEDs
- "Switch" : all 4 LEDs cycle back-n-forth
- "Mac" : the first 3 LEDs blink repeatedly
- "Windows" : the first 2 LEDs blink repeatedly
- "Android" : the first LED blink repeatedly
Confirmed Profile Selection Buttons
- "Switch" : START + Y
- "Mac" : START + A
- "Windows" : START + X
- "Android" : START + B
Confirmed Bluetooth IDs & Name (SN30 | SF30)
- "Switch" : 98:B6:E9:42:--:-- Pro Controller | 98:B6:E9:42:--:-- Pro Controller
- "Mac" : E4:17:D8:20:--:-- Wireless Controller | E4:17:D8:CF:--:-- Wireless Controller
- "Windows" : E4:17:D8:20:--:-- 8Bitdo SN30 Pro | E4:17:D8:CF:--:-- 8Bitdo SF30 Pro
- "Android" : E4:17:D8:20:--:-- 8Bitdo SN30 Pro | E4:17:D8:CF:--:-- 8Bitdo SF30 Pro
Notes
- Hitting only START button activates previously selected profile
- Firmware receive mode activated by LEFT SHOULDER + RIGHT SHOULDER + START
- click for manual
- click for support/firmware
-
@louiehummv said in 8bitdo SF30 Pro and SN30 Pro:
For the record (as of firmware v1.22, 2017-12-20)
Confirmed Issues
- "Switch": analog range is only 85% (-27391 to 26966 instead of -32767 to 32767); turbo feature not recognized
- "Mac" : reconnection established only after reboot when connect mode has been set to 'boot' or 'background'
- "Windows" : left & right triggers aren't recognized
- "Android" : left & right triggers aren't recognized
Confirmed LEDs
- "Switch" : all 4 LEDs cycle back-n-forth
- "Mac" : the first 3 LEDs blink repeatedly
- "Windows" : the first 2 LEDs blink repeatedly
- "Android" : the first LED blink repeatedly
Confirmed Profile Selection Buttons
- "Switch" : START + Y
- "Mac" : START + A
- "Windows" : START + X
- "Android" : START + B
Confirmed Bluetooth IDs & Name (SN30 | SF30)
- "Switch" : 98:B6:E9:42:--:-- Pro Controller | 98:B6:E9:42:--:-- Pro Controller
- "Mac" : E4:17:D8:20:--:-- Wireless Controller | E4:17:D8:CF:--:-- Wireless Controller
- "Windows" : E4:17:D8:20:--:-- 8Bitdo SN30 Pro | E4:17:D8:CF:--:-- 8Bitdo SF30 Pro
- "Android" : E4:17:D8:20:--:-- 8Bitdo SN30 Pro | E4:17:D8:CF:--:-- 8Bitdo SF30 Pro
Notes
- Hitting only START button activates previously selected profile
- Firmware receive mode activated by LEFT SHOULDER + RIGHT SHOULDER + START
- click for manual
- click for support/firmware
great stuff here, thanks. I dont know if its an issue, but dont the other 8bitdo controllers tell you via LED lights which controller # each one is? Considering these controllers have different 'modes', that may not be possible anymore, but would definitely be a small let down to not know which controller is #1 - #4 etc when you have more than 1.
-
@meats I have 2 controllers (SF30 Pro & SN30 Pro) setup in RetroPie. During all my tests, I've never seen the LEDs distinguish player #s. Only the first LED lights when a controller is connected.
-
I've got two SN30 Pro controllers, both have the firmware upgraded to v1.22, and I'm running RetroPie 4.3 on a Raspberry Pi 3 model B.
They both will shut off by themselves after being used for about 20 minutes, and they will not reconnect unless I reboot the system.
I'm running them in "Switch" mode, and they are fully charged. I can't even get it to work at all in "MacOS" mode, and I've also tried changing the bluetooth setting from "default" to "background", but they just keep shutting off and not reconnecting. Am I missing something?
-
@mrp2000 In RetroPie's bluetooth menu, there are 2 options you should've also setup: (1) set the udev rule (only need to set once even if you have more than 1 controller of the same bluetooth name), and (2) turn off the 8bitdo mapping hack (for new firmware)... then reboot to take effect.
According to the manual, the controllers shut off after 15 minutes of non-use (no buttons/joysticks being pressed) while connected, and after 1 minute of no connection. If yours shut off during regular use, it's possible your RasPi's WiFi is interfering/dropping the bluetooth connection. I know that sounds strange, but once I disconnected from my wireless network, the bluetooth connection was wayyy more stable. I actually ran an ethernet cord to my network router & forced the RasPi's WiFi service off in the meantime.
Otherwise, please confirm your setup intricacies (particularly your connected profile's bluetooth ID/Name & LEDs) against the following, and note the confirmed issues too.
For the record (as of firmware v1.22, 2017-12-20)
Confirmed Issues
- "Switch": analog range is only 85% (-27391 to 26966 instead of -32767 to 32767); turbo feature not recognized
- "Mac" : reconnection established only after reboot when connect mode has been set to 'boot' or 'background'
- "Windows" : left & right triggers aren't recognized
- "Android" : left & right triggers aren't recognized
Confirmed LEDs
- "Switch" : all 4 LEDs cycle back-n-forth
- "Mac" : the first 3 LEDs blink repeatedly
- "Windows" : the first 2 LEDs blink repeatedly
- "Android" : the first LED blink repeatedly
Confirmed Profile Selection Buttons
- "Switch" : START + Y
- "Mac" : START + A
- "Windows" : START + X
- "Android" : START + B
Confirmed Bluetooth IDs & Name (SN30 | SF30)
- "Switch" : 98:B6:E9:42:--:-- Pro Controller | 98:B6:E9:42:--:-- Pro Controller
- "Mac" : E4:17:D8:20:--:-- Wireless Controller | E4:17:D8:CF:--:-- Wireless Controller
- "Windows" : E4:17:D8:20:--:-- 8Bitdo SN30 Pro | E4:17:D8:CF:--:-- 8Bitdo SF30 Pro
- "Android" : E4:17:D8:20:--:-- 8Bitdo SN30 Pro | E4:17:D8:CF:--:-- 8Bitdo SF30 Pro
Notes
- Hitting only START button activates previously selected profile
- Firmware receive mode activated by LEFT SHOULDER + RIGHT SHOULDER + START
- click for manual
- click for support/firmware
Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.
Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.