I did it guys: I finally bought myself a decent game controller to use on Linux!
Specifically the 8BitDo SF30 Pro controller — level up! 🍄
As well as enjoying the weighted feel of quality manufacturing in my hand — cheap USB controller with itchy hollow plastic you will not be missed — I also get to sample 8BitDo’s Linux support, courtesy of the terrific LVFS.
See, despite writing about 8bitdo controllers a few times in the past I’ve never actually owned one until now.
It’s a gap plugged due, in large part, to your recommendations on Twitter and in the comments to an earlier post — so thanks!
How to Pair the SN30 Pro on Ubuntu
As I bought my controller used from eBay it didn’t come with a box or any instructions. I had to turn to Google to find out how to pair the SN30 Pro with Ubuntu so that I could use it in games like SuperTuxKart.
Was it difficult? Not at all.
To pair the SF30 Pro — also sold as the SN30 Pro, same device just coloured buttons — you turn the pad on in Windows pairing mode by pressing
With the LED lights blinking away, pop open the Bluetooth settings panel on Ubuntu and select “8BitDo SF30 Pro” entry from the list of available devices.
There’s no code or confirmation step, so pairing is basically instant.
How to upgrade the SN30 Firmware on Ubuntu
Unsure of which firmware version my joypad was running my next task was to check on and upgrade the firmware.
Which is when things become a little less straightforward.
Now, as I said, I didn’t get a manual with my pad, so it wasn’t immediately clear to me exactly how to update the firmware of the SF30 Pro using Ubuntu.
I couldn’t find a Linux firmware guide on the 8BitDo website, and firmware updating doesn’t “just work” when the controller is paired with Ubuntu or connected to it by USB (which is sort of what I was expecting).
Once again Google came to my aid.
I figured I’d jot the salient details down in post lest I ever need to reference them in the future — and maybe help a few fellow 8bitdo owners in the processor.
Check for Firmware
To check for any available firmware updates you must connect your 8BitDo SF30 Pro contoller to your Linux machine via USB with it in Android pairing mode.
This, apparently, is required for
fwupd — the service which handles firmware updates on Linux — to ‘see’ the controller, check the LVFS site for new firmware, and prompt you to install any (if available).
To put the 8BitDo SF30 Pro in Android pairing mode hold
B and press
Start at the same time. You’ll see the first two LED blocks on the front-facing section light up.
Next, open GNOME Software and check for updates and, once complete, you should see an upgrade prompt:
If you don’t see any updates listed do check whether your device can be seen by
fwud by running:
sudo fwupdmgr get-devices
Your controller should appear in the list. If it doesn’t you may need to file a bug.
To install a firmware update for the controller on Linux go ahead and initiate the firmware download by clicking the “update” button.
When the download is complete you’ll see an error message prompting you put your controller into ‘Firmware Update’ mode:
Do as commanded and unplug, put the 8bitDo SF30 Pro in device update mode by pressing
Start together, and then reattach.
Ubuntu Software will complete the firmware upgrade and, if all has gone well, your pad will now be running the latest firmware.
Put the controller back in Android pairing mode and you can run
fwupdmgr get-devices at the command line to check the firmware version.
Finally, reconnect the controller using Bluetooth applet to go back to using the pad for gaming.
Updating hardware firmware is difficult in general, so I can’t knock the way it’s handled here on Linux. That it’s possible on Linux at all is a great achievement.
I look forward to hopefully racing against some of you in online SuperTuxKart sometime.
Though now that I have a proper controller I no longer have an excuse for why my driving is so bad…