Arduino won't upload

spcomputing:
Yup, that is the one. Okay, try this. Download FLIP and install:

http://www.atmel.com/tools/FLIP.aspx

Leave the software closed after install and plug in the Uno and short the Reset and Gnd pins on the Atmega8u2/16u2:

This should cause a new device to be found in Windows. Manually navigate the wizard to Program Files\ATMEL\FLIP 3.4.7\usb for the .INF file for your DFU. After the installation is complete, open FLIP and then post back here which driver installed (Atmega16u2 or Atmega8u2).

I have the R3 version of the Uno, so I am not sure where to connect the reset to the ground, because your pic is a bit different from my Arduino.
Will it also work if I just connect the reset on the bottom of the board (next to the pin where it says 3.3V), to a ground?

There should be a 3x2 header in that location next to the USB socket.

spcomputing:
There should be a 3x2 header in that location next to the USB socket.

Right, found it. But I'm having a bit of trouble with getting it to work, what do you mean by navigate the wizard? Tell it to look there for drivers? Nothing pops up when I plug the Arduino in, the only thing it does is make the sound it always makes when you attach a device.

When you have it plugged in and you short the pins, take a look at you Device Manager and see if it has a new device like Atmega16u2 or Atmega8u2. If there is an unknown device, try to install the driver from Program Files\ATMEL\FLIP 3.4.7\usb folder.

Sorry still no luck, it shows as an unknown device in device manager, and it can't find any drivers in the Program Files\ATMEL\FLIP 3.4.7\usb folder. Not even in the Program Files\ATMEL\FLIP 3.4.7 folder

Hmmm... I wonder why it is not taking the atmel_dfu_usb.inf file. Have tried from the "Add Hardware" function?

Actually, I just thought of something. See if the Arduino IDE Enhanced can help things out:

http://arduino.cc/forum/index.php/topic,118440.0.html

Sorry, neither of those solutions work. It still isn't taking the .inf file, and although the enhanced suite doesn't give any errors, it still doesn't upload the file. Strange huh? What do you think the problem is?

I am afraid the Atmega8/16u2 got zapped.

Do you have a spare Arduino and (6) female to male jumpers or AVR programmer?

spcomputing:
Do you have a spare Arduino and (6) female to male jumpers or AVR programmer?

I don't have a spare Arduino laying around, but I do have a jtag device. Will that do the job aswell?

If you can put it into a SPI programming mode. Do you know which make/model you have?

Yeah probably not, it just consists of a parallel port with a few wires soldered on and a couple of diodes and pull-up resistors. I used it for my satellite decoder about a year ago.

What exactly do you think is wrong with my Arduino? Did the software get corrupted?

What exactly do you think is wrong with my Arduino? Did the software get corrupted?

Yeah, the little Atmega8/16u2 that is used for your USB2TTL communications. Unfortunately, that circuit could use a little more protection from Electrostatic discharges and the occasional introduction of greater than 6 volts.

So, what usually happens is the fuse settings or the flash gets tweeked and it stops working. 999 times out of 1000 you can just reflash the "DFU"/Atmega8/16u2 with firmware located in the hardware folder and you are back in business. But, you need an ISP programmer (Arduino as ISP works too).

I tried it one more time on a different computer to install the Flip driver, and it worked! Turns out I had to install the regular driver first, and then go into device manager and right click on it and click update drivers. Then connect the Gnd and reset on the Arduino like you said and continue with the driver installation. Point the the install wizard to the \Atmel\Flip 3.4.7\usb\atmel_usb_dfu.inf file, and it should install the driver.

So what do I do now? How do I see in Flip what firmware I'm running?

Which driver installed when you reset the DFU? 8u2 or 16u2?

There is no practical way to find the firmware version, unless you have a list of checksums of the previous versions and do a manual compare.

Depending on which chip you have, you will need to select the chip type and then open the connection through the USB. Once connected, select the Read Chip button that has the red arrow pointing away from the chip. In the arduino-1.0.1\hardware\arduino\firmwares directory, there are two files of interest:

Arduino-COMBINED-dfu-usbserial-atmega16u2-Uno-Rev3.hex - for the Uno R3 Atmega16u2 and

UNO-dfu_and_usbserial_combined.hex - for the earlier Uno Atmega8u2

If you do not read the read the chip before loading the firmware into the buffer it will error out for memory too big for chip or something.

Alright, I've determined that I've got the 16u2. How do I reprogram the firmware? Do I select Eeprom or Flash?
If you could give a step by step tutorial on how to do this that would be hugely appreciated, because quite frankly I'm too scared to screw things up, as I've bricked things this way before.

No problem. We will be working with the FLASH. Here are the steps I just preformed.

  1. Select the Chip (ATMEGA16U2)
  2. Select the communications media (USB) and click Open in the dialog box
  3. Click Read Memory from Device (GREEN arrow pointing out of the chip)
  4. Load .hex file into buffer (Arduino-COMBINED-dfu-usbserial-atmega16u2-Uno-Rev3.hex)
    (Screen show look like the attached screenshot)
  5. Click in the Operations Flow pane
  6. Upon no errors, close FLIP, disconnect and reconnect Uno and Upload a sketch like blink.

Unfortunately I'm running into some errors. On two of the three PC I've tried running this on it gives me address is out of range when I try to load the .hex file (I have Read the target device memory, but it is instantly done the range and checksum don't change [see image]). On the other PC it does take the .hex file without giving any errors, but when I hit run it says "Verify device fail at 0x00000" (also shown in image).

What do you think the problem could be?

If you are using FLIP, you do not want to upload the COMBINED version of the hex file.
This version has the DFU bootloader and the USBserial firmware in one hex file.

Using FLIP you only want to upload the USBSerial version of the hex file.

This is why you are getting the address out of range error.

Thanks Louis for pointing that out. I completely forgot that, and obviously the .hex I used was just the serial non-combined.

@RubinGrolsch - the file is up one more level in arduino-usbserial - Arduino-usbserial-atmega16u2-Uno-Rev3.hex like my screen has on it.

Sorry about that...