Hello,
the question has been asked, but I did not find an answer . . .
When connecting the usb to a pc, the windows device manager shows the device as "Arduino Uno (COM11)", which is ok.
Then I reset the 16u2 by bridging the left 2 pins of the ICSP, led L goes dark and the device entry is gone.
But: as soon as I release the reset "Arduino Uno (COM11)" is there again.
I removed the main avr from the socket to make sure that no sketch is working with the serial: no change.
I grounded the capacitor above the "RESET EN" bridge (as recommended in another thread): no change.
How the hell do I put this thing into dfu mode ??????
Is the Uno otherwise working fine and you can upload sketches and you're just looking to experiment, or are you trying to restore the firmware on the 16U2 because the Uno is not working?
If you've got another Arduino I suggest don't bother with DFU. Use one of the Arduinos as an ISP programmer using the Example sketch ArduinoISP and upload to the 16U2 using the ICSP header. You can upload using avrdude. Once you upload the ArduinoISP sketch onto the programmer Arduino, connect a 10uF capacitor across Reset and GND on the programmer Arduino to disable automatic reset. The negative or striped lead on the capacitor goes to GND.
The wiring for ISP programming is shown here:
And I recommend this method for restoring the firmware to normal if you need to:
If you have a favorite USB joystick hex file, you could use the same method described in the Instructable to upload it using the Burn Bootloader function if you make a boards.txt file entry for the hex file.
Since you reset the processor and the COM11 entry goes away from device manager and comes back, that indicates reset is successful and using the ICSP header next to the USB port. The current fuse settings of the 16U2 will affect whether or not it runs the DFU bootloader upon reset. ISP programming should work fine. avrdude command line won't be bad. If you set the IDE preferences for show verbose output during upload, then do the restore procedure I gave the link do, the avrdude commands will show and all you need to do is copy and paste, replacing the path and name of the hex file. Or don't use the command line at all and use a boards.txt entry with the burn bootloader function.
Ok, the fuse settings might be the reason for my problem.
Thanks for your kind help.
The reason, why I did not try the ISP programming immediately is, that these 2 Unos were in very "flat" applications, where I had to cut the ISP connectors, in order to prevent a short to the neighbouring board.
I will have to resolder the connectors, no problem . . .
There was no bootloader in the 16u2, no bootloader -> no dfu mode.
I flashed a bootloader using a second uno. Then I was able to upload the desired .hex file
using atmel flip: very easy, very quick.
There was no bootloader in the 16u2, no bootloader -> no dfu mode.
I flashed a bootloader using a second uno. Then I was able to upload the desired .hex file
using atmel flip: very easy, very quick.
Thanks for your help and understanding.
I'm trying to do exactly what you're doing.
How did you upload a bootloader into the 16u2? Doesn't the bootloader go into the MCU?
I have the exact same problem over here.
Real UNO R3 but no matterwhat I try it's not going into DFU mode.
I need this for a project I am working on where I need to build a macro USB keyboard.....anyone here can help?