Hacking.DFUProgramming8U2 History

Hide minor edits - Show changes to markup

July 31, 2014, at 12:26 PM by Roberto Guido - minor note about Windows 7. Thanks Tom Hundt for notice
Changed lines 11-12 from:
  • 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.
to:
  • Windows (before 7): 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 ("Details" in Windows 7). In one of the properties, you should the VID, PID, and the revision number.
November 19, 2013, at 01:16 PM by Scott Fitzgerald -
Changed lines 1-6 from:

Updating the Atmega8U2 on an Uno or Mega2560 using DFU

The ATmega8U2 chip on your Arduino board acts as a bridge between the computer's USB port and the main processor's serial port. It runs software called firmware (so named because you couldn't change it once it had been programmed in the chip) that can be updated through a special usb protocol called DFU (Device Firmware Update).

Here's how to update the firmware on your 8u2 in a few steps.

to:

Updating the Atmega8U2 and 16U2 on an Uno or Mega2560 using DFU

The ATmega16U2 chip on your Arduino board acts as a bridge between the computer's USB port and the main processor's serial port. Previous versions of the Uno and Mega2560 had an Atmega8U2. It runs software called firmware (so named because you couldn't change it once it had been programmed in the chip) that can be updated through a special usb protocol called DFU (Device Firmware Update).

Here's how to update the firmware on your 16u2 in a few steps.

Changed lines 13-16 from:
  • 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.

to:
  • 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 firmware version is listed as "version" (e.g. 0.01 for rev. 0001).

If your board has rev. 0001 of the firmware on it, there's no need to upgrade it.

Changed lines 19-20 from:

This is the software that will update the code on the 8u2

to:

This is the software that will update the code :

Changed line 39 from:

Download updated firmware for the 8U2

to:

Download updated firmware

Changed lines 87-88 from:

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.

to:

The 8U2 and 16u2'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.

November 19, 2013, at 12:51 PM by Scott Fitzgerald -
Changed lines 89-90 from:
to:
August 01, 2013, at 03:41 PM by Roberto Guido - corrected typo on installable package name. Thanks Jonathan Müller for feedback
Changed lines 31-32 from:

sudo apt-get install dfu-programme

to:

sudo apt-get install dfu-programmer

April 12, 2013, at 03:14 PM by Roberto Guido - corrected link to atmel flip programmer, thanks Tero Korpela for feedback
Changed lines 21-22 from:

Windows: Download Atmel's flip programmer from here http://www.atmel.com/dyn/products/tools_card.asp?tool_id=3886

to:

Windows: Download Atmel's flip programmer from here http://www.atmel.com/tools/flip.aspx

July 04, 2011, at 05:31 AM by David A. Mellis - adding instructions for checking the current 8u2 firmware version.
Added lines 7-16:

Check whether you need to update the firmware

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.

February 10, 2011, at 11:19 PM by Scott Fitzgerald -
Changed lines 73-79 from:

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.

to:

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.

Using other firmware

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.

MIDI Note Player using the MIDI firmware

February 08, 2011, at 02:10 PM by Scott Fitzgerald - Minor punctuation fixes
Changed lines 17-18 from:

note: if you've never used sudo before, it will ask for your password. Use the password you login to your Mac with. sudo allows you to run commands as the administrator of the computer

to:

NB: If you've never used sudo before, it will ask for your password. Use the password you login to your Mac with. sudo allows you to run commands as the administrator of the computer

Changed line 73 from:

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.

to:

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.

February 08, 2011, at 11:15 AM by Tom Igoe -
Added lines 17-18:

note: if you've never used sudo before, it will ask for your password. Use the password you login to your Mac with. sudo allows you to run commands as the administrator of the computer

Added line 55:
Changed lines 59-60 from:

@sudo dfu-programmer at90usb82 erase@@

to:

sudo dfu-programmer at90usb82 erase

February 08, 2011, at 11:13 AM by Tom Igoe -
Changed lines 39-40 from:
to:

Just like you do whenever you're programming it.

Changed lines 44-45 from:
to:
February 08, 2011, at 11:11 AM by Tom Igoe -
Changed lines 28-32 from:

The latest version is here https://github.com/arduino/Arduino/tree/master/hardware/arduino/firmwares (choose the version that is suitable for your board)

The firmware is also located with the Arduino software in the /hardware/arduino/firmwares/arduino-usbserial folder. On OSX, right or command-click on the Arduino application and select "show package contents" to find this folder

to:

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 arduino-usbserial/Arduino-usbserial-uno.hex or arduino-usbserial/Arduino-usbserial-mega.hex

The firmware is also located with the Arduino software in the /hardware/arduino/firmwares/arduino-usbserial folder. On OSX, right-click or command-click on the Arduino application and select "show package contents" to find this folder.

February 08, 2011, at 11:09 AM by Tom Igoe -
Added line 18:
February 08, 2011, at 11:09 AM by Tom Igoe -
Changed lines 24-25 from:
 depending on your distribution
to:

depending on your distribution

February 08, 2011, at 11:09 AM by Tom Igoe -
Changed lines 17-18 from:

Linux: from a command line type "sudo apt-get install dfu-programmer" or "sudo aptitude install dfu-programmer" depending on your distribution

to:

Linux: from a command line type sudo apt-get install dfu-programme

or

sudo aptitude install dfu-programmer

 depending on your distribution
February 08, 2011, at 11:08 AM by Tom Igoe -
Added line 10:
February 08, 2011, at 11:07 AM by Tom Igoe -
Changed lines 27-28 from:
to:
Changed lines 34-35 from:
to:
February 08, 2011, at 11:06 AM by Tom Igoe -
Added lines 34-35:
February 08, 2011, at 11:05 AM by Tom Igoe -
Changed lines 32-33 from:
 Do this by briefly bridging 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:

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.

Changed lines 44-49 from:
sudo dfu-programmer at90usb82 erase
sudo dfu-programmer at90usb82 flash Arduino-usbserial-uno.hex
sudo dfu-programmer at90usb82 reset
to:

@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

Finally, type

sudo dfu-programmer at90usb82 reset

Changed line 57 from:

your board should be ready and up to date

to:

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.

February 08, 2011, at 11:02 AM by Tom Igoe -
Changed lines 3-33 from:

The ATmega8u2 chip on your Arduino board acts as a bridge between the computer's USB port and the main processor's serial port. It runs software called firmware (so named because you couldn't change it once it had been programmed in the chip) that can be updated to either fix the inevitable bugs or to provide new functionality. This is possible through a special usb protocol called DFU (Device Firmware Update)

We're going to learn how to update the firmware on your 8u2 in a few steps.

Download a dfu programmer, 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" Linux: from a command line type "sudo apt-get install dfu-programmer" or "sudo aptitude install dfu-programmer" depending on your distribution

Download updated firmware for the 8u2

the latest version is here https://github.com/arduino/Arduino/tree/master/hardware/arduino/firmwares (choose the version that is suitable for your board) The firmware is also located with the Arduino software in the /hardware/arduino/firmwares/arduino-usbserial folder (On OSX, right or command-click on the Arduino application and select "show package contents" to find this folder)

If your board is NOT an Arduino UNO SMD you'll need to solder a 10k resistor (Brown-black-orange) at the back of your board in the same location as this picture.

Connect the arduino to your computer with a usb cable

Reset the 8u2 by briefly bridging the reset pin with the ground

The pins are located near the USB connector. In this picture you can see where these pins are located

the TX and RX leds should light up to indicate that the 8u2 has entered DFU mode (NB: This is not always the case) To verify you have reset the 8u2 chip: Mac and Linus type "ls /dev/tty.*", your board should no longer appear in the output Windows ?????

to:

The ATmega8U2 chip on your Arduino board acts as a bridge between the computer's USB port and the main processor's serial port. It runs software called firmware (so named because you couldn't change it once it had been programmed in the chip) that can be updated through a special usb protocol called DFU (Device Firmware Update).

Here's how to update the firmware on your 8u2 in a few steps.

Download a DFU Programmer

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

Linux: from a command line type "sudo apt-get install dfu-programmer" or "sudo aptitude install dfu-programmer" depending on your distribution

Download updated firmware for the 8U2

The latest version is here https://github.com/arduino/Arduino/tree/master/hardware/arduino/firmwares (choose the version that is suitable for your board)

The firmware is also located with the Arduino software in the /hardware/arduino/firmwares/arduino-usbserial folder. On OSX, right or command-click on the Arduino application and select "show package contents" to find this folder

If your board is NOT an Arduino UNO SMD

You'll need to solder a 10k resistor (Brown-black-orange) at the back of your board in the same location as this picture.

Connect the Arduino to your computer with a usb cable

Reset the 8u2

 Do this by briefly bridging 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.

Changed lines 37-39 from:

Windows: use flip to upload the hex file to your board

Mac & Linux: from a terminal window, cd into the folder with the firmware.

to:

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 cd Downloads/

Added line 44:

[@

Changed lines 48-49 from:
to:

@]

February 08, 2011, at 10:51 AM by Tom Igoe -
Changed line 8 from:

1. Download a dfu programmer, this is the software that will update the code on the 8u2

to:

Download a dfu programmer, this is the software that will update the code on the 8u2

Changed line 14 from:

2. Download updated firmware for the 8u2

to:

Download updated firmware for the 8u2

Changed lines 19-26 from:

3. If your board is NOT an Arduino UNO SMD you'll need to solder a 10k resistor (Brown-black-orange) at the back of your board in the same location as this picture.

3. Connect the arduino to your computer with a usb cable

4. reset the 8u2 by briefly bridging the reset pin with the ground

to:

If your board is NOT an Arduino UNO SMD you'll need to solder a 10k resistor (Brown-black-orange) at the back of your board in the same location as this picture.

Connect the arduino to your computer with a usb cable

Reset the 8u2 by briefly bridging the reset pin with the ground

Changed line 34 from:

5. program the chip

to:

Program the chip

Changed lines 43-45 from:

6. unplug your board and plug it back in

7. your board should be ready and up to date

to:

Unplug your board and plug it back in

your board should be ready and up to date

February 08, 2011, at 10:49 AM by Tom Igoe -
Added lines 1-45:

Updating the Atmega8U2 on an Uno or Mega2560 using DFU

The ATmega8u2 chip on your Arduino board acts as a bridge between the computer's USB port and the main processor's serial port. It runs software called firmware (so named because you couldn't change it once it had been programmed in the chip) that can be updated to either fix the inevitable bugs or to provide new functionality. This is possible through a special usb protocol called DFU (Device Firmware Update)

We're going to learn how to update the firmware on your 8u2 in a few steps.

1. Download a dfu programmer, 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" Linux: from a command line type "sudo apt-get install dfu-programmer" or "sudo aptitude install dfu-programmer" depending on your distribution

2. Download updated firmware for the 8u2 the latest version is here https://github.com/arduino/Arduino/tree/master/hardware/arduino/firmwares (choose the version that is suitable for your board) The firmware is also located with the Arduino software in the /hardware/arduino/firmwares/arduino-usbserial folder (On OSX, right or command-click on the Arduino application and select "show package contents" to find this folder)

3. If your board is NOT an Arduino UNO SMD you'll need to solder a 10k resistor (Brown-black-orange) at the back of your board in the same location as this picture.

3. Connect the arduino to your computer with a usb cable

4. reset the 8u2 by briefly bridging the reset pin with the ground

The pins are located near the USB connector. In this picture you can see where these pins are located

the TX and RX leds should light up to indicate that the 8u2 has entered DFU mode (NB: This is not always the case) To verify you have reset the 8u2 chip: Mac and Linus type "ls /dev/tty.*", your board should no longer appear in the output Windows ?????

5. program the chip Windows: use flip to upload the hex file to your board

Mac & Linux: from a terminal window, cd into the folder with the firmware. Once there, type: sudo dfu-programmer at90usb82 erase sudo dfu-programmer at90usb82 flash Arduino-usbserial-uno.hex sudo dfu-programmer at90usb82 reset

6. unplug your board and plug it back in

7. your board should be ready and up to date

Share