RetroPie 3.5 and the 8Bitdo NES30 Pro

đź“… February 25, 2016
nes30aSo, your RetroPie 3.5 system is running in all of its retro glory, right?

Life is happy, all is well, and…What? You say that the tiny Raspberry Pi 2 is too modern and sleek to provide full retro nostalgia?

Then, why not add a retro-themed controller to complete the experience?

One such controller is the 8Bitdo NES30 PRO wireless Bluetooth/USB controller. This is a small, pocket-sized controller that offers enough buttons for most games you will encounter, and it is styled after the 8-bit Nintendo controller. How retro-themed is that?

Is this just a gimmick, or does it work with RetroPie 3.5 Jessie?

The Short Answer

Yes, this controller is 100% plug and play compatible with RetroPie 3.5 *IF* it is commented with a USB cable. There is a micro USB connector on the NES30 PRO that lets you connect the controller to any USB port. Simply plug it in and go. EmulationStation and RetroArch automatically recognize it as a standard controller. It really is that easy.

“What about wireless Bluetooth connectivity?”

Wireless Bluetooth operation is another matter that is difficult to set up, and I never got it working in its entirety…and neither have many others from reports.

The Controller

8Bitdo sounds like a cheap, Chinese manufacturer of ripoff junk, but I was surprised with the build quality and packaging.


The controller is packaged snugly with hard foam and includes a color manual.

The foam packaging. The color manual. This controller is well-packaged. Yes, it is made of plastic, but it does not feel “cheap.” It’s lightweight, but it feels sturdy and does not flex or bend.


Box Front. The actual controller does indeed look like the picture but more plastic gray than metallic silver.



Back of the box. Proudly proclaims Linux compatibility. Yes, it works with Linux in addition to most other operating systems.

All buttons are well-made, snappy, and have a satisfying feel when pressed. Great for those frantic button-mashing moments.

Bluetooth and USB are supported. At the top of the controller is a micro-USB port for connection to a computer (or RetroPie) via a USB cable and for charging the internal battery. Different wireless modes are available depending upon which button combinations are held down when the controller is powered on.


The color instruction manual unfolds into a single page. Despite the odd English grammar, it conveys the point. Most important is the section describing the different button combinations and operating modes.

The Appearance

The best part is the appearance. The NES30 PRO possesses the 8-bit Nintendo style that looks like it belongs to a bygone era yet blends modern technology for use on today’s computers. The theme is half the experience, and 8Bitdo produces controllers in other themes as well. And if that was not enough, LED lights along both sides glow a satisfying electric blue.


NES30 PRO paired with the Bluetooth USB adapter connected to the RetroPie. The blue lights fade in and out slowly to indicate a successful pairing. The two buttons on the bottom are for powering the controller on and off (left) and for Bluetooth pairing (right).

The lights also change different colors and blink to provide visual feedback regarding the controller mode.


A USB cable is included, so even if Bluetooth wireless connectivity might not work with RetroPie 3.5, you can still use it as a wired controller. There is no input lag.



When connected as a wired USB controller, EmulationStation recognizes the NES30 PRO automatically. “BITDO NES30 PRO” appears twice here due to previous tinkering with configuration files while trying to get the controller to work with EmulationStation via Bluetooth.


At first, I thought this would be a cheaply-produced “abandon all hope ye who purchase” type of product, but I have been pleased. The 8bitdo web site (available in English) provides somewhat useful help and support. A PDF version of the manual is available for viewing.

The firmware can be upgraded via software downloads from the NES30 PRO page to resolve bug fixes with the controller and to provide new features. However, the upgrade software only runs on Mac or Windows, not Linux.

Bluetooth Support for RetroPie 3.5 (Jessie)

As a USB controller, the NES30 PRO is perfect!

No problems whatsoever. Just plug and play. However, Bluetooth support for this particular controller is difficult at this time with RetroPie 3.5.


Despite successful pairing of the NES30 PRO and the Kinivo Bluetooth adapter, EmulationStation in RetroPie 3.5 refuses to recognize it.

I have tried numerous tutorials, guides, advice, and my own tinkering to no avail. While I can get some elements working wirelessly, EmulationStation refuses to recognize the controller due to SDL errors.


After setup and pairing, press buttons on the controller at EmulationStation’s gamepad detection screen. Then, press F4 to exit to the terminal. These SDL (Simple DirectMedia Layer) errors will appear.

Other tutorials have reported this controller working with RetroPie 3.4 (both versions), but not with RetroPie 3.5. The PlayStation 4 Dual Shock 4 controller requires time to set up, but it works fine with RetroPie 3.5. By contrast, I have spend great amounts of time wrestling with the NES30 PRO without any usable results.

Upgrading the Firmware

I updated the NES30 PRO firmware to version 1.68, which is the latest version as of this writing. This was an easy process that required a Windows computer.

Kinivo Bluetooth USB Adapter

The goal was to use one NES30 PRO controller by itself paired with the Raspberry Pi 2 using the Kinivo BTD-300 Bluetooth USB adapter.


The Kinivo is a plug and play Bluetooth USB adapter that works well with Linux and RetroPie.

This Bluetooth adapter is a joy to use with Linux, and I have found it compatible with every Bluetooth device tried (mostly controllers, such as the DS3 and DS4).

Due to its reliability, I can rule this out as the source of problems.

Online Tutorials

First, research the issue. Using wireless controllers with RetroPie is not plug and play like it is with wired USB controllers. Bluetooth often requires manual configuration for specific controllers…and then you chant and perform a rain dance hoping it will work.

The RetroPie forum is a good place to start, and there is a basic tutorial for Bluetooth controllers and RetroPie 3.4.

None of this helped.

The (Unfruitful) Process

With the Pi powered on, press F4 at the EmultationStation screen to go to a terminal. (This requires a USB keyboard connected to the Pi or a connection via SSH.)

After updating the RetroPie setup script, return to the command line prompt and enter:

sudo bluetoothctl
power on
scan on

Power on the NES30 Pro and put it in pairing mode. The LED lights will flash quickly in succession to indicate that is making itself known to the world.

After a few moments, the controller’s MAC address should appear in the terminal. Note the name of the controller. It should read “8Bitdo NES30 Pro.”


RetroPie Setup

RetroPie-Setup tries to aid Bluetooth installation. Make sure to run the bluetoothctl commands first. For me, RetroPie-Setup did not recognize the controller until the Bluetooth system was enabled via the terminal.

Setup Configuration > Configure Bluetooth Devices > Register and Connect to Bluetooth Device


Available from the RetroPie-Setup script. This menu handles the detection and setup of Bluetooth controllers.


The NES30 PRO will pair, and RetroPie-Setup will recognize it. However, be sure to activate Bluetooth using bluetoothctl and power on the NES30 PRO in pairing mode first.


Neither option helped EmulationStation recognize the NES30 PRO, but DisplayYesNo seemed to work better with jstest.


If this is the first time to pair a Bluetooth device after a fresh install of RetroPie 3.5, then you will see a number of Bluetooth security dialogs such as this one.

Edit udev

Some tutorials reported some success editing this file:

sudo nano /etc/udev/rules.d/10-local.rules

Add this line:

SUBSYSTEM=="input", ATTRS{name}=="8Bitdo NES30 Pro", MODE="0666", ENV{ID_INPUT_JOYSTICK}="1"

Make sure that the name is entered exactly as reported earlier: “8Bitdo NES30 Pro.”

Save and reboot the Raspberry Pi with sudo reboot. I saw no improvement.

No Gamepads Detected

After all of this effort, EmulationStation refused to detect the controller.


Still no success despite successful pairing during RetroPie 3.5 booting.

Powering on the controller in other modes did not help. However, pressing buttons on the NES30 Pro and then exiting with F4 showed error lines.


Report this to the SDL mailing list?

If this is an SDL issue, then it will require more effort to fix. SDL (Simple DirectMedia Layer) is often used with Linux to provide controller support. RetroPie-Setup recognized the controller fine. It was possible to navigate the menus using the NES30 PRO.


As long as the NES30 PRO is powered on, it should pair automatically when RetroPie boots. If not, it might take few retries by placing the NES30 PRO in pairing mode during boot time. We can see that the buttons work by running jstest and observing the button states as the buttons are pressed.

Something must be working behind the scenes because of the SDL errors:

"The key you just pressed is not recognized by SDL..."

(If joystick is not already installed)

sudo install joystick
jstest /dev/input/js0

In this case, js0 is the wireless Bluetooth NES30 PRO.


Hmm. It looks like the NES30 PRO is working fine after all. All buttons and joysticks respond instantly and without lag. The issue seems to be on the RetroPie 3.5/EmulationStation software side, not the hardware.


The quality and enjoyability of the NES30 Pro was certainly an unexpected surprise! As a retro USB controller, it is a superb match with RetroPie 3.5.

I never found a working solution when using Bluetooth, so this might require more time. Since NES30 PRO Bluetooth support is reported working with RetroPie 3.4, this might be a RetroPie issue, not a hardware issue.

With this in mind, if you desire a controller that puts the “retro” in RetroPie and you do not mind a wired USB connection, then you should be pleased with this fine little gem.

, , ,

  1. Leave a comment

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: