Arduino Project: Super Nintendo Entertainment System (SNES) Controller/Gamepad to Windows/Linux (RetroPie) USB

Posted: 17/07/2016 in Arduino

Improve your retro gaming emulation experience by using the systems original controller

This post provides instructions so you can bring back to life your old controller with native plug-and-play support for Microsoft Windows 7+ and Linux/RetroPie using an ATmega32u4 based Arduino.

File 12-07-2016, 18 38 47
File 12-07-2016, 18 39 06

Ever since Arduino’s started to appear with the ATmega32u4 chip which allows the creation of USB devices I’ve wanted to create adapters to reuse my old game controllers on modern hardware. Unfortunately the official libraries didn’t support joystick/gamepads only keyboard and mouse. Thankfully Matthew Heironimus started a project to address this exact situation with his Arduino Joystick Library

Using Matthew’s library and the following sketch you can easily create an adapter for your controller following these steps

1. Get a suitable connector. For this project you’ll need to search (eBay/Aliexpress) for a SNES Controller Extension. Cut into the cable and expose the wires, this is the one I used
2. Find the pinout for your controller. PINOUTS.RU is a good source, for example here is the one for the SNES Controller Use a multimeters continuity test to quickly map the pins to wires.
3. Wire the connector to the Arduino. I’ve included the pin information in the Arduino sketch, so for example SNES proprietary connector Pin1 goes to Arduino +5v.
4. Install Matthew’s library from See for more information.
5. Upload the Arduino Sketch and then connect your controller.
6. Test. Windows’s users should be able to see the controller appear as a gamepad which will be named after your Arduino board, for example.
Windows provides a helpful test program on the properties page of the controller
7. Play. For SNES Emulation I recommend Snes9x

Thanks for reading and be sure to check out my other controller conversions.

Kind Regards, jfrmilner

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 )

Google photo

You are commenting using your Google 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 )

Connecting to %s