The Arduino Uno and Mega 2560 have been shipping with the updated (rev. 0001) version of the ATmega8U2 firmware since around May, 2011. To check which version of the firmware is on your board, connect it to your computer and follow the directions for your operating system:
- Windows: locate the board in the Device Manager (it should be under Ports), right click on it and select "Properties"; in the resulting dialog, click on "driver details" in the "driver" tab. In one the properties, you should the VID, PID, and the revision number.
- Mac OS X: run the System Profiler application (e.g. by selecting "About This Mac" from the Apple menu and clicking the "More Info..." button); go to the USB sheet and click on the item for the Arduino board. The 8U2 firmware version is listed as "version" (e.g. 0.01 for rev. 0001).
If your board has rev. 0001 of the 8U2 firmware on it, there's no need to upgrade it.
This is the software that will update the code on the 8u2
Windows: Download Atmel's flip programmer from here http://www.atmel.com/dyn/products/tools_card.asp?tool_id=3886
Mac: Install MacPorts following these instructions: http://www.macports.org/install.php#pkg Once MacPorts is installed, in a Terminal window, type:
sudo port install dfu-programmer
NB: If you've never used
before, it will ask for your password. Use the password you login to your Mac with.
allows you to run commands as the administrator of the computer
Linux: from a command line type
sudo apt-get install dfu-programme
sudo aptitude install dfu-programmer
depending on your distribution.
The latest version is here https://github.com/arduino/Arduino/tree/master/hardware/arduino/firmwares Choose the version that is suitable for your board, either
The firmware is also located with the Arduino software in the
folder. On OSX, right-click or command-click on the Arduino application and select "show package contents" to find this folder.
You'll need to solder a 10k resistor (Brown-black-orange) at the back of your board in the same location as this picture.
Just like you do whenever you're programming it.
To do this, briefly bridge the reset pin with the ground. The pins are located near the USB connector, as shown in this picture. Connect them briefly with a piece of wire.
To verify you have reset the 8u2 chip: In the Arduino programming environment, check the list of serial ports. The serial port for your board should no longer show up.
Windows: Use flip to upload the hex file to your board.
Mac & Linux: From a terminal window, change directories to get into the folder with the firmware. If you saved the firmware in your downloads folder on OSX, then you might type:
Once there, type:
sudo dfu-programmer at90usb82 erase
When this command is done and you get a command prompt again, type:
sudo dfu-programmer at90usb82 flash Arduino-usbserial-uno.hex
sudo dfu-programmer at90usb82 reset
Your board should be ready and up to date. You can check this by looking in the serial port menu of the Arduino software. Your port should re-appear.
The 8U2's flexibility allows for other firmware so your board can appear as a different USB device (MIDI controller, HID, etc.). See the tutorials below for additional information.