Invalid Device Signature AT328PU w/ mega2560 as ISP

Hello Everyone!

I’ve been trying to flash simple blink led program to at328pu chip using my mega2560 as isp. i have the wiring set up like this:

mega2560 Reset → 10uF cap → gnd
mega2560 5V → at328 7, 20
mega2560 gnd → at328 8, 22
mega2560 52 → at328 19 (sck)
mega2560 51 → at328 17 (miso)
mega2560 50 → at328 18 (mosi)
mega2560 10 → at328 1 (reset)

i edited the isp script definitions to reflect the mega2560 pins im using. i uploaded the sketch no problems. I also have an led connected to pin 9 of mega2560 to show pulse to indicate isp script is reunning.
i tried running this command:
avrdude -C %CONF% -c stk500v1 -P COM3 -b 19200 -p m328p -U flash:w:328-blink-1.hex:i
and got invalid device signature
I’ve tried changing stk500v1 to v2 and arduino but same result
I also tried using burn bootloader in arduino ide and still got invalid device signature.
I know the chip has power and this is the same setup I used for my attiny85 which works.
Any suggestions on what to try? Or perhaps I’m missing something obvious?

thank you so much for your help in advance!

Here is verbose output:
Using Port : COM3
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.04s

avrdude: Device signature = 0x000000 (retrying)

Reading | ################################################## | 100% 0.07s

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.

** please note that the chip does have power despite 0V displayed in verbose output. verified with meter

A couple of missing things jumped out at me:

  1. 16MHz crystal with 22pF caps to ground on the AT328PU's XTAL1 and XTAL2 pins.
  2. 0.1uF cap across the AT328PU's Vcc and GND pins.

Ah gotcha – I forgot to to connect .1uF cap across both VCC and GNDs. If you know, could you please explain why we need these elements but don’t need them for attiny85? Thank you for your help!