Plug two N64 controllers to an Arduino and turn your Arduino in a USB HID joystick! Play your favourite games on the pc with the best controller ever!
D C Other
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.



2012 Michele Perla

This Arduino application uses the two ATmega on your Arduino to turn it into
an N64 to USB joystick for two controllers; the ATmega328p is used to read 
the status of the two N64 controlers and write it via SPI to the ATmega16u2,
which enumerates as an HID joystick with 4 axis and 36 buttons, reads the 
status of the controllers from the ATmega328p and writes that in a USB packet.

To install it, first plug your Arduino to the USB port, and program it with 
the N64_To_USB.ino sketch in the N64_To_USB folder; plug +3.3v and GND 
from your Arduino to the N64 controllers, plug the DATA line of one controller 
to DIGITAL PIN 2, and the other to DIGITAL PIN 3; then put your Arduino in DFU 
mode (short the two ISP pins for RESET and GND of the ATmega16u2 ISP port, or 
check for further information about it on Google), and program the ATmega16u2 
with the Arduino-joystick.hex file in the N64_To_USB_ATmega16u2 folder. 
After that reset your Arduino and it will no longer enumerate as an Arduino, 
but as Arduino Joystick. Congratulations! Go configure your N64 emulator now!!!

NOTE:Only works with Arduino UNO, or with any Arduino with an Atmega8/16u2 as a
USB transceiver.

The Arduino sketch which reads the status of the N64 controllers is written on
code made by Andrew Brown, Peter Den Hartog; the hex file for the Atmega16u2
is a modification of the Arduino Joystick code made by Darran, using LUFA;

Hope you like it!

Darran original Arduino Joystick:

Andrew Brown instructable: