Blog Home

Arduino Uno as JoystickArduino Uno as JoystickArduino Uno as Joystick

dcuartiellesOctober 24th, 2010

Arduino Forum User [ant.b] has shared his personal Arduino UNO hack with other LUFA firmwares. He tries to turn an Arduino UNO in a Joystick, uploading a new firmware on the 8u2, and summarize it in a very useful step by step guide.

As Massimo posted some time ago, Arduino Uno has some radical improvements compairing to the previous Arduino boards:

We replaced the aging FTDI chipset with a custom made usb-serial converter built with an Atmel ATmega8U2 this provides lower latency and doesn’t require to install any drivers on mac and linux (on windows all you need is a simple .inf file) more advanced users will be able to reprogram the USB chip to make the board show up as a variety of USB devices (Keyboards, Mice, Joysticks, MIDI etc)

[ant.b] splits the process in two steps. First he recompiles the ATmega8u2 just changing the line in Descriptors.c, to check whether he effectively changed anything inside the chip (but without damaging/changing anything on the board itself). Then:

This is the next step : how to make a joytick emulator with the arduino-uno.

First step
Be sure to be able to upload the initial firwmare arduino-serial: we need this firmware to upload the Atmega328.

How it works
The Atmega328 sends to 8u2 a byte on serial communication that represents the state of the joystick.

Point of attention
It’s important to load first the atmega328 program and then the 8u2 firmware.
Once the firmware of 8u2 is upload with joystick program, atmega328 can’t be loaded.
In order to modify atmega328 program, the original firmware of 8u2 need to be re-loaded.

Read carefully the all thread, which automagically became the first user-generated tutorial in the programming section of the Arduino Uno page.

This is the first step to turn new generation Arduinos in a long list of devices. Looking forward to more braves in our newborn “LUFA Hacks” category.

Via [Arduino Forum]