which firmware to reflash Atmega16u2 on uno r3 and icsp trouble shooting?

Hello All,

I am trying to reflash the atmega16u2 on my uno rev 3. My 2 questions

  1. which firmware to use? a) arduino-1.0.4/hardware/arduino/firmwares/atmegaxxu2/Arduino-COMBINED-dfu-usbserial-atmega16u2-Uno-Rev3.hex b) arduino-1.0.4/hardware/arduino/firmwares/atmegaxxu2/arduino-usbserial/Arduino-usbserial-atmega16u2-Uno-Rev3.hex

The difference between the two.

  1. LED on pin 13 of the programmer uno remains high When the icsp is connected to the target atmega16u2 uno? avrdude reports invalid device signature. Is this normal or is the atmega16u2 bricked, any workaround?

When the sck line is disconnected the LED on pin 13 of progrommer goes low. Is this info helpful?

With thanks Mukhthar Ahmed

  1. That depends on which method you are using? a) If you use an AVR progrmmer via ICSP pins to the ATmega16U2.

b) If you are using FLIP software with the ATmega16U2 in DFU mode directly via USB cable.

  1. LED13 is driven by an OpAmp and has a floating input. So unless it is driven by the m328p it will most likely float high.

Invalid signature, could be because the 6-pin header is backwards. The pin-1 key on the 6-pin header cable faces the Arduino shield headers and can't fit properly. I had to shave off the key to fit. Yes, it could also be a bricked 16u2.

Thank you for the input hiduino 8)

'M trying to reflash the Atmega16u2 by ICSP method using another arduino uno as isp. As your suggestion I will try to flash arduino-1.0.4/hardware/arduino/firmwares/atmegaxxu2/Arduino-COMBINED-dfu-usbserial-atmega16u2-Uno-Rev3.hex.

Floating input on led 13 is clear. I will retry the upload and update, just hoping 16u2 is not bricked

With regards Mukhthar Ahmed


  1. When I connect the usb cable the system identifies as arduino
  2. Cannot get in dfu mode
  3. Get device signature invalid by connecting it with icsp method.

Any tips to debug further?

That is strange. So it shows up on your system, what platform? If it shows up as Arduino Uno R3 then that implies the 16U2 is at least running. Have you tried the loopback test?

For the Uno R3, to put the 16U2 in DFU mode, are you only briefly shorting the two pins on the ICSP header nearest the USB port?

Can you show more detailed output from the invalid signature? What are your avrdude command line options?