Home | Products | Order | Downloads | Components | Contact


Updating the Atmega16U2 on an Uno or Mega2560 using DFU

The ATmega16U2 chip on the 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.

1) Connect the Arduino to your computer with a USB cable

2) Reset the 16u2

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.


3) Install software firmware for Atmega16u2

4) Program the chip

Use  the programme FLIP to upload the hex file to your board. Use HEX file dualMOCO.hex

Select Atmega16u2 in Devices

1. Connect your target hardware to the host platform via USB

2. Select a device from the device list.

From the top menu bar, select the Device item. In the Device pull-down

menu, click the Select item. Select Atmega16u2 in Devices.

3. Select a communication medium.

From the top menu bar, select the Settings item. In the Settings pull-down

menu, click the Communication item. In the Communication cascading

menu, select a communication medium.

The medium setup dialog box pops up. Adjust the communication

parameters, and click Connect.

4. Select a HEX data file.

From the top menu bar, select the File item. In the File pull-down menu, click

the Load item.

Select a HEX file from the file browser. FLIP parses the HEX file and fills in

the edition buffer.

5. RUN the programme.


5) Using firmware

The dual MOCO/MIDI firmware is installed and  recognised as a USB Audio Driver

6) Unplug your board and plug it back in

If you wish to use the Arduino IDE you can place a jumper between pins 4 and 6 ( as shown in photo below) of the  ICSP connector for the USB interface. Then unplug your board and plug it back in. You can check this by looking in the serial port menu of the Arduino software. Your port should re-appear.




7) Write your program with Arduino IDE

Before connecting the Uno to a PC, install a jumper between pin4 and pin6 on ICSP connector for Mega8u2/16U2. With the jumper, Arduino-serial mode is initiated. You can use Arduino IDE to program mega328 on Uno.