Burning bootloader from Nano to Uno. Device signature problem.

I know that there's a lot of similar topics, but somehow I couldn't find answers in neither of those.
I'm trying to wrap my head around the Arduino as ISP process.

Let me tell you about what happened. I was working on a buck converter and was using Arduino UNO as PWM controller. I had a problem with a mosfet so I left Arduino connected to the usb port for a while. I'm not sure if i could somehow damage the Arduino, but it's possible since I made quite a mess on the able and the input was from 12V 10A impulse powersource.

So the last time I've seen it the Arduino was working just fine. Then after connecting the Arduino to my computer to my surprise upload stopped working. For a while I even thought it was the problem with IDE then I figured that it's not.

avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x00

From what I found on the internet it seems that bootloader is not present on the Atmega 328p chip anymore. I made a loopback test as was suggested and it worked jut fine. So i decided to get a chineese Arduino Nano to revive my UNO.

I understand the basics:

  1. Upload ISP sketch to the master
  2. Connect master's outputs with slave's ISP pins
  3. Block reset on the master with a 10uF cap. I don't understand what exactly it does and why the master can't do its' stuff after reset, but don't think that matters a lot.
  4. Select slave Arduino in the Tools menu.
  5. Burn the bootloader.

I've connected everything according to this scheme (except I've added a cap on the reset):

The problem is I'm getting device signature errors all the time: Either

avrdude: Device signature = 0x000000
avrdude: Yikes!  Invalid device signature.

or

avrdude: Device signature = 0x00ff00
Expected signature for ATMEGA328P is 1E 95 0F

The signature is somehow changes from time to time. Usually FF appears in different positions. I assume when it's 0x000000 then it will be the "Yikes!" error.

I've already made sure that all the pins are connected tightly using my multimeter.

I have a couple of questions:

  1. Is it normal for an Arduino to "lose" it's bootloader if left alone connected via USB?

  2. If the loopback test passes does it actually mean that the device is revivable? Or it only means that 16U2 chip is working properly while 328P can be dead.

  3. What is the device avrdude is checking signature for? Is it the master or the slave? If it's the master, i understand why signature is messed up (IDE also cannot get it's board info, since it's a Chinese knock-off). In that case i suppose it's safe to correct it in the config file.

  4. Any advice on how I can progress forward in that situation?

Thank you.

1 Like

Here's the full log, in case you need it.

"/Users/freddis/Library/Arduino15/packages/arduino/tools/avrdude/6.3.0-arduino17/bin/avrdude" "-C/Users/freddis/Library/Arduino15/packages/arduino/tools/avrdude/6.3.0-arduino17/etc/avrdude.conf" -v -patmega328p -cstk500v1 -P/dev/cu.usbserial-A50285BI -b19200 -e -Ulock:w:0x3F:m -Uefuse:w:0xFD:m -Uhfuse:w:0xDE:m -Ulfuse:w:0xFF:m

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

         System wide configuration file is "/Users/freddis/Library/Arduino15/packages/arduino/tools/avrdude/6.3.0-arduino17/etc/avrdude.conf"
         User configuration file is "/Users/freddis/.avrduderc"
         User configuration file does not exist or is not a regular file, skipping

         Using Port                    : /dev/cu.usbserial-A50285BI
         Using Programmer              : stk500v1
         Overriding Baud Rate          : 19200
         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 : STK500
         Description     : Atmel STK500 Version 1.x firmware
         Hardware Version: 2
         Firmware Version: 1.18
         Topcard         : Unknown
         Vtarget         : 0.0 V
         Varef           : 0.0 V
         Oscillator      : Off
         SCK period      : 0.1 us

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.04s

avrdude: Device signature = 0x000000 (retrying)

Reading | ################################################## | 100% 0.05s

avrdude: Device signature = 0x000000 (retrying)

Reading | ################################################## | 100% 0.05s

avrdude: Device signature = 0x000000
avrdude: Yikes!  Invalid device signature.
         Double check connections and try again, or use -F to override
         this check.


avrdude done.  Thank you.

Error while burning the bootloader: Error: 2 UNKNOWN: chip erase error: uploading error: exit status 1

Are the pins on the NANO soldered? or just pushed through the board?

Have you confirmed continuity with a meter from the NANO to the UNO?

If the answers are yes, then it sounds like you MAY have blown the 328 - Buy another and replace it on the UNO.

missdrew:
Are the pins on the NANO soldered? or just pushed through the board?

Have you confirmed continuity with a meter from the NANO to the UNO?

If the answers are yes, then it sounds like you MAY have blown the 328 - Buy another and replace it on the UNO.

It is pushed through, but when I checked the continuity, I pressed leads agains soldering on the nano and actual pins on the UNO, so there's no doubt it's connected tightly.

Is there a way to find out if Atmega 328p alive or dead?

solder the pins, pushing the board around with the probe MAY read OK, when there is no pressure, it MAY work.

You could build a circuit on a breadboard to see if the chip is 'alive'. And test if the pins activated in the last sketch you uploaded are doing what they should do.

PS - Until you can conform the pins have been soldered, I will not be adding to this thread!

I can confirm that you were right, the 328P chip was dead. I had a store nearby that sells it and when i changed it for a new one, the bootloader has been burned without any problems.

Thank you very much.

PS: I'll take your advice about soldering. Next time if I need to make sure about something, I'll solder pins instead of using a breadbord.

freddis:
It is pushed through

It looks from your picture that they are soldered. I see neat shiny solder cones when I zoom in. Is that your picture?

freddis:
PS: I'll take your advice about soldering. Next time if I need to make sure about something, I'll solder pins instead of using a breadbord.

The breadboard wasn't the problem. Breadboards have spring clips designed to make good contact with wires & pins pushed into them. The holes in a bare Nano board do not, and won't make reliable contact with pin headers if not soldered.

yes I also got that prob. i done everything correctly.
but that signature error occurs!!!!

1 Like

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.