Cannot upload to board

Hello everyone! I'm quite new to this forum. I recently had a Arduino Uno of mine stop working. I had started getting the stk500_recv(): programmer is not responding error.

Also I think it's worth mentioning that once I had connected my Arduino to my computer, but due to a loose connection, the Arduino switched on and off (reset) a few times rapidly. The board stopped working after that. But I have no guarantee that it worked before that happening because I had not used the Arduino for like a year or so.

I thought that by resetting the Arduino rapidly I might've corrupted the USB controller clip (MEGA1602) data. So I went ahead and flashed the chip using flip as directed my the Arduino tutorial. But it still didn't work. My next thought was that I might have corrupted the bootloader. Which I had apparently cause the orange light wasn't blinking on start and reset. So I ordered another Arduino. It arrived today and I went ahead and got the wiring ready and then burned the bootloader. But it still didn't work. And now I'm out of ideas.

Actually no, I've still got one more idea, the USB header on the old board is a bit oxidized from the outside so it might be that that's what's causing the problem (Probably not, but I thought I might as well mention it). Also the board fails the loopback test.

I have absolutely no idea what's causing this problem, please help. Thanks a lot.

If the board fails the loopback test, the 16U2 is damaged. If you're brave, you can repair it.

Alternatives to repairing:
1)
Upload sketches via the ICSP header using your new arduino as a programmer; you might still be missing serial functionality in that case.
2)
A USB-to-TTL adapter cable (preferably one that supports DTR) that will basically replace the 16U2.
3)
An Pololu USB AVR Programmer V2.1; can be used as ICSP programmer (see 1) and as USB-to-TTL (see 2); I have used this for nanos (iscp programming) and pro minis (USB-to-TTL if I recall correctly).

Repairing the 1602 would be rather hard for me. I might use the new one as a programmer till I get a USB to TTL. Will the setup be the same as for the bootloader one?

I'm not sure (never looked at it, I have a dedicated programmer and use avrdude for it) but I think it is; just find the compiled sketch (extension .hex).

To find where it is, switch on "verbose output during compilation" in file -> preferences and compile. Somewhere in that bunch of data will be something like C:\Users\sterretje\AppData\Local\Temp\arduino_modified_sketch_425411\

Note that this will change after closing the IDE so you can't quite rely on one specific path.

So my best guess of what's happening right now is that the 1602 got damaged due to the fluctuation in current. But it still takes instructions... Like I can still erase, write, read it using flip. Is that how chips work? I'm really sorry if I'm missing something really obvious here, I don't really know electronics...

You can have blown one pin (e.g.one of the data pins connected to the usb connector or the tx or rx pin connected to the 328P micro) and rest of the pins can be fine.

Yea, I guess that's the case... btw do u reckon a "PL2303 USB To TTL(Serial) Converter Module – 5 Pin" would get the job done? Also I tried hooking up my two Arduinos, I connected Tx -> Rx and Rx -> Tx, powered the board using 5v and gnd, and reset the IC on the programmer board. But the results were not as expected, the Arduino IDE started giving me the same programmer is not responding errors as it was with the direct USB connection. Now I'm really confused about what's happening here.

So my conclusion would be that the 328P is also damaged.

Soo this board is trash until I get a ATMEGA328P, flash it and get a USB-to-TTL convertor? Can a loose connection really caused this much damage?

I have no idea if this is due to your loose connection.

ESD can be another cause; and that can be a slow killer.

ESD might be a reason... this board is about 2-3 years old and wasn't being for used an year, then suddenly last week I hooked it up to a Linux machine to find it not working. And that's when the loose connection occurred too.

Anyways thanks a lot for your help, really appreciate it. Hope you have a great day ahead!

Hi, just an update, So today I tried burning the bootloader again, and I guess it was successful this time because the board resets when reset is pressed. Also I noticed that maybe the 16U2 isn't really damaged as the board reset when I changed the rate in serial monitor and when I tried writing a program. That bring me to the fact that the board does actually reset when a program is being flashed/written, but it still gave me the same error of the programmer not being in sync.

weird...

sterretje:
If the board fails the loopback test, the 16U2 is damaged. If you're brave, you can repair it.

Alternatives to repairing:
1)
Upload sketches via the ICSP header using your new arduino as a programmer; you might still be missing serial functionality in that case.
2)
A USB-to-TTL adapter cable (preferably one that supports DTR) that will basically replace the 16U2.
3)
An Pololu USB AVR Programmer V2.1; can be used as ICSP programmer (see 1) and as USB-to-TTL (see 2); I have used this for nanos (iscp programming) and pro minis (USB-to-TTL if I recall correctly).

So, what do I do if I can't upload the test?

DentFuse:
Hi, just an update, So today I tried burning the bootloader again, and I guess it was successful this time because the board resets when reset is pressed. Also I noticed that maybe the 16U2 isn't really damaged as the board reset when I changed the rate in serial monitor and when I tried writing a program. That bring me to the fact that the board does actually reset when a program is being flashed/written, but it still gave me the same error of the programmer not being in sync.

What rate did you set?

CATIOTOCAT:
What rate did you set?

Rate isn't a factor here, I just hooked up my arduino as shown here. Then I just followed the steps here. This helped me successfully flash the bootloader.

But I still wasn't able to upload programs directly to the board. The reset button was working tho. This led me to believe that the 16U2 was partially damaged, and the damage included the data transfer pins.

After this I tried to upload sketches to the damaged board using the other arduino as a programmer. To do this hook up the board as shown above and program the programmer board with the ArduinoISP sketch as shown here. After this go to Tools -> Programmer -> And click "Arduino as ISP". Now connect the programmer board to the computer while it is hooked up to the target board and go to Sketch -> Uploading Using Programmer or fo windows users Ctrl + Shift + U. This helped me program the damaged board, note that uploading like this overwrites the bootloader.

This worked for me as a alternative to the 16U2 chip, you can also buy a usb to serial adapter to have a more easier and consistent solution.

I am thinking about getting another UNO.
I also need to get some jumper wires.
(I currently have the Snap Circuits Snapino module with an arduino UNO inside it, so I don't have any jumper wires.)

CATIOTOCAT:
I am thinking about getting another UNO.
I also need to get some jumper wires.
(I currently have the Snap Circuits Snapino module with an arduino UNO inside it, so I don't have any jumper wires.)

Yes this method requires another arduino of some sort and some jumper wire. Also I would highly recommend getting a usb-to-serial converter/adapter as it would help in using the board if the 16U2 chip is damaged, I ordered mine off of aliexpress for about a buck.

It worked! Now the board can be programmed! :slight_smile:
I just used Two snap to pin wires for pin to pin connections and single wires for snap to pin connections! :slight_smile:
However, I couldn't burn the bootloader.
But I am still happy.

My snapino can't be programed with isp, so i swapped the atmega chips of my two boards and my snapino worked again!!! :slight_smile: :slight_smile: :slight_smile: