Arduino Leonardo as ISP ( programming for ATMega328P )

I am trying to program a script to an atmega328P but keep failing, because of that: "Device signature = 0x000000"


I connected the ATMega328P like this:


(https://www.bitfoic.com/upload/20231213/25844c0c0e8684550735d6f25012063d.jpg)
(https://content.arduino.cc/assets/Pinout-Leonardo_latest.pdf)


ATMega --- Arduino Leonardo

PIN 7 ----- Arduino leonardo digital pin 5V
PIN 20 --- Arduino Leonardo Digital pin 5v (the same as above)
PIN 8 ----- Arduino leonardo Digital Pin GND
PIN 22 --- Arduino Leonardo Digital Pin GND (the same as above)
PIN 1 ----- Arduino Leonardo Digital Pin 10
PIN 17 --- Arduino Leonardo ISCP 4 (bottom)
PIN 18 --- Arduino Leonardo ICSP 1 (top right)
PIN 19 --- Arduino Leonardo ICSP 3 (top)


And I also connected a 10 uF condenser between RESET (long metal) and GND (short metal)
but it didn't help.

What i did:

I first opened the example Arduino as ISP sketch and changed the heartbeat to Pin 13, so I can see it. The reset pin was already changed to Pin 10 so i didn't had to do anything else

After that I uploaded it to the Leonardo - successfully
the L - Pin started a heartbeat.

Then I created a little sketch for the ATMega and after selecting tools -> Arduino Uno and tools -> Arduino as ICP (Leonardo - ME)

...\Arduino15\packages\arduino\hardware\leofix\programmers.txt
arduinoispleo.name=Arduino as ISP (Leonardo - ME)
arduinoispleo.communication=serial
arduinoispleo.protocol=arduino
arduinoispleo.speed=19200
program.tool=avrdude

and pressing burn bootloader, because I just bought the Atmega, that error came into the console:

C:\Users\mirek\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17/bin/avrdude -CC:\Users\mirek\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17/etc/avrdude.conf -v -patmega328p -carduino -PCOM5 -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 "C:\Users\mirek\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17/etc/avrdude.conf"

         Using Port                    : COM5
         Using Programmer              : arduino
         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 : Arduino
         Description     : Arduino
         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.00s

avrdude: Device signature = 0x000000 (retrying)

Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x000000 (retrying)

Fehler beim Brennen des Bootloaders.
Reading | ################################################## | 100% 0.00s

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.

0x00000 means that the ATMega doesn't responses, but i tripple checked every connection and even connected it to the ICSP header of the Leonardo, but it didn't work. Even without burning the bootloader and just Uploading using programmer, the same error occurs.

To get started with a factory fresh, bare ATmega328P chip, some extra parts are required, and the ISP programming frequency MUST be set to 250 kHz or less, or you will continue to get the above result. The MCU clock fuses are preset to the internal RC clock and the frequency defaults to 1 MHz.

Have a look at this excellent tutorial and follow the instructions: Gammon Forum : Electronics : Microprocessors : How to make an Arduino-compatible minimal board

I switched to the Arduiono Uno, to try and did everything like in the tutorial. I didn't had a crystall so i used D9 on the uno, but it didn't help. it still says:

Atmega chip detector.
Written by Nick Gammon.
Version 1.20
Compiled on Jul 29 2025 at 17:32:24 with Arduino IDE 10607.
Attempting to enter ICSP programming mode ......................................................
Failed to enter programming mode. Double-check wiring!
Programming mode off.

Could be a wiring problem, defective breadboard, etc. Post a good pic of your setup.

Here are some pictures:
Sum
ATMega
ATMega Top Connections
Arduino Uno (Cheap board but it works fine)

A few things i want to say:

  1. I am using a Cheap version (Miuzei) of the ARduino Uno, but i dont think it has any big changes to the orignal (it also dosnt work with the leonardo i tried both: ICSP Header and Digital)
  2. Its kind of hard to get good pictures with jumping wires, but i hope it still works!

oh and I also removed the two orange comparators, because in the picture with the digital pin 9 as clock there weren't any
Thanks

I could view only the first image "Sum", and don't see the required decoupling capacitors.

Please upload pictures into your, as described in "How to get the best out of this forum". Many forum members will not click on links.

oh i didnt see the feature, that you can post images instant in arduino oops



ok idk why this is so blurry but
black wire -> D9
yellow wire -> D10
orange wire -> D11
Green wire -> D12
Brown wire -> D13

You need to pay attention and follow the tutorial instructions more carefully. Do you see the required capacitors?

yeah, i removed them because i coudn't find them the Alternate clock source image,so i moved one to the + - wire


i moved both to the vcc and gnd point but it didn't help i still get

Attempting to enter ICSP programming mode ......................................................
Failed to enter programming mode. Double-check wiring!
Programming mode off.

I somehow managed to burn a bootloader using this website: Gammon Forum : Electronics : Microprocessors : How to make an Arduino-compatible minimal board
But when uploading a blink sketch

void setup() {
  pinMode(13, OUTPUT);
}
void loop()
{
  digitalWrite(13, HIGH);
  delay(500);
  digitalWrite(13, LOW);
  delay(500);
}

Nothing happens... I connected a resistor and a LED between Pin 13 and GND (when switching from pin 13 to VCC the LED shines) but nothing happens.
I tried disconnecting everything except for the vcc and gnd (and AVCC and the other GND) but it didn't help. When removing the 10K Resistor between the RESET and GND of the ATMega one LED on the Arduino Uno starts blinking! But when disconnecting power from the atmega it stops

IT WORKS!!!! Pin 13 isnt Pin 13 it's Pin 19 because it uses Arduinos pinlayout on the board or something like that...