Go Down

Topic: Is My Genuine Arduino UNO Dead? Problem Solved! (Read 742 times) previous topic - next topic

A1Topgun

Oct 29, 2018, 12:03 pm Last Edit: Nov 06, 2018, 01:57 am by A1Topgun
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.

Budvar10

Post verbose log include used command.
Arduino clone with ATmega1284P   http://forum.arduino.cc/index.php?topic=277260.0

A1Topgun

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.

A1Topgun

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.

Budvar10


Code: [Select]
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.
Arduino clone with ATmega1284P   http://forum.arduino.cc/index.php?topic=277260.0

Budvar10

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.
Arduino clone with ATmega1284P   http://forum.arduino.cc/index.php?topic=277260.0

A1Topgun

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.


A1Topgun

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

Budvar10

Quote
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.
Arduino clone with ATmega1284P   http://forum.arduino.cc/index.php?topic=277260.0

Budvar10

Quote
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.
Arduino clone with ATmega1284P   http://forum.arduino.cc/index.php?topic=277260.0

A1Topgun

Tried the avrdude bootloader steps from https://forum.arduino.cc/index.php?topic=57795.0 - 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?

Budvar10

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
Arduino clone with ATmega1284P   http://forum.arduino.cc/index.php?topic=277260.0

A1Topgun


Using Nick Gammon's page - "Have I bricked my Arduino Uno? Problems with uploading to board"
https://arduino.stackexchange.com/questions/13292/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:

http://solararrow.net/Arduino/Screenshot_2018-11-01.png

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.

A1Topgun

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.

Budvar10

Arduino clone with ATmega1284P   http://forum.arduino.cc/index.php?topic=277260.0

Go Up