Arduino UNO as ISP Atmega328P-PU

I know there have been quite a few similar problems on this and other forums, but none so far have been able to help me.

I’m trying to get a sketch on a seperate Atmega328P-PU with arduinoISP. I have the chip lying around for a while and could swear I’ve burned the bootloader to it before. However, using this tutorial yields:

avrdude: stk500_getsync(): not in sync: resp=0x00

Trying to burn the bootloader again using this tutorial yields:

avrdude: Yikes! Invalid device signature.
Double check connections and try again, or use -F to override
this check.

I’ve tried checking each connection so many times, pictures of both setups are attached. The pins on both Atmega’s are wearing down from the constant connecting and disconnecting, so I hope to figure this out soon!

That is a '328P, not '328?

Try Nick Gammon's bootload installer as well.

Yeah, definitely P. I tried Nick's method as well as Optiloader, both threw errors. I'll try again just to be able to give you the output.

Nick's Sketch outputs gibberish on the serial monitor, something like "J%P¤þeº1J%P¤þ??-öÿ"

And that's a 16 MHz xtal? Not the typical package we see. Sure looks like data rate problem.

I was suprised at getting such a large package too. But it's what I got at the shop and it does say 16.000Mhz on the side, so..

I was suprised at getting such a large package too. But it's what I got at the shop and it does say 16.000Mhz on the side, so..

In the BIG packages, there is a possibility that the normal crystal load capacitance requirement is different than the more traditional packages. In fact, you may not even require the capacitors.
If possible, backtrack to the vendor you purchased from and try and track down a datasheet. Otherwise, try without caps, then with 6pF, then with 10pF, etc. If you get to 30 pF and it is still not function correctly... probably is not the caps! :astonished:
Edit... looking over some PDF from Farnell, physically larger crystals seem to require larger load capacitors... at least in the example I studied. Any xtal freaks out there that can add info here?
The math is here:


I gather you guys blame the crystal. I've ordered new crystals online, since I don't have any other capacitors lying around (aside from 10 µF, but I don't guess those'd work). I'll keep you updated, but any further ideas are welcome.

blame the crystal

I think "blame" is too strong for what I would call educated guessing. We really do not have enough information to suggest blame.

A few pointers from someone that builds many "raw" Atmel chip designs and program them using ISP:

  • one should secure numerous small parts- that is, electronic components like bulk/bypass caps, xtals, uC, resistors
  • one should invest in a ZIF programmer or other appropriate ISP harness
  • one needs an official arduino with uC matching the "bare" board builds - 328P, 32U4, etc.

Out of over 25 builds, I have only had one (1) which failed to ISP. It was a varient on my FLAT-duino design. I tossed it in a box to look at with the scope at some rainy day in the future. The lesson: no matter how much you know if how much success one has under their belts, failure is just a cold solder joint away (or bad component, ESD, misread component value, or just human error).

Building homebrew electronics is not for the frugle individual - you must invest in ample small parts. For example, an assortment of small value capacitors from 6pF to 47pF is mandatory but not expensive if purchased as an assortment... You get 50% weird values, but plenty of standard values. Parts substitution is the #1 way to troubleshoot.

Invest in a decent DMM.
If you find yourself building a special needs cable, keep it forever.
Have 1 or more official Arduino to test code.
Invest time in your education. This means software and hardware - the two are not inseparable.


ZIF socket and ISP have been ordered, I’m going out for the caps tomorrow. Keep you posted.

It’s been a couple of years, but I purchased something like this: BUT I had a larger number of values in the 1pF to 47pF range. But you get the idea. Also, for bypass 20% is alright but I purchased 5% and 10% for anything in a timing circuit. Still, 20% is still good enough for most breadboard use but remember that there is lots of stray capacitance on breadboards, so go carefully when transferring from solderless breadboards to PC board.

As I mentioned earlier, try and consult Crystal data sheets for the correct load capacitance value. You may find this homebrew version interesting during a testing phase.


I got my USBasp today, and using that I get
“avrdude: error: programm enable: target doesn’t answer. 1”

So to me this sounds less like a timing issue and more like a chip that does nothing at all. Is this possible and if yes, how do I check it/fix it.

Additionally try connecting the programmer Arduino’s Reset pin to Ground via a 10uF capacitor. Only that connection works for me: ATMega328P, Arduino Uno

On a side note, please try to resize pictures to about 800 pixels wide. Some browsers have problem showing so big a picture, and in some parts of the world people are having slower Internet connection.

I won't be using the arduino as ISP anymore since the tutorial tells me to remove the atmega, and I've already had to re-solder one of the pins. Strictly USBasp from now on, but thanks for the input Sayedurrchowdhurry.

Got it fixed in the end. Just don't ask me how I did it, because as far as I know it was the same thing I've been doing for days :stuck_out_tongue:

Got it fixed in the end. Just don't ask me how I did it, because as far as I know it was the same thing I've been doing for days

I hate it when this happens XD

But it does happen. Just out of curiosity are there any "new" components in the working circuit?


Sorry if this sounds like a rant but I am completely fed up with the lack of consistency when trying to burn the bootloader/sketches to the atmega. I didn't realize I trying to accomplish something so simple could be so frustrating. Why the arduino guide pages are almost always out of date or just flat out wrong is beyond me.

Anyways, my goal is to use the 328P-PU from the UNO on a breadboard using the internal 8MHz clock. I have already installed the (which isn't really a .zip?)

I pulled the ATmega 328P-PU from an UNO
Using another UNO with the ArduinoISP sketch loaded, I attempt to burn the boot loader.
I have a 16MHz crystal w/ caps on the breadboard with it.
It burns the bootloader successfully!
I put a 10uf cap across GND & RESET
I attempt to load a sketch and I get these errors,
avrdude: stk500_getsync(): not in sync: resp=0x1c

What can I do?

I put a 10µf cap across GND & RESET

What's that about?

That will prevent you loading a sketch on whatever device you do it. If you want to load a sketch, you need to have the 0.1µF capacitor from the DTR (or RTS) on the USB interface - FTDI or CP2102 or PL23203 - to the reset pin, a 10k pull-up on the reset pin, and nothing else to that pin.

So far I haven´t needed the 10uf cap
One advice: be careful if you're using the same board for burning and uploading.
I used a Uno to burn the bootloader (to a chip on a breadboard), remove the chip from the Uno, and upload code to the chip on the breadboard. After 3 or 4 times doing so, the Uno's ATMEGA328P stopped working. It took me a long time to notice where the fault was. The problem was the board, as I replaced the chip with another working ones and the Uno still refused to work.
However, without the chip, it's still worth to upload code to other boards, so now I use a new Uno Rev3 to burn the bootloader and the ruined Uno to upload code.
Another tip: If you think the 16MHz clock may be faulty, remove the clock and the 2 capacitors and try to burn using an 'Atmega328 on breadboard (8 Mhz internal clock)' , just to check if the problem is caused by the clock.