Flashing Arduino Uno Using Custom Firmware

This is an instructable to help you flash your Arduino Uno with a different firmware which will allow the Uno to be used in HID projects like Macro keyboard or joystick controller using UnoJoy etc.

Teacher Notes

Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.

Step 1: Requirements

A machine running Windows 7

Download ATMEL FLIP 3.4.7(JRE included)

Arduino Uno Rev 3

Type B USB cable

1xMale to Female Jumper cable

Hex Files:


-Original Firmware

Step 2: Coding

Upload whatever program you want to now only. You won't be able to upload the code later.

Step 3: Resetting Your Uno

Connect your Arduino to your computer

Open devices and printers

It will say Arduino Uno(COM [A number])

Now short the Arduino's GND and RESET pins(They are the top two pins in the upper right corner near pin 13).(Refer picture 3)

Note:You can even use a Male to Male jumper cable.

Open devices and printers(again) and the Arduino will show up as 16u2(my case)or 8u2.

Step 4: Flashing the Firmware

Launch FLIP(Picture 1)

Select your chip by pressing the "IC" button under the "File" option.(Picture 2)

It will in most cases land on your chip by itself but you can select it yourself too.(Picture 3)

Now click on the "USB" button right next to the "IC" button and select USB.(Picture 4 & 5)

Select" Open".

Select "Load HEX file" button(Red arrow pointing towards book)(Picture 6)

Select your hex file by navigating to the directory where you have saved it.(Picture 7)

Run the test.(Picture 8 and 9)

Press "Start Application"(Picture 10)

Step 5: Result

Unplug your Arduino and plug it back in after 10-15 seconds.

Open Devices and Printer and you will see an extra keyboard. That's your Arduino.

Step 6: Flashing Your Original Firmware

If you want to use your Arduino for another project follow Steps 3 & 4 but this time use the Arduino usb serial Rev 3 hex file.

After pressing "Start Application" keyboard will disappear from devices and printers and something like 16u2 will appear.Unplug your Arduino and wait for 10-15 seconds and plug it back in.It will appear as Arduino Uno with a COM port.

Now you can upload new programs.

Step 7: Problems

Most of the problems occur because you have not put your Arduino in reset state.

1)A problem might be the missing AtUsblib.dll or something like that that occurs when you press "Open" under the "USB" button in the FLIP tool.Fix by MDGrein:

This video helped me a ton.Thanks MDGrein.

2) Address out of range or verify device fail(while running the test) or HEX syntax error.These all are caused by a bad HEX file so please use the files given by me.

3)Another error might be that even after flashing the original firmware the Arduino still shows up as a keyboard.

Fix:Flash the original firmware again and after unplugging the Arduino wait for 10-15 seconds or even more.

4)"Can't open your device" error can be solved by putting your Arduino in Reset state

Microcontroller Contest

Participated in the
Microcontroller Contest



    • Indoor Lighting Contest

      Indoor Lighting Contest
    • Make It Fly Challenge

      Make It Fly Challenge
    • Growing Beyond Earth Maker Contest

      Growing Beyond Earth Maker Contest