How to burn bootloader to ATmega328-PU

Dear All,

To burn the bootloader I used to use my Arduino Uno as ISP. Unfortunately this is not working anymore, and I don't understand why, therefore I'm looking for an alternative way...

I would like to burn the bootloader to my ATmega328-PU using a this FTDI adapter:

I have tried to look on the internet, but I don't understand how to connect it and neither how to use it... Some websites states to put various capacitor between RST or other lines, other not...

Plus I don't understand how have it in the programmer list.. I have the serial port correct..

Can anyone help me to clarify this? Thank you, dk

The FTDI adapter will not do this for you. That's why you can find no information on it!

You want a USBASP adapter.

FTDI Adapter can be made to do it. The FTDI on the Duemilanove could do it: I still have a duemilanove modified with pins for this.

Way easier to run Nick Gammon's ISP sketch on another Arduino tho.

Thank you for your replies.

I have tried Nick Gammon's ISP sketch on my Uno, but it does not work, it stops here:

Atmega chip programmer.
Written by Nick Gammon.
Version 1.28
Compiled on Nov 27 2014 at 15:32:10
Attempting to enter programming mode ...

so I tried this: to test the board detector.

  • Load the Atmega_Board_Detector on my Uno: successfully
  • Turn off everything
  • Made the connection as described here:
  • Turn my Uno on
  • Open the serial monitor

Unfortunately the only message I receive is this one:

Atmega chip detector.
Written by Nick Gammon.
Version 1.11
Compiled on Nov 27 2014 at 14:48:03

I have tried the following connection as well with a crystal:

I verified connections, tried with different crystals from different vendors (8mhz and 16mhz), changed capacitor, and tried with different wires. I did the tests with ATmega328-PU and with ATmega168-20PU (both empty and with bootloader).

Do you have any further suggestions please? Thank you, dk

Dear all,

I have tried several options, but it seems that my arduino uno is not able to "talk" with blank atmega for burning the bootloader.

I don't understand, I can upload sketches to my Uno and are working fine. I can use my Uno to upload sketches to a ATmega328-PU which I already have and has the bootloader already on it by:

  • Connect Uno to the board:
  • Edit avrdude.conf (located in \hardware\tools\avr\etc) by going to the Atmega328P entry and then replacing "0x1e 0x95 0x0F" with "0x1e 0x95 0x14".
  • Open sketch to be uploaded to the arduino on the board
  • File > Upload Using Programmer

But I'm not able to burn bootloaders... Does anyone have suggestions or other tests I can do?

Thank you, dk

EDIT: Last try: I uploaded Nick Gammon's ISP sketch on the ATmega328-PU I have via my Uno. Connected via FTDI as shown here:

and than connected it to by blank ATmega328-PU but it always stops at "Attempting to enter programming mode ..." :( same thing using an ATmega168-20PU...

I think a lot of the tutorials for burning the Arduino bootloader to the ATmega328 chips are incomplete. I went through the whole process after aggregating several methods for burning the bootloader and decided to write a tutorial myself on the process. There are several errors that many encounter during the burning process, including not selecting 'Arduino as ISP' under the programmer options!

Check out my blog post on the process below, if you're interested:

Arduino Internet of Things Part 1: Burning the Arduino Bootloader to the ATmega328 Board