1

I followed this tutorial a couple of times and when I clicked on bootloader I get this error:

avrdude: Device signature = 0x000000

To see the configuration file click here.

  1. Why do I get this error (Arduino can't communicate with chip, problem with software)?
  2. How can I fix it?
  3. Is something in the tutorial incorrect?

Keep in mind I use an Arduino Uno Rev. 3 and ATmega328P

0

4 Answers 4

4

There is one part of the tutorial that is incorrect - or rather missing.

When you open the serial port the Arduino resets. That includes when the serial port is opened by avrdude.

You need to prevent that from happening, so that the ArduinoISP sketch receives the serial data, not the Arduino's bootloader.

There's a number of ways of doing that:

  • Add a 10uF or greater capacitor between RESET and GND on the Arduino
  • Add a small (say 100R) resistor between RESET and 5V on the Arduino
  • Cut the RESET-EN trace on the underside of the Arduino

Of those my preferred method is the first: add a 10uF or greater capacitor between RESET and GND on the Arduino.


Update:

Now that you have provided photographs of your actual setup I can see that the ground wire between your Arduino and the breadboard is actually plugged into the VIN pin of the Arduino, not GND.

10
  • It already has a 10k resistor between 5V and pin 1 (on the chip)
    – ainnnmanir
    Jun 6, 2021 at 16:15
  • So? That has absolutely nothing to do with the RESET pin of the Arduino.
    – Majenko
    Jun 6, 2021 at 16:16
  • OK! Thanks I will try again with the resistor/capacitor!
    – ainnnmanir
    Jun 6, 2021 at 16:22
  • I still get the same error: avrdude: Device signature = 0xffffff (probably .avr8x_mega) avrdude: Yikes! Invalid device signature. Double check connections and try again, or use -F to override this check.
    – ainnnmanir
    Jun 6, 2021 at 16:42
  • And you did connect the capacitor to the Arduino's RESET pin, didn't you? Not the signal that goes to the RESET pin of your target ATmega?
    – Majenko
    Jun 6, 2021 at 16:46
2

Unfortunately the three prominent threads on the Arduino forum on this topic are closed, so their good but incomplete information is baked in time:

So let me add a bit more useful information in the hope it permeates.

Device signature = 0x000000

Means the MCU did not respond with a signature. There is a very thin chance that's because it reported all zeros when asked for a signature, but a much higher chance that it did not respond at all. Correct signature bytes are found here (eg. ATmega328P = 0x1E950F) and crucially, all Atmel microcontrollers have one.

Further, the error:

avrdude: Device signature = 0x000000

avrdude: Yikes! Invalid device signature.

will occur if you're using ArduinoISP to flash a target Arduino and the target is not physically connected. So it really is an "all bets are off" message that doesn't pinpoint any particular cause. To troubleshoot, checking wiring if a good first step.

Do not, on the other hand, concern yourself with the external clock signal. In contrast to some guides, the ATmega328P at least comes factory configured to use an internal RC oscillator, so even a correctly connected crystal or resonator on the XTAL pins will not show any activity until the first successful flash.

0

Can confirm previous answer about changing SPI clock. I edited ArduinoISP.ino example and changed #define SPI_CLOCK (1000000 / 6) to #define SPI_CLOCK (128000/6) and after that I successfully burned bootloader to my UNO

New contributor
glebokator is a new contributor to this site. Take care in asking for clarification, commenting, and answering. Check out our Code of Conduct.
1
  • 1
    Answer is a duplicate of other answers.
    – VE7JRO
    yesterday
-1

One of the reason for getting weird device signature like 0x000000/0x0000ff/0xff0000 is not having the crystal clock right.

When I tried uploading the sketch I was getting this different device signatures. I had no idea it could be clock setting because we don't generally get this option to set the clock on regular Arduino boards upload options.

I was using this Atmega328PU clone Chinese board and wasn't able to upload a sketch. Than I tried uploading the sketch using miniCore board (where by default it was External 16MHz Clock selected). Same signature issues still.

For some reason I tried uploading with 8MHz Clock and this time the device signature was right

i.e. device signature = 0x1e950f (probably m328p)

and was able to successfully upload the sketch.

I highly recommend trying this.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.