Intro: 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.
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
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 "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