Error: Installing Bootloader on Arduino Duemilanove / Atmega328P-PU

Dear Arduino Community,

some time ago, I bout an Arduino and started learning to build curcuits and write programs with the Tutorials on this page. I like the Arduino project a lot. But now, I have a strange problem that I have not been able to solve. I would be very happy I anyone could help me.

I bought several Atmega328P-PU without the bootloader. I tried to install the bootloader using the follong instruction:

I followed all steps accurately, but for some reason I keep getting errors. Below, I repeat the steps, just in case there is a stupid mistake that I do not recognise.

I opend the Example "Arduino ISP"

Second I selected my board and Chip.

Third, selected the standard programmer

I uploaded the Code which worked fine.

I wired up the cables in the according way. Every single connectetion was checkt several times. It must be correct.

These are my capacitors and the crystal

Now, I want to upload the bootloader onto the new Atmega328P-PU. I selected the programmer "Arduino as ISP"

And uploaded the bootloader.

Which resulted either in this error

Arduino: 1.0.6 (Windows 7), Board: "Arduino Duemilanove w/ ATmega328"
avrdude: stk500_getsync(): not in sync: resp=0x15

Or in this

Arduino: 1.0.6 (Windows 7), Board: "Arduino Duemilanove w/ ATmega328"
avrdude: stk500_program_enable(): protocol error, expect=0x14, resp=0x50
avrdude: initialization failed, rc=-1
         Double check connections and try again, or use -F to override
         this check.

avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x51

Or in this

Arduino: 1.0.6 (Windows 7), Board: "Arduino Duemilanove w/ ATmega328"
avrdude: stk500_getsync(): not in sync: resp=0x00

Of course I browsed the web and found some hints what to do. First, people suggested to add an external power supply. Second, that the delay value in the heartbeat function should be flipped between 20 and 40.
I tried both but none did work.

I also performed some checks to make sure my hardware is working:

  • I could upload the blink example and could really see the blinking LED. So the arduino with installed Atmega238P-PU runs fine
  • I also unplugged the Atmel238P-PU from the breadbord and installed anotherone.
    And all resulted in the same error.

Does anyone have another suggestion on what to do?

The connections between your Duemilanove and breadboard are done with jumpers from China. These jumpers, the ones with black ends - can have many problems.

Remove each jumper, clean the ends well, tug on each end and measure with an ohmmeter to confirm good continuity. Then plug them back into the protoboard, ensure that each end is securely held by the contacts in the protoboard.

Not that is a problem but in your explanation, where you say "Third, selected the standard programmer", this step is not needed and does nothing - and you do not have an AVRisp mkII.

One last thought - the wire leads of the crystal may be smaller than the holes of your protoboard. Remove the crystal and slowly re-insert it making sure the protoboard connectors provide resistance against the insertion of the wires. If they feel loose, solder larger diameter wires onto the crystal.