Can't enter DFU mode on Arduino Uno (ATMEGA16u2)

Hi everyone,

I followed the tutorial link below to enter DFU mode and update the ATMEGA16u2 firmware.
I want to follow the tutorial below to enter DFU mode and update the ATMEGA16u2 firmware. When I connect the two pins, I can't enter DFU mode.

Can anyone give me some help?

https://support.arduino.cc/hc/en-us/articles/4410804625682-Set-the-Atmega16U2-8U2-chip-on-UNO-Rev3-or-earlier-and-Mega-boards-to-DFU-mode

@harry7788
Is this a genuine Arduino Uno R3?
Many clones do not have DFU mode.
The only way to program it is via ICSP

Hi @jim-p ,

Is this a genuine Arduino Uno R3? ==> Yes

How do I program it via ICSP? Could you provide some instructions?

Thank you.

That's strange because genuine R3s should have DFU mode.

First you will need a ICSP programmer or another Arduino that you can use as a programmer.

However, I'm hesitant to give you specific instructions as I have never programmed the 16U2 IC.

The main question i have is 'because ??'

Is this only for the clones ? the tutorial appears to show that only the 16U2 only needs a reset to enter DFU mode and anyway it has native USB.

Neither have i, there were some instructions on how to modify an UNO to be used as a USB-MIDI device, which got me thinking about doing it, but the link has expired probably ages ago.

Can you show us a picture of it, just to confirm.

I simple google showed me a link to this , which actually provides the option to use 16u2 in a dual mode setup.

I want to use the ATMega16u2 to practice USB device development (drivers, firmware, etc.).

You should buy a genuine Arduino UNO R3.

So, can I still program it using ICSP?
The USB-to-serial chip is an ATMEGA16u2, not one with a part starting with CHxx.

I have no way of knowing that. Try it and see.

Yes

So you do not not want to program it with the Arduino 16U2 DFU/USB-Serial software?

Hmm, even if that is a genuine 16u2 chip, it seems to have fewer connected tracks than shown on the photo of the UNO R3 (or even R2) on the An overview of different UNO boards page on the Arduino website. For example, are those two header pins to be shorted actually connected to the 16u2? I have my doubts, although its hard to tell just from the photos.

But why not try using a 32u4 based board. Make life easier for yourself.

Unless you can see all of the layers, i would say it's impossible to tell from any picture. A DMM could be able to confirm that the connections to the 16U2 are actually there.

Because I want to use the ATMega16U2 to emulate other USB classes (HID, Mass Storage, CDC, etc.) and then use some software to analyze the contents of USB packets.

So I need to update its firmware.

Cause I only have an Arduino Uno on hand.

The link in

Shows you how to upload a pre-compiler hex file (be it a specific one)

What programmer do you have?
If you don't have one, you might consider buying a USBasp programmer

Thank you guys for help.

I’ve borrow an Arduino Mega with Hoodloader2 flashed, and I am trying to achieve my goal with this.

I suggest you use AVRDUDESS to upload the hex file, so install it first

Connect like this

Then upload the ArduinoISP.ino to the Mega.
Start AVRDUDESS
Connect to the Mega port.
Set MCU to Atmega16u2
Set programmer to STK500v1
Select Flash to Write
Select your hex file
Click on program