Free tools Windows power users keep installed
One-click scans. No signup required.
Yes—but it is a DIY electronics project, not a USB cable conversion. Albert Gonzalez’s adapter uses an ATtiny85 to read the NES Classic Edition/Mini controller over its Wii accessory-style I²C interface, then presents it to a computer as a generic low-speed USB HID gamepad through the software-based V-USB stack.
That makes it an appealing way to reuse an NES Classic controller for emulation, but it still requires a connector, soldering, AVR programming, firmware, and troubleshooting. It is not guaranteed to work as a native Xbox/XInput controller in every modern Windows game.
After connecting the adapter, Outbyte Driver Updater can check the controller driver and install an official version if Windows needs one.
As an Amazon Associate I earn from qualifying purchases.
The Tool Desk
Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →What the adapter actually supports
The project is designed for the NES Classic Edition/Mini controller, whose connector is different from the seven-pin connector used by an original NES controller. It also supports the SNES Classic controller with the appropriate later firmware, but it should not be treated as a universal Wii-controller adapter without firmware and mapping changes.
The controller-side plug belongs to the Wii accessory connector family used by Wii Classic Controllers and Nunchuks. Physically, however, it is a proprietary and awkward-to-source connector—not USB and not a normal hobby header. The controller communicates using an I²C-based interface, so the adapter needs both a compatible female socket and firmware that understands the controller’s reports. Background information on the interface is available from NESdev.
#1 Best Overall
- Compatible with NES controllers, including joysticks (functionality may vary)
- Plugs directly into NES Classic Edition controller port
- 6-inch cable
How the ATtiny85 adapter works
NES Classic controller
│
Wii accessory-style connector
│
I²C data
│
ATtiny85
│
software USB through V-USB
│
generic HID gamepad
│
PC
The ATtiny85 performs two separate jobs:
- It polls the controller and interprets its button-state data over I²C.
- It emulates a low-speed USB HID device so the computer identifies the adapter as a gamepad.
The ATtiny85 does not have a native USB peripheral. V-USB generates USB signaling in software, which keeps the circuit small and inexpensive but makes clock accuracy, timing, descriptors, wiring, and firmware configuration important. The design uses separate microcontroller lines for I²C and USB, with the remaining resources allocated according to the selected firmware and optional status hardware.
Parts and tools
Minimum functional electronics
- ATtiny85 microcontroller;
- Compatible female Wii accessory or Classic Controller socket;
- USB connector and cable wiring;
- Two 68-ohm resistors;
- Two 1N4729-family Zener diodes, used in the USB circuitry specified by the selected revision;
- Power-decoupling components;
- Perfboard or a suitable custom PCB;
- Wire, solder, and an ISP programmer.
Useful build conveniences
- An ISP header or socketed ATtiny85;
- Status LED;
- Detachable USB cable;
- Strain relief;
- Enclosure;
- PCB rather than hand-wired perfboard for a repeatable build.
The connector may be the hardest item to source. Possible approaches include salvaging one from a Wii accessory extension cable, buying a compatible replacement socket, or using a breakout board. Do not assume that a visually similar “Wii connector” has the same keying or pinout. Verify the connector orientation and pinout before applying power.
Use the correct schematic revision
The project evolved from an initial protoboard design to later PCB revisions. The published project documents revision 3 hardware and links to a readable schematic PDF at Hackaday.io. Use the schematic revision that matches the firmware and PCB files you choose; pin assignments, USB connections, and optional hardware can differ between revisions.
At a block level, the circuit needs USB 5 V and ground, USB D+ and D−, the ATtiny85’s assigned USB pins, the I²C clock and data lines, controller power and ground, USB resistors and Zener protection, and programming connections. Pay particular attention to Zener orientation and to any shared pins.
If the USB or I²C connections overlap with the in-system programming interface, the programmer may need to be disconnected after flashing or isolated during normal operation. Leaving an ISP programmer attached can interfere with USB enumeration or controller communication.
Rank #2
- DUAL PORT ADAPTORS: Includes 2 adapters with dedicated port for nes controllers and dedicated port for snes/Super Famicom controllers, allowing you to use your controllers
- SNAC TECHNOLOGY INCLUDED: Integrated SNAC module with USB 3.0 male connector offering a native connection with very low latency, ideal for games requiring precision and perfect timing
- FULL COMPATIBILITY: Works with Terasic DE10-Nano card, MiSTer IO card and SNAC compatible cores (NES, SNES and others depending on configurations), immediate system recognition
- PLUG-AND-PLAY INSTALLATION: Simple driverless setup required, sturdy and durable construction for heavy use, providing a true feel to vintage consoles
- AUTHENTIC RETROGAMING EXPERIENCE: No noticeable latency thanks to SNAC connection, allows players to use their true Nintendo controllers for a premium gaming experience
Firmware and programming
The project uses the creator’s firmware, I²C routines, V-USB, and USB HID descriptors that describe a generic gamepad. The source repository is available at github.com/theisolinearchip/nesmini_usb_adapter.
Recommended Free Tools
A generic Arduino sketch is not enough. The correct firmware must include the controller initialization behavior, I²C handling, USB configuration, HID report descriptor, clock setup, and the pin definitions for the selected hardware revision. Before building, match the repository’s current source and programming instructions to the schematic you are using.
Build sequence
- Obtain an NES Classic controller and a compatible female Wii accessory connector.
- Assemble the ATtiny85, USB connector, resistors, Zener diodes, decoupling, and controller socket according to the selected schematic revision.
- Connect an ISP programmer to the ATtiny85.
- Compile or obtain the matching project firmware.
- Flash the ATtiny85 and apply the clock or fuse configuration required by that firmware.
- Disconnect or isolate programming connections if they share USB or controller pins.
- Connect the adapter to a PC over USB.
- Confirm that the operating system enumerates a generic HID gamepad.
- Open the operating system’s controller test panel or a gamepad-testing utility.
- Check every button and D-pad direction.
- Map the controls manually in your emulator or game.
- Only after testing works, add an enclosure and cable strain relief.
Exact compiler commands, firmware filenames, and fuse values should come from the repository files for the hardware revision being built. They should not be copied from an unrelated ATtiny85 V-USB project.
What the PC sees
The intended result is a generic USB HID gamepad. That is usually a good fit for emulators and applications that accept standard DirectInput-style controllers. It is not the same as a native Xbox/XInput device.
| Interface | Practical consequence |
|---|---|
| Generic HID/DirectInput | Generally suitable for emulator configuration and many PC applications. |
| XInput | Expected by some modern Windows games; this project should not be advertised as native XInput. |
| Steam Input or remapping software | May translate or remap the generic device when a game does not accept it directly. |
The creator investigated XInput, but the ATtiny85/V-USB implementation was not fully functional. Packet size, descriptors, and timing impose real constraints on this small software-USB design; see the creator’s XInput notes.
Rank #3
- Compatible with Nintendo Switch, PC via USB
- Connector type: micro usb
The hardware is intended to appear as a standard-style USB HID gamepad, but recognition, button numbering, emulator behavior, and game compatibility depend on the firmware descriptor and the operating system or application. Test the controller at the OS level before troubleshooting a particular game.
NES Classic versus SNES Classic firmware
The later project update added SNES Classic controller support. Because the SNES controller has more inputs, its USB report was changed to two bytes and a 12-button gamepad. Flash the firmware intended for the controller you are using; NES and SNES firmware should not be assumed interchangeable. The update is documented on Hackaday.io.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Troubleshooting by symptom
The PC does not detect the adapter
- Check USB 5 V and ground polarity.
- Check D+ and D− wiring.
- Verify Zener orientation and resistor values.
- Confirm the USB pull-up and other values required by the selected schematic.
- Check the ATtiny85 clock and fuse configuration.
- Confirm that the firmware’s USB pin definitions match the wiring.
- Disconnect the ISP programmer.
- Inspect for solder bridges, broken grounds, and shorts in the controller socket.
If the firmware and hardware permit it, test USB enumeration before connecting the controller. That separates a USB or firmware problem from a controller-side wiring problem.
The adapter is detected, but buttons do nothing
Check the controller’s power and ground, connector orientation, I²C clock and data wiring, and whether the firmware matches the NES or SNES controller. A damaged socket or an incorrect pinout can leave USB working while the controller remains invisible.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
Buttons are scrambled or the D-pad is reversed
This is often a report-order, connector-orientation, or mapping issue rather than a failed ATtiny85. Use the OS gamepad test panel first, then remap controls in the emulator. Confirm that the firmware is not expecting a different controller variant.
Rank #4
- Compatibility: This adapter cable is only compatible with Xbox Gen. 1 controller, to connect USB port on your PC/Laptop.
- Enhanced Gaming Experience: Transform your gaming sessions by seamlessly integrating your controller with your computer, enhancing precision and control.
- Wide Compatibility: Compatible with Windows XP/2000/ME/98. Drivers may be required (not included).
- Construction: Crafted from durable material, ensuring long-lasting performance and reliability.
- Package Includes: Each pack contains 2 adapter cables, providing a total length of approximately 54cm, giving you flexibility in your gaming setup.
It works in a tester but not in a game
That usually indicates an input-API mismatch. A game may require XInput even though it can see a generic HID device. Steam Input or another remapping layer may help, but no remapper guarantees compatibility with every title.
USB input is unstable
Inspect clock calibration, software-USB timing, decoupling, resistor and Zener values, solder joints, and the quality and length of the USB wiring. Improvised perfboard layouts and long unshielded connections can make a timing-sensitive V-USB design less reliable.
Build it or buy it?
| Option | Best for | Main drawback |
|---|---|---|
| ATtiny85 DIY adapter | Hobbyists who already own the controller and want a compact, customizable learning project. | Requires soldering, connector sourcing, firmware flashing, and debugging. |
| Commercial Wii Classic-to-USB adapter | Readers who want faster setup without writing or flashing firmware. | Availability, button mapping, and compatibility with a specific NES Classic controller can vary. |
| Conventional USB NES-style controller | Anyone who simply wants an inexpensive controller for emulation. | Does not reuse the NES Classic controller and quality varies by model. |
| Different microcontroller redesign | Builders who want easier development, native USB, or more expansion headroom. | Usually means a larger board, different firmware, and potentially higher cost. |
| Wireless retrofit | Builders prioritizing cable-free use. | Adds battery, radio, pairing, latency, and firmware complexity. |
Do not assume the DIY route is cheaper. For someone who already owns tools, an ATtiny85, connector, board, and consumables may be reasonable. The all-in cost rises when you add an ISP programmer, shipping, connector salvage or breakout hardware, PCB fabrication, and failed prototypes. A commercial adapter or ordinary USB controller is often the better value when setup speed matters.
Verdict
Gonzalez’s project is a genuine and technically interesting way to reuse an NES Classic controller on a PC. The ATtiny85 handles the conversion from I²C controller data to software-generated USB HID, and later work extends the idea to the SNES Classic controller and revised PCBs.
Build it if you enjoy AVR firmware, soldering, and debugging and are satisfied with a generic HID gamepad. Choose a commercial Wii Classic-to-USB adapter or a conventional USB NES-style controller if you want predictable plug-and-play operation, native XInput expectations, or the least setup work.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

