Is My Genuine Arduino UNO Dead? Problem Solved!

I am unable to upload to my Genuine Arduino UNO. It worked before, but when I tried to upload a new sketch it won’t sync.

avrdude: Send: 0 [30] [20]
avrdude: ser_recv(): programmer is not responding
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x00
avrdude: Send: 0 [30] [20]
avrdude: ser_recv(): programmer is not responding
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x00

avrdude done. Thank you.

This is with the Blink example. At this point I am trying to keep it simple.

The Rx LED will flash on each of the ten attempts.

Tried a SanSmart UNO and everything works OK. Only have the problem with the Genuine Arduino UNO.

Did I do something to Brick it? Can I bring it back to life?

Thanks.

Post verbose log include used command.

Binary sketch size: 1,054 bytes (of a 32,256 byte maximum)
/usr/share/arduino/hardware/tools/avrdude -C/usr/share/arduino/hardware/tools/avrdude.conf -v -v -v -v -patmega328p -carduino -P/dev/ttyACM0 -b115200 -D -Uflash:w:/tmp/build1601743972293805089.tmp/Blink.cpp.hex:i

avrdude: Version 6.2
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2014 Joerg Wunsch

System wide configuration file is "/usr/share/arduino/hardware/tools/avrdude.conf"
User configuration file is "/home/ron/.avrduderc"
User configuration file does not exist or is not a regular file, skipping

Using Port : /dev/ttyACM0
Using Programmer : arduino
Overriding Baud Rate : 115200
avrdude: Send: 0 [30] [20]
avrdude: Send: 0 [30] [20]
avrdude: Send: 0 [30] [20]
avrdude: ser_recv(): programmer is not responding
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x00
avrdude: Send: 0 [30] [20]
avrdude: ser_recv(): programmer is not responding
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x00
avrdude: Send: 0 [30] [20]
avrdude: ser_recv(): programmer is not responding
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x00
avrdude: Send: 0 [30] [20]
avrdude: ser_recv(): programmer is not responding
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x00
avrdude: Send: 0 [30] [20]
avrdude: ser_recv(): programmer is not responding
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x00
avrdude: Send: 0 [30] [20]
avrdude: ser_recv(): programmer is not responding
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x00
avrdude: Send: 0 [30] [20]
avrdude: ser_recv(): programmer is not responding
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x00
avrdude: Send: 0 [30] [20]
avrdude: ser_recv(): programmer is not responding
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x00
avrdude: Send: 0 [30] [20]
avrdude: ser_recv(): programmer is not responding
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x00
avrdude: Send: 0 [30] [20]
avrdude: ser_recv(): programmer is not responding
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x00

avrdude done. Thank you.

Update:

Tried to reload the Bootloader using the UNO 2 UNO instructions and it gives a "invalid signature" error.

Used AVRDUDE and it gives a timeout six times then gives data, then goes into timeout again.

ron@ron-desktop:~$ avrdude -p m328p -n -c avrisp2 -v -v -t -P /dev/ttyACM1

avrdude: Version 6.2
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2014 Joerg Wunsch

System wide configuration file is "/etc/avrdude.conf"
User configuration file is "/home/ron/.avrduderc"
User configuration file does not exist or is not a regular file, skipping

Using Port : /dev/ttyACM1
Using Programmer : avrisp2
avrdude: ser_recv(): programmer is not responding
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: ser_recv(): programmer is not responding
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: ser_recv(): programmer is not responding
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: ser_recv(): programmer is not responding
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: ser_recv(): programmer is not responding
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: ser_recv(): programmer is not responding
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_getsync(): timeout communicating with programmer
AVR Part : ATmega328P
Chip Erase delay : 9000 us
PAGEL : PD7
BS2 : PC2
RESET disposition : dedicated
RETRY pulse : SCK
serial program mode : yes
parallel program mode : yes
Timeout : 200
StabDelay : 100
CmdexeDelay : 25
SyncLoops : 32
ByteDelay : 0
PollIndex : 3
PollValue : 0x53
Memory Detail :

Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack


eeprom 65 20 4 0 no 1024 4 0 3600 3600 0xff 0xff
flash 65 6 128 0 yes 32768 128 256 4500 4500 0xff 0xff
lfuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
hfuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
efuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
lock 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
calibration 0 0 0 0 no 1 0 0 0 0 0x00 0x00
signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00

Programmer Type : STK500V2
Description : Atmel AVR ISP mkII
Programmer Model: Unknown
avrdude: ser_recv(): programmer is not responding
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: ser_recv(): programmer is not responding
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: ser_recv(): programmer is not responding
avrdude: stk500v2_ReceiveMessage(): timeout
^C

I would rather get this UNO working again instead of throwing it in the trash.

Any help would be appreciated.

Thanks.

ron@ron-desktop:~$ avrdude -p m328p  -n -c avrisp2 -v -v -t -P /dev/ttyACM1

UNO 2 UNO? Did you mean Arduino as ISP? Then, wrong.

Try: avrdude -pm328p -c stk500v1 -P/dev/ttyACM1 -b19200 -vv
This is just for test for target reachability.

Reply to #3:
Yes, this problem can be caused by missing bootloader but also by other reasons. You can check the bootloader e.g. with avrdude -t as above or you can read out the flash with -Uflash:r:.... command. Another problem can be USB/serial circuit on the board. You can check it by loopback test. Here on web is tutorial for it.

Yes, Arduino as ISP, load sketch, unplug, wire, plug, set programmer as ArduinoISP, Burn Bootloader.

ron@ron-desktop:~$ sudo avrdude -p m328p -c stk500v1 -P/dev/ttyACM1 -b19200 -vv

avrdude: Version 6.2
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2014 Joerg Wunsch

System wide configuration file is "/etc/avrdude.conf"
User configuration file is "/home/ron/.avrduderc"
User configuration file does not exist or is not a regular file, skipping

Using Port : /dev/ttyACM1
Using Programmer : stk500v1
Overriding Baud Rate : 19200
avrdude: ser_recv(): programmer is not responding
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x00
avrdude: ser_recv(): programmer is not responding
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x00
avrdude: ser_recv(): programmer is not responding
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x00
avrdude: ser_recv(): programmer is not responding
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x00
avrdude: ser_recv(): programmer is not responding
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x00
avrdude: ser_recv(): programmer is not responding
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x00
avrdude: ser_recv(): programmer is not responding
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x00
avrdude: ser_recv(): programmer is not responding
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x00
avrdude: ser_recv(): programmer is not responding
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x00
avrdude: ser_recv(): programmer is not responding
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x00

avrdude done. Thank you.

Verified Loopback yesterday. Works great. I had the -t switch in the avrdude cli that returned six timeouts, data, more timeouts. What data should I be looking for?

AVR Part : ATmega328P
Chip Erase delay : 9000 us
PAGEL : PD7
BS2 : PC2
RESET disposition : dedicated
RETRY pulse : SCK
serial program mode : yes
parallel program mode : yes
Timeout : 200
StabDelay : 100
CmdexeDelay : 25
SyncLoops : 32
ByteDelay : 0
PollIndex : 3
PollValue : 0x53
Memory Detail :

Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack


eeprom 65 20 4 0 no 1024 4 0 3600 3600 0xff 0xff
flash 65 6 128 0 yes 32768 128 256 4500 4500 0xff 0xff
lfuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
hfuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
efuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
lock 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
calibration 0 0 0 0 no 1 0 0 0 0 0x00 0x00
signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00

Programmer Type : STK500V2
Description : Atmel AVR ISP mkII
Programmer Model: Unknown

Yes, Arduino as ISP, load sketch, unplug, wire, plug, set programmer as ArduinoISP, Burn Bootloader.

It should be "Arduino as ISP", ArduinoISP is specific programmer board for ISP programming.

What data should I be looking for?

Flash memory. The bootloader starts at 0x7E00 (genuine UNO R3 user Optiboot) and has 512 bytes. It is on the last 512B of flash mem.

Tried the avrdude bootloader steps from [SOLVED] Burning bootloader to Arduino Uno - Microcontrollers - Arduino Forum - still times out.

ron@ron-desktop:/usr/share/arduino/hardware/arduino/bootloaders/optiboot$ avrdude -c stk500 -p m328p -P /dev/ttyACM0 -b 115200 -e -u -U lock:w:0x3f:m -U efuse:w:0x05:m -U hfuse:w:0xDE:m -U lfuse:w:0xFF:m
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_getsync(): timeout communicating with programmer

avrdude: stk500v2_ReceiveMessage(): timeout
^C

ron@ron-desktop:/usr/share/arduino/hardware/arduino/bootloaders/optiboot$ avrdude -c stk500 -p atmega328p -P /dev/ttyACM0 -b 115200 -U flash:w:optiboot_atmega328.hex -U lock:w:0x0f:mavrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_getsync(): timeout communicating with programmer

avrdude: stk500v2_ReceiveMessage(): timeout
^C

Ordered a new ATmega328P chip and will try again when chip arrives.

Anyone else have any ideas?

Are you using Arduino as ISP ? If yes (according post above - yes), then the baudrate is 19200 (-b 19200) and programmer type should be stk500v1.
Because:

  • baudrate is set for fix by ISP sketch to 19200
  • stk500v1 doesn't produce the reset pulse which will reset the ISP board - we do not want it, we need to reset target board and ISP sketch does it for us

Using Nick Gammon’s page - “Have I bricked my Arduino Uno? Problems with uploading to board”

As I mentioned earlier the Loopback works, and I checked it again. Still works great. Next step is to check the Atmega16U2 Serial Chip.
Loaded the Atmega chip detector .ino and wired up as shown to test the serial chip. On his web page he states “Test the Atmega16U2 chip”, my UNO is the Atmega32U2 chip, but I thought I would give it a try. Here are the results from the IDE Serial Monitor:

This does not look like the expected results. Is the sketch returning all zeros for data, or is it not communicating?

Budvar10
I'll re-wire for the Atmega328p bootloader and try the CLI avrdude command again with corrected -c and -b, will report results a little later. I need to get some work done. This UNO is eating up a lot of my time.

Problem Solved
Atmega328p was fried on the dead UNO.

Ordered a new Atmega328p for $4 USD off eBay. It did not have the bootloader so I had to burn it.
Because I was banging my head against the wall for so long I decided to borrow a known good working UNO to use as the Arduino as ISP burner and using the Arduino IDE, loaded the ArduinoISP sketch to the borrowed UNO. I swapped the Atmega32p chip in the old working UNO with the new Atmega32p chip. Wired the Arduino as ISP burner to the target 5V to 5V, GND to GND, pins 11 to 11, 12 to 12, and 13 to 13, burner pin 10 to target Reset. I also added a 10u cap between burner Reset & GND. Powered up the UNO, set Programmer to Arduino as ISP and clicked the Burn Bootloader. IT WORKED!!
Replaced Atmega32p on the dead UNO and it worked.

Congrats!

Thanks for all the help! I learned a lot about Arduino and Avrdude.