Introduction: Burning Atmega328-pu and Atmega328p-pu Bootloader

Burning the boot loader in an atmega328 could be somewhat tricky but if u follow these steps correctly youll be able to bootload any type of atmega328 micro controller ..




Step 1: "setting Up the Hardware"

Picture of "setting Up the Hardware"

-List of stuff you'll need:

- An Arduino board (any type)

- 18-22pf capacitors (x2)

- 16 MHZ oscilator

- Breadboard

- 10 Kohm resistor

- Jumper wires


- Bread board



Assemble everything as shown in the figure (on a bread board) :

- arduino board (pin10)->breadboard (pin1)

- arduino board (pin11)->breadboard (pin17)

- arduino board (pin12)->breadboard (pin18)

- arduino board (pin13)->breadboard (pin19)

- (pin 7 ) and (pin20) of breadboard ->+5v of arduino board

- (pin8) and (|pin 22) of breadboard ->gnd of arduino board

- 10 Kohm resistor from(pin 1 ) to +5V

-16 MHZ oscilator from (pin 9 ) to (pin 10)

- 18-22pf caps : first one from (pin 9) to gnd ,second one from pin 10 to gnd






Now for the hard part made easy .


.The software.

Step 2: "The Software''

Picture of "The Software''

Now just unplug the +5v and gnd jumper wires before u upload the Arduino isp code.

To upload the code just open the Arduino IDLE which is the place where u type codes.

click on files/examples/Arduino ISP and another screen pops up make sure u have the correct board selected (not the atmega microcontroller on the breadboard).

in my case its arduino uno and press upload after uploading remove the usb cable of the arduino ..

now before plugging the wires back u have to make some changes to some specific files ....

make a copy of the arduino software not the IDLE but the intire file uve installed so that the changes won effect the origonal copy.

ok now enter the copied arduino file go to examples than arduino ull c a file called boards , just delete it and replace it with the one attached in this step.

now one last thing ,go back once enter tools /avr/etc replace that avrdude file with the one i attached .





.Now close everything and enter the copied arduino file go to tools / boards and u should get Atmega 328 on a breadboard(8 HZ internal clock),select it than scroll down to programmer(in tools also) and select arduino as isp...sellect the correct comm port...




.after uve prepared all of that softaware plug in the usb and the +5v and gnd wires wait for the com port to appear sellect it and select bootloader and voila !!!!! it should upload..




.now to make sure it works keep all the wires as they are :

- just remove the 3 wires..''arduino board (pin11)->breadboard (pin17), arduino board (pin12)-> breadboard (pin18), arduino board (pin13)->breadboard (pin19)'' shown in step one ,and connect (pin 0) of arduino board to(pin 2 ) of breadboard ,and pin(1) of arduino board to (pin 3) of breadboard.

- and most importantly gently remove the micro controller from ur arduino board.




.now go to examples /basics /blink ....change ( pin 13) in the code to (pin 2).(make sure u restore the programmer to AVRISP mkII in the tools) and connect a led positive end on pin 4 of breadboard to gnd and upload should start blinking ......




if u want to keep uploading the arduino this way u have to repeat step 2 all over again everytime u want to upload something new ...but u can simply remove the atmega from the breadboard and replace it with the one on the arduino board but sellect the micro controller specifications not that of the board(which is atmega328 on breadboard(8 MHZ internal clock)).




plz comment and update me on ur progress.


tiMRoni (author)2015-10-18

I did exactly what you said but its giving error,
"Error while burning bootloader: missing 'bootloader.tool' configuration parameter"

plz help

MohammadU18 (author)tiMRoni2017-10-21


tiMRoni (author)tiMRoni2015-10-18

Sir i changed your method of booting by editing the "avrdude,conf" (original file),by changing the signature

"signature = 0x1e 0x95 0x0F;" to "signature = 0x1e 0x95 0x14;"

now its working awesome, thanks for the idea... :-)

JohnN3 (author)2014-11-17

Why would you use the 8 Mhz option if you've wired the 16 Mhz osc?

shaditheman123 (author)JohnN32014-11-20

it does not matter ,software wise.

moshayedi (author)shaditheman1232017-01-26

hi i sue your post but i have below problem


avrdude: WARNING: invalid value for unused bits in fuse "efuse", should be set to 1 according to datasheet

This behaviour is deprecated and will result in an error in future version

You probably want to use 0xfd instead of 0x05 (double check with your datasheet first).

MohammadU18 made it! (author)moshayedi2017-10-21

I got the same problem anyone can help

i already change the signature

from this

ATmega328P 0x1E 0x95 0x0F

to this

ATmega328 0x1E 0x95 0x14 in avrdude.config file

i want bootload atmega328-PU

AndréK8 made it! (author)2017-07-12

I could not do part of the files, however, just by setting up the schematic circuit already worked for me, on some websites and blogs say it really may be the way it was mounted or failed on the breadboard.

Thank you.

SurenderS10 (author)2017-03-23

Did everything as mentioned above. I even uploaded the blink program and it worked as charm. Thanks to you. However, I tried to upload another program with the same set up and it shows

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

Do help me? Thanks in advance.

prabakaranp (author)2016-12-02

use full information thanks

Suyogpatange7 (author)2016-06-08

i want to bootload atmega328p-pu plz help

DJLJ (author)Suyogpatange72016-10-19

the title says "atmega328-pu AND atmegap-pu"

DJLJ (author)DJLJ2016-10-19

sry ment "... atmega328p-pu"

jkanth (author)2016-08-05

Getting this error always. I've double checked the connections and also replaced "signature = 0x1e 0x95 0x0F;" with "signature = 0x1e 0x95 0x14;" in avrdude.conf

-Arduino: 1.6.9 (Mac OS X), Board: "ATmega328 on a breadboard (8 MHz internal clock)"

-Error while burning bootloader: missing 'bootloader.tool' configuration parameter

scottfrazier (author)2015-11-18

I am creating an instructable of my own. I would like your permission to refer to your instructable on loading bootloader if they need it.

yeah no problem man!

CarraN (author)2015-10-10

problem: Atmega328PU

solution: usbasp

CarraN (author)2015-10-04


I get this error message while burning

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

avrdude: Send: Q [51] [20]
avrdude: Recv: . [14]
avrdude: Recv: . [10]

avrdude done. Thank you.

shaditheman123 (author)CarraN2015-10-05

what version arduino ide do you have?

carranen (author)shaditheman1232015-10-05


thank you for answer

shaditheman123 (author)carranen2015-10-10

this should work just make sure u follow the steps correctly and replace the avrdude and boards. txt files with the ones i added.

shaditheman123 (author)CarraN2015-10-05

what version arduino ide do you have?

carranen (author)shaditheman1232015-10-05


thank you for answer

shaditheman123 (author)carranen2015-10-06

go through the instructable again and pay attention to details and make sure that you replaced the files correctly both the board.txt and avrdude.
it does work with your arduino version.

scottfrazier (author)2015-09-27

This was very helpful. thank you for doing this. The last set of Atmega 328p-pu chips I ordered did not have the bootloader pre loaded as advertised. After following your instructions the chips now work. I did notice that on the three chips I loaded I have to change the board type from "unio" to "arduino duemilanove w/atmega328" probably not a big deal just need to remember witch chips are witch. is there another file to use to match them up?

hmmm i dont think you could ,but i could be wrong .

i always remeber when the upload fails haha :p .,

but thank you for liking my instructable . :)

About This Instructable



Bio: just full of curiosity
More by shaditheman123:DIY  remote controlled arduino motor shield!burning atmega328-pu and atmega328p-pu bootloader
Add instructable to: