Burn Bootloader fails: "Device signature = 0x000000"

"/home/kristers/.arduino15/packages/arduino/tools/avrdude/6.3.0-arduino17/bin/avrdude" "-C/home/kristers/.arduino15/packages/arduino/tools/avrdude/6.3.0-arduino17/etc/avrdude.conf" -v -patmega328p -cstk500v1 -P/dev/ttyACM0 -b19200 -e -Ulock:w:0x3F:m -Uefuse:w:0xFD:m -Uhfuse:w:0xDA: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 "/home/kristers/.arduino15/packages/arduino/tools/avrdude/6.3.0-arduino17/etc/avrdude.conf"
     User configuration file is "/home/kristers/.avrduderc"
     User configuration file does not exist or is not a regular file, skipping

     Using Port                    : /dev/ttyACM0
     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.02s

avrdude: Device signature = 0x000000 (retrying)

Reading | ################################################## | 100% 0.02s

avrdude: Device signature = 0x000000 (retrying)

Reading | ################################################## | 100% 0.02s

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.

Failed chip erase: uploading error: exit status 1

im trying to burn a bootloader to a arduino nano.

Hi @random-linux-fish_12345.

This error can be caused by incorrect wiring between the programmer and the Arduino Nano board. You should double check that all the connections between the two are correct.

This error is telling you there is no device. Check your wiring.

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

     Using Port                    : COM9
     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.02s

avrdude: Device signature = 0x000000 (retrying)

Reading | ################################################## | 100% 0.02s

avrdude: Device signature = 0x000000 (retrying)

Reading | ################################################## | 100% 0.02s

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.

Failed chip erase: uploading error: exit status 1

I'm still getting this error even after checking all the connections and making sure they are correct

Hi @coder-gw. Please tell us exactly which Arduino board you are trying to burn the bootloader to. Please be as specific as possible as some Arduino boards with similar names have significant differences and the forum helpers can only provide effective assistance if we are aware of which one is being used. If you aren't sure how to describe which board you are using, you can provide the link to the online product listing you bought the board from and we'll proceed based on the information found there.

Please also provide a detailed description of the reason you are attempting to burn a bootloader on this board.

1 Like

What programmer are you using? How is the Nano hooked up?

I am trying to burn a bootloader on the ATMEGA328P U from an Arduino Uno R3 that was made in Italy (I got it in a teaching package last summer, I don't know where it was bought from).

I don't have a particular reason for burning the bootloader to the chip other than to experiment and learn from it. The first project I was going to do was a timer using a 4 digit 7 segment display.

Arduino as ISP, see the attached images to see the circuit. (apologies for the random wires used, I don't have all of them at the moment so I couldn't colour code it)



Looks like you do it from cli, or is that from the IDE console?

For a start, get Minicore (for your 328P IC). If you use IDE 2 it can be installed from the Board Manager. **

I was just going to say you could use Arduino as ISP, but check :slight_smile: After that you need to choose it as the programmer. Now, and this is crucial, you need a small cap between Reset and Gnd on the programmer Arduino, or the programmer will be reset instead of target. And that's it. To transfer sketches you use Upload Using Programmer instead of Upload.

** All the settings are in the IDE, so no fiddling with fuses directly is needed.

Just finished installing Minicore.
Forgive me for asking, when you say a small cap, what do you mean?

No I'm sorry for using slang. Cap means capacitor. Any small one will do, like 0.1 or 1 uF or higher.

Alright, so here's what I'm getting now:

Using port            : COM9
Using programmer      : stk500v1
Setting baud rate     : 19200
AVR part              : ATmega328P
Programming modes     : SPM, ISP, HVPP, debugWIRE
Programmer type       : STK500
Description           : Atmel STK500 v1
HW Version            : 2
FW Version            : 1.18
Topcard               : Unknown
Vtarget               : 0.0 V
Varef                 : 0.0 V
Oscillator            : Off
SCK period            : 0.0 us
XTAL frequency        : 7.372800 MHz

AVR device initialized and ready to accept instructions
Device signature = 00 00 00 (retrying)
Device signature = 00 00 00 (retrying)
Device signature = 00 00 00
Error: invalid device signature
Error: expected signature for ATmega328P is 1E 95 0F
  - double check connections and try again, or use -F to carry on regardless

Avrdude done.  Thank you.
Failed chip erase: uploading error: exit status 1

Still unsure why it isn't seeing the device signature

Can you describe the steps leading up to the failed uploading?

Alright. Let's go from the start.

  1. I started by first loading up the code from File > Example > ArduinoISP to an Arduino Uno R3.
  2. Next, I disconnected it from the computer after the code uploaded.
  3. I then constructed the circuit. In the later cases, I added the capacitor as you recommended.
  4. I checked the circuit, I don't know how easy it is to fry a microprocessor and I don't want to find out.
  5. I plugged the circuit into the computer (the computer was connected to the Arduino, the Arduino was part of the circuit that connected to the microprocessor)
  6. I went to Tools > Board and selected the ATMEGA328
  7. I made sure the programmer was set to "Arduino as ISP."
  8. I pressed Burn Bootloader (in the tools menu)

That was everything

Thanks.

Can you try this: Remove the capacitor and upload the Blink sketch from the examples. You don't have to disconnect the wires between the Uno and the 328. After that, does a LED blink on the Uno?

Yup, it works.

I forgot to change the board from the 328 but it worked. After that, I changed the board to the Uno and it worked too.

Alright, it happens when you use an Arduino as programmer, that you accidently overwrite that code and don't understand a thing.. :slight_smile:

Another thing, did the bootloader burn thing ever work?

I don't think so

By the way, are you the same guy as OP, @random-linux-fish_12345 ?