Arduino Uno R3 DFU mode

Hi guys,

Not sure if I'm missing something here. I'm shorting the pins as marked in the intructions on the Arduino site to try and put the Uno R3 into DFU mode. All the short succeeds in doing is restarting/reseting the board and it continues to show up as Arduino Uno under Devices in the Control Panel.

Also, when I try to open a USB connection to it using Flip, it comes back with "Could not open USB device".

What I've found seems to tell me that my unit is not in DFU mode. If that is indeed the case, are there any alternate ways of activating since shorting the pins did not work...

If that's not the case, would someone be able to shed some light on any steps I might have missed?

Thanks in advance.

I'm shorting the pins as marked in the intructions on the Arduino site to try and put the Uno R3 into DFU mode

where are the links.

no one able to offer any insight?

no one able to assist?

It could be one of several things.

1) The wrong drivers are installed for the 16U2. You can try uninstalling the USB driver from DeviceManager. And let it re-install as Atmel 16U2.

2) Otherwise, the 16U2 may have lost it's DFU bootloader. In this case you will need to re-program it from the ISP header next to it. You will need another ISP programmer to do this. Arduino as ISP would work if you had another Uno board.

3) The 16U2 is damaged. You will need smd hot re-work soldering skills to replace it.

hello hiduino,

thanks for trying to help. I've changed the driver as you suggested and the messages remain the same. I've also re-programmed it with another arduino via "Arduino as ISP" and "Burn Bootloader" commands in the Arduino IDE but that hasn't seemed to help either.

Would I be able to programme the Uno as I regularly do if the 16U2 is damaged? I have no difficulty programming the unit, just with putting it into DFU mode so that I can try flashing other firmware...

If the 16U2 is damaged, you should be able to still program the Uno from the ISP header using the Arduino as ISP. Use the Upload Using Programmer option from the IDE.

However, the 16U2 might still be okay. You can try and re-program the 16U2 you would need to do that from command line, not from the IDE. You will need to use your Arduino as ISP and connect up to the ICSP header next to the 16U2 chip.

You will need to copy the hex file from ..\arduino-1.0.5-r2\hardware\arduino\firmwares\atmegaxxu2\Arduino-COMBINED-dfu-usbserial-atmega16u2-Uno-Rev3.hex to the ..\arduino-1.0.5-r2\hardware\tools\avr\etc folder.

From the command line you need to be in the Arduino install path, ..\arduino-1.0.5-r2\hardware\tools\avr\etc; (note: substitute you own install directory path)

Then run these two command to burn the 16U2 fuses and upload the 16U2 flash. (note: substitute your COM port you are using for the Arduino as ISP.)

Microsoft Windows
(C) Copyright 1985-2001 Microsoft Corp.

C:\> cd "C:\Arduino\arduino-1.0.5-r2\hardware\tools\avr\etc"

C:\Arduino\arduino-1.0.5-r2\hardware\tools\avr\etc>..\bin\avrdude -cavrisp -PCOM6 -b19200 -pm16U2 -v -U lfuse:w:0xEF:m  hfuse:w:0xD9:m  efuse:w:0xF4:m

C:\Arduino\arduino-1.0.5-r2\hardware\tools\avr\etc>..\bin\avrdude -cavrisp -PCOM6 -b19200 -pm16U2 -v -U flash:w:Arduino-COMBINED-dfu-usbserial-atmega16u2-Uno-Rev3.hex:i

Hopefully this should recover the 16U2 on the Uno R3.

Hi Hiduino,

I have to say a huge thank you. this has at last given me access to DFU mode. Thank you so much for your assistance and patience.