Some projects you build and move on from. Some follow you around for twenty-odd years. The NES USB controller is firmly in the second category.
The Story
I built the first one in 2002. A dead NES controller, a USB keyboard controller PCB, a small USB hub, and a thumb drive, all crammed inside the original shell. Plug it in and your computer sees a USB gamepad (via keyboard emulation) and a storage device. The original buttons work exactly as you would expect.
I posted the build on a personal blog and forgot about it. Then Hack-A-Day picked it up. Then Engadget. Then Gizmodo. My inbox exploded with requests to buy one.
I chose to open-source the full build guide instead. The people emailing me were builders; they deserved a guide, not a product listing. That decision still feels right.
Inside the Controller
The build is deceptively simple in concept. You map the contact matrix of a cheap USB keyboard PCB, cut it down to fit inside the NES shell, and wire each NES button to the right keyboard contact pair. A USB hub ties the keyboard controller and thumb drive together into a single USB connection. The original NES cable hole routes the USB cable out the back.
What It Meant
This was early days for the maker community as we know it now. Hack-A-Day was young. Instructables had just launched. The idea that you could document a build, post it online, and have a community form around it was still novel. The NES controller was one of the first times I understood what contributing back to that community really meant.
Not long after the guide went up, commercial versions started appearing. One seller even used my YouTube demo as their product video. Flattering and infuriating in equal measure.
What’s Next
The original build used a keyboard controller because that is what was available in 2002. Today, purpose-built USB encoder boards like the Arduino Pro Micro make the whole process cleaner and more flexible. A modern revisit could use an ATmega32U4 board for native USB HID gamepad support (no more keyboard emulation), Bluetooth for wireless play, and a LiPo battery to cut the cord entirely.
I have been thinking about building a Version 2: wireless, proper HID gamepad, maybe even a small OLED in the shell for battery status. The NES controller form factor is timeless and retro emulation is more popular than ever. If that build happens, you will find it here.
The Original Demo
Here’s the original video of the controller in action, from back when it was first posted:
In the meantime, the full original build guide is still live. If you build one, I would love to see it.