Invalid Device Signature on Bootloading

Hi,

I'm trying to burn a bootloader on an ATmega328 using an Arduino uno. I'm following this tutorial for a minimal configuration: https://www.arduino.cc/en/Tutorial/ArduinoToBreadboard . I can successfully upload the ArduinoISP sketch but I'm getting a "Yikes, Invalid device signature" when I try to burn the bootloader. Here's a picture of my circuit:

From what I can tell, this is a common problem, but I've tried a few things to fix this:

  1. I don't have anything connected to RX/TX pins
  2. Tried putting a 10uF capacitor between reset and GND, also tried a 120 ohm resistor.
  3. Tried switching to an Arduino mega 2560 board
  4. Tried switching the connector cable out
  5. Tried switching computer out
  6. Tested each wire's resistance, tried switching them out
  7. Switched out breadboard
  8. Switched out ATmega328 chips for some others (I had 6 lieing around, 2 from Mouser and 4 from amazon)
  9. Made sure all drivers were updated
  10. Changed COM port to different port, for both boards.
  11. Pressed reset button, pin 13 lights up

I have a feeling this could be a software issue given I've switched out most hardware but I'm not sure what to do.

C:\Users\kylee\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17/bin/avrdude -CC:\Users\kylee\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17/etc/avrdude.conf -v -patmega2560 -cstk500v1 -PCOM9 -b19200 -e -Ulock:w:0x3F:m -Uefuse:w:0xFD:m -Uhfuse:w:0xD8: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 "C:\Users\kylee\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17/etc/avrdude.conf"

         Using Port                    : COM9
         Using Programmer              : stk500v1
         Overriding Baud Rate          : 19200
         AVR Part                      : ATmega2560
         Chip Erase delay              : 9000 us
         PAGEL                         : PD7
         BS2                           : PA0
         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    10     8    0 no       4096    8      0  9000  9000 0x00 0x00
           flash         65    10   256    0 yes    262144  256   1024  4500  4500 0x00 0x00
           lfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
           hfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
           efuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
           lock           0     0     0    0 no          1    0      0  9000  9000 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)

Error while burning bootloader.
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.

0x000000 sig indicates a wiring problem, or that you "burned bootloader" with a board selected that uses a crystal, but no crystal is connected (a clock source is needed for ISP programming, if none is present and it's not set to use internal oscillator, you must provide one, even if all you want to do is set it to use the internal oscillator.

Some new AVRs have clock failure detection, but the '328p does not.

If you're using bare '328p's and want to run off internal oscillator, I suggest installing MiniCore, which supports all the x8-series atmega's, with almost every clock option imaginable.

kehoy:
3. Tried switching to an Arduino mega 2560 board

That will never work. You're trying to burn the bootloader on an ATmega328P, so you need to have a board selected with an ATmega328P. You'll likely still get the same error when you do that, but at least you won't be compounding multiple problems on top of each other.

I've never trusted those round type of breadboard wires.. The pins in them are usually too thin to make
a good connection to the breadboard

kehoy:
Imgur: The magic of the Internet

Are you supplying clock with jumpers there?

There's a pictures and explanations tutorial on what you want here:

He goes through clock options shows DIY cabling, it's very complete.
His software comes with a chip ID program for many IDs.

You want any external clock very close to the clock pins if not soldered to them on short leads.
You want at least 2 bypass caps across the VCC and GND pins, also on short leads close to the pins.

You can run on the internal clock but you still need the bypass caps.

This is a failed O'Baka project:
https://make.kosakalab.com/arduino/obaka/project-2/index_en.html

It failed because it has a use. It can be plugged into a breadboard and used as an Arduino to say... program chips.

I look at wire wrap sockets like these:

I can butt 3 8 pin chips on a 24 pin socket and it looks like I can butt sockets and a 28-pin 328 could sit on 2 20-pin sockets with holes to spare. I've used sockets to hold resistors and leds before, it's good. Jumpers are too. Extra holes is build space.

The long wire-wrap leads can be bent outwards, even back up as headers. Glue board and labels to suit.
Crystal & caps, bypass caps, reset circuit all go under the sockets. The 12 extra holes, start with ISCP? Connect buttons?