Instructables
Picture of Bootload an ATmega328

This instructable adds to any of the Arduino on a Breadboard instructables. I wrote my own breadboard-Arduino tutorial, and then I found that I was struggling to program some of the boards I made. A lot of research and dead-ends got me understanding that:

1. You either need a microcontroller with a pre-loaded Bootloader, or must load your own
2. Not all ATmega328’s are equal

(A bootloader, very simply, is a programme that sits on the chip and manages the upload of your sketches onto the chip)

There are plenty of bootloading resources, but I couldn’t find a single one that pulled everything together in a way that made sense to me.

If this instructable helped you, please visit Crash Bang Prototyping, follow us on twitter, and join in with our prototyping resources and tools.

Here goes…

 
Remove these adsRemove these ads by Signing Up

Step 1: Parts

1 x Arduino on a Breadboard
1 x Arduino UNO
Connecting Wires
Arduino IDE installed on your PC

Step 2: The Approach

Picture of The Approach

We’re going to use the Arduino UNO to bootload the ATmega328 that is sitting on the Arduino-on-a-Breadboard. This is fairly straightforward if you have an ATmega328P-PU, but needs an extra step for an ATmega328-PU. I’ll tackle the differences later in the Instructable.

Step 3: Program your Arduino UNO as an ISP

Picture of Program your Arduino UNO as an ISP

We need to program the Arduino UNO to act as a an ISP (In-System Programmer), so that it can burn the bootloader onto the Breadboard chip.

  1. Open the Arduino IDE
  2. Open the ArduinoISP sketch (under File, Examples)
  3. If you’re using version 1.0 of the IDE:

search for void heartbeatand change the line that reads:

delay(40);

to

delay(20);

Connect your UNO to the PC, making sure it’s not connected to the Arduino on a Breadboard.

Ensure your UNO is selected under the Boards menu option, and upload the sketch.

1-40 of 63Next »
bhutanidivye10 months ago

Thanks a lot

gewkwn10 months ago

thanks for info !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

kylebarker8211 months ago

IT WORKED!!!

AndyTallack (author)  kylebarker8211 months ago
Great stuff - thanks for letting me know! Would love it if you followed Crash-Bang on Twitter as a thanks :)
Thanks for this. Helped me save a wasted ATmega328
AndyTallack (author)  Antzy Carmasaic11 months ago
Excellent, pleased it helped! Thanks for letting me know.
JPS212 days ago

Perhaps a better, more permanent solution: if you buy a lot of these chips is to edit avrdude.conf and add the following below the part parent "m328" section:

part parent "m328" id = "m328pu"; desc = "ATmega328PU"; signature = 0x1e 0x95 0x14; ocdrev = 1;

This should permanently add the 328PU to your supported parts for avrdude.

saikat1922 days ago
It didn't worked fr me I''m using atmega 328-pu
AndyTallack (author)  saikat1922 days ago
Sorry to hear that - can you give me more info?
saikat1922 days ago
It didn't worked fr me I''m using atmega 328-pu
MarkF71 month ago

If swapping back and forth gets annoying then you can just copy the entire section to a new one, give it an id of "m328pu" and a description of "ATMEGA328PU" with the appropriate fuse values. You can then edit your Arduino IDE "boards.txt" file and create a new board based on the Uno one with the mcu set to "atmega328pu". You'll then be able to select that device in your IDE Board list in addition to the regular Uno board.

AndyTallack (author)  MarkF71 month ago
Thanks Mark. I had tried that originally, but the GCC toolchain (as I understood) didn't support it. What version of the IDE are you using? I believe the new GCC toolchain now supports but haven't had a chance to test yet.
mbose21 month ago

Plz help me Sir, I have modified the conf file. But now on hitting arduinoisp, it says 'Expected signature for ATMEGA328P is 1E 95 14'.

AndyTallack (author)  mbose21 month ago
Hi

Does it tell you what the actual signature is?

Are you sure it is an ATmega328?

Thank you so much for replying Sir. That was my mistake. I'm now using IDE1.0.1(1.0.6 previously). The error now is unrecognized character : "P"

3suresh2 months ago

i made iiiiiiiittttttttttttttttt

mbose2 3suresh1 month ago

I get error message saying expected signature for ATMEGA328P is 1E 95 14, even after modifying the conf file. Do you know the solution Sir?

novianwf2 months ago

thanks a lot i want to try this

ShajeehM2 months ago

i m getting this error avrdude: stk500_getsync(): not in sync: resp=0x00 while burning the bootloader to atmega 8L-8pu can any one tell me how to burn bootloader to this chip

AndyTallack (author)  ShajeehM2 months ago

Sorry I don't have an ATmega8 to test this on, but should work - see the comments below on possible way to do this.

ShajeehM2 months ago

i m getting this error avrdude: stk500_getsync(): not in sync: resp=0x00 while burning bootloader to atmega8L-8pu can some one tell me how to burn bootloader and upload sketch to this chip

ShajeehM2 months ago

i m getting this error avrdude: stk500_getsync(): not in sync: resp=0x00 while burning the bootloader to atmega 8L-8pu can any one tell me how to burn bootloader to this chip

ShajeehM2 months ago

please navigate me the option to update my board.txt file .

ShajeehM2 months ago

can we bootload atmega 8 using the same procedure

AndyTallack (author)  ShajeehM2 months ago

Sorry I don't have an ATmega8 to test it on. Check the comments below - similar question there.

ok andy thanx for the reply i m going to bootload atmega 328 first using arduino hope this procedure will work


i need the avrdude file plz

AndyTallack (author)  shaditheman1232 months ago

http://download.savannah.gnu.org/releases/avrdude/

tsaltzman3 months ago

Thanks! Fixed my problem. :)

b33ma2473 months ago
I'm getting error 0x01e 0x96 0x14

I'm trying to boot load the 328-PU chip (on breadboard) with 328P-PU chip in uno r3

Have programmed uno (atmega328p-pu) as ISP bootloader

have changed hex value to 14 in avrdude.conf

Just get error on bootloading?
AndyTallack (author)  b33ma2473 months ago
Can you send the full error message?
Did you restart the Arduino IDE after you edited the avrdude.conf?

Cheers
Andy
ShreyasD14 months ago

Thanks !!

it worked at last

digonto.GL4 months ago

this really helped me a lot man . thanks a lot and briliant work boss

raja_sekharan7 months ago

Thank you, for the clear instructable. Keep up the good work !

nandan31017 months ago

Hey I tried a lot but it's not working I don't know why I have exactly followed your steps as you said then also it is showing me error again and again

Yikes! Invalid device signature.

Double check connections and try again, or use -F to override

this check. PLEASE HELP ME THANKS

AndyTallack (author)  nandan31017 months ago

Hi. Can you check which ATmega chip you are using?

kylebarker8211 months ago

Should we still use a 16MHz Crystal for pin 9 and 10???

AndyTallack (author)  kylebarker8211 months ago
Yep, I use a 16MHz crystal. In the next few months I'll be working on an instructable for using other crystals - speed vs power and any complications like uploading sketches etc.
rohith9991 year ago
hiii andy i have successfully bootloaded atmegaP-PU chip using ur tutorial now i want to upload a blink sketch to test it later i want to reflash this chip using pulse sensor sketch using arduino uno tx and rx pins without using FTDI and after thant i want to remove tx and rx pins from arduino and i just want to power up using battery will the sketches run ?
all i want to know this because i am preparing beetband sleeve http://makezine.com/video/wear-your-heartbeat-with-a-pulse-sensor-and-weekend-projects/ from the make magzine could you please help me regarding this


thanks
AndyTallack (author) 1 year ago
Great, thanks for the link.  Why don't you put it into a full-blown instructable, so that everyone can search for it more easily?

A suggestion - I prefer the hardware files from :
http://code.google.com/p/arduino-tiny/

I haven't looked into it in detail, but this seems to offer greater language support - eg. Serial (which the GIThib  version doesn't support)...

Cheers
Andy
1-40 of 63Next »