Go Down

Topic: Arduino won't upload (Read 10171 times) previous topic - next topic

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?

Quote
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).
http://www.spcomputing.com

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.
http://www.spcomputing.com

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 <Run> in the Operations Flow pane
6. Upon no errors, close FLIP, disconnect and reconnect Uno and Upload a sketch like blink.
http://www.spcomputing.com

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?

Louis Davis

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.


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...
http://www.spcomputing.com

gromain

Hi everyone!

I do have the same problem! It seems I can't upload anything on my arduino UNO R2. I'm still able to upload sketches using an USBtiny, but no communication between the computer and the board when using the usb connection.
I got an "avrdude: stk500_getsync(): not in sync: resp=0x00" error when trying.
Although I followed the advices given here, I'm still stuck.

My board doesn't pass the loopback test.

The other problem is, I can't seem to be able to get the atmega 8u2 in DFU mode. It does nothing when I try to connect reset and GND from the pin on its side.
Well, to be honest, I think it did something the first time. I had a new device in the device manager (I'm using Win 7 64 bits here).
But the only driver accepted was the arduino one for the Uno board. It didn't accept the flip driver...

Any hints on what should I do now?

Thanks!

I got the reflash to work, but unfortunately it didn't fix the problem. It still fails the loopback test, and uploading a sketch won't work either, do you have some more things I could try or should I write this one off?


@gromain
If it doesn't take you driver, you could try doing it manually with hdwwiz.exe (in the start menu, search for hdwwiz and hit enter). Let me know how you get on.

Quote
I got the reflash to work, but unfortunately it didn't fix the problem. It still fails the loopback test, and uploading a sketch won't work either, do you have some more things I could try or should I write this one off?


Even if the Loopback failed, since you were able to reflash the chip with no errors, the Atmega16u2 should be fine.  Now, the focus can turn to the bootloader, but we do need an ISP (Second Arduino or AVRISP).

For grins, try this:

Hold down the reset button and unplug the USB cable.
Select a sketch and upload to the Uno (Reset still held down).
When any activity occurs on the Rx/Tx LEDs, release the button.
http://www.spcomputing.com

gromain

Thanks for the quick answers!

I tried the hdwwiz method, but when I changed the driver, it still didn't want to take the driver (I got something about the driver not being compatible with my device). I'm running Win7 in 64 bits, does this could be the reason? (i.e. no atmel dfu driver for win7 64bits?)

For your informations, the informations about the driver in the device manager are as follow:
Code: [Select]
Driver Provider: http://www.arduino.cc
Driver Date: 15/11/2007
Driver Version: 5.1.2600.0
Digital Signer: Not digitally signed


And the setting for the port are those:
Code: [Select]
Bits per second: 115200
Data bits: 8
Parity: None
Stop bits: 1
Flow control: None


No luck apparently!

@gromain:  Have you tried the Arduino IDE Enhanced?

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


I'm running Win7 in 64 bits, does this could be the reason? (i.e. no atmel dfu driver for win7 64bits?)


No it shouldn't be a problem, because I'm also running win7 64bit and it works for me. I'm no expert in these things as you can see, so I'm afraid I can't help you out any further

Go Up