Snes Controller Usb Adapter

About the project

Use an Arduino and HID descriptor to turn SNES controllers into PC gamepads.

Project info

Difficulty: Moderate

Platforms: AdafruitArduino

Estimated time: 1 day

License: GNU General Public License, version 3 or later (GPL3+)

Items used in this project

Hardware components

Super Nintendo Controller Port Super Nintendo Controller Port I used eBay to get them from an old Nintendo, but a viewer found these: (Affiliated link) x 4
Resistor 1k ohm Resistor 1k ohm Find at: (Affiliated link) x 9
LED (generic) LED (generic) Find at: (Affiliated link) x 5
Adafruit Pro Trinket – 5V Adafruit Pro Trinket – 5V Find at: (Affiliated link) x 1
Abs, Instrument 3.6x2.6x1.1" Black Abs, Instrument 3.6x2.6x1.1" Black Find at: (Affiliated link) x 1
Perfboard Perfboard Find at: (Affiliated link) x 1
Short USB Cable Short USB Cable Find at: (Affiliated link) x 1
LED Mounting Holders LED Mounting Holders Find at: (Affiliated link) x 1
Mounting Standoffs Mounting Standoffs Find at: (Affiliated link) x 1
Header Sockets Header Sockets Find at: (Affiliated link) x 1

View all

Hand tools and fabrication machines

Soldering iron Soldering iron Find at: (Affiliated link) x 1
Wood Burning Iron Wood Burning Iron I used it with hot knife tips to cut square holes. Find at: (Affiliated link) x 1
Hot Knife Tips (For wood burning iron) Hot Knife Tips (For wood burning iron) Find at: (Affiliated link) x 1
Nintendo Security Tool Nintendo Security Tool Used if disassembling an old Nintendo. Find at: (Affiliated link) x 1
Drill Drill x 1


I wanted to use my Super Nintendo controllers on my PC - to play only legally purchased games, of course! So I started doing some research to figure out the best way to accomplish it. Turns out it's an Arduino implementing a custom (nearly SPI) protocol and an HID descriptor.

You can build this project fairly easily by grabbing the code from the repo, uploading it, and wiring up your microcontroller as shown in the schematic. There are a couple of hurdles, though. The biggest one is getting the Super Nintendo controller ports, which I did by buying a couple broken Nintendos and disassembling them. You could also cut the end off a Controller and hardwire it if you don't mind losing the controller for good (ouch). I included a link in the parts list for a potential solution that is currently on the market. 

To put it all together, I mounted it in a pre-made enclosure. I mounted the PCB with nylon standoffs+screws, and I mounted the controller ports by cutting holes just the right size and bracing them with corner brackets, which are screwed in from the outside.

I also decided to make a video about the whole process, so if anything is unclear, it may help! It also includes a detailed explanation of the SNES controller protocol, how the code works, and an overview of the HID descriptor. It becomes a much more advanced project if you decide to customize or improve the code, or if you want to have a solid understanding of it.

See the whole process here!

Schematics, diagrams and documents


How to wire your ProTrinket and the SNES controller ports.


SNES Controller-USB Adapter Code

Put the Pro_Trinket_USB_Gamepad library in your Arduino libraries directory, then upload the .ino to your Arduino board (based on an Adafruit Pro-trinket).


Photo of AllPartsCombined


I like to make stuff and make videos about it.


Leave your feedback...