Hello all,
For my most recent project, I'm going to be making a 3d printed macro keypad with the Arduino Uno r3. I researched the proper procedure to making the Arduino recognizable as a USB keyboard and tried to get my Uno r3 to enter DFU mode. However, when I short the two pin headers closest to the reset button, all it does is restart the Arduino, exactly how it would if you just pressed the reset button. Device manager does NOT appear, and it is still recognized as an Uno r3, not in DFU mode. If anyone has any idea why this is happening or how I can fix it, please respond. I will appreciate all the help that I can get.
P.S - Please don't tell me to get a Leonardo!! I've used Uno r3 in all of my projects and have a couple of spares, so I will not be buying a different board when it is physically possible with the ones that I have!!
YES, it is the ISP connector near the USB connector. It just also happens to be near the reset button on my board as well. Here is a picture of the type of board that I have. Hopefully that will help you to help me!
Many of the "Uno R3" clones are actually not clones, and use a CH340G or CP2102 serial interface chip; these cannot be put into DFU mode or otherwise reprogrammed. Only boards that use the 16u2 or 8u2 can be reprogrammed (on the plus side, it is harder to damage CH340G/CP2102 - the 16u2 is easily damaged by abuse of the power rails, and sometimes even stuff that should be supported - the symptom of failure in this case is that the USB device doesn't appear in device manager after having previously worked). Check the markings on the black chip near the USB port - if it's a 16u2, it should be reprogramable; if it is CH340G or CP2102, it cannot.
Well mine is a genuine Arduino UNO R3 and there is a 16u2 on the board but no matter what I do, it won't go into DFU mode.
"shorting" the pins on the icsp header just resets the uno but it won't enter DFU mode.
I've seen a whole bunch of threads with people having this problem, but either there is no reply which solved it or the topic starter replies with "I got it working", but doesn't tell how
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x00
Okay for everyone bumping into the same problem as me.
I eventually got the 16u2 flashed with the combined DFU and serial firmware using my NANO as ISP.
I've looked for the combined DFU and SERIAL bootloader in my arduino folder (in linux the is "/usr/share/arduino/hardware/arduino/firmwares/atmegaxxu2").
The filename is "Arduino-COMBINED-dfu-usbserial-atmega16u2-Uno-Rev3.hex"
I copied the file to my working directory and opened up a terminal.
Then I flashed the ArduinoISP to my chinese nano clone, hooked it up the the ICSP header next to the USB port. opened up the terminal and gave the following command: