This Lazy Old Geek is also an Arduino Geek. If you are an Arduino Geek, one of the common microcontrollers used by Arduinos is the Atmega328 chip. In order to use Arduino software, the Atmega must have bootloader software on it.

Okay, so I bought some blank Atmega328-PU chips from Mouser.com.
TIP: If you want to make your life simpler, order the Atmega328P-PU chips instead of the Atmega328-PU chips.
I didn’t realize there was a difference. As far as I can tell, the Atmega328P-PU has lower power but it also has a different device signature which is important to Arduino users. As of November 2011, the Atmega328-PU is cheaper by about $1.

Problem: So there are hundreds of articles on installing bootloader on the Atmega328. I built one using another Arduino to program the chip. I built one using the USB-BUB to program the chip. I built one using a parallel port to program the chip. Well, even after a week of troubleshooting and searching the Internet, none of them worked. So I gave up. I am usually a very persistent hacker but I’m getting old so I gave up.
Solution?: Well, about a month later I saw another bootloader from Ladyada.net:

Well, this one looked a lot like most of the others I’d built. But it was from AdaFruit which has some of the best tutorials (accurate, complete, well documented) I’ve seen for the Arduino and it had different code. So I hacked up the hardware (See picture) using a RBBB Arduino and loaded the software. And guess what. It still didn’t work.

Well, I looked at the code and saw that it was set up to use the Serial Terminal. So I opened up the Serial Terminal and ran the program again.
This is the error message I got. (See picture)

After a lot of fooling around with Bootloaders I thought that this was not the correct signature that most software was looking for.

Signature: So what is a signature? Well, it turns out it is a specific code hard wired into the chip to identify it. Now all of the bootloader software seemed to be looking for 0x950F and not 9514 or 0x9514.
GeekSpeak: This is like ROM code that cannot be changed. By the way when you see programming code written starting with ‘0x’ that means it is a hexadecimal number. I won’t go into details but hexadecimal numbers go from 0 to 15 instead of 0 to 10.
Signature: So it turns out the bootloader software I’ve seen were based on the 0x950F signature which is the signature for the Atmega328P-PU chip. Being in electronics for 40 years, I usually ignored letters after the number. They are usually just revisions. This is basically true but in this case, the change also affects bootloading.
GeekSpeak: The PU refers to the packaging in this case PDIP which will fit into the 28 pin narrow IC socket preferred by most hobbyists.

Step 1: My Programmer

Solution: Well, I did get it to work with my breadboard setup with some software changes discussed later but I wanted a more permanent setup. I did have a protoshield like the one used in the AdaFruit writeup but I wanted to save mine for future projects so I decided to build my own shield.

Parts List:
PCB I used a hunk of the following:
            5* Breadboard Bread Board Prototype 432 Points 5*7cm
            $1.39 ebay
28 pin IC socket
            $0.06 Taydaelectronics.com
2 1.2K resistors
1 red LED
1 green LED
1 pushbutton
Male header pins
            About $0.25 Taydaelectronics.com

I had all of the above on hand but the total cost was about $1.

About:Lazy Old Geek <br>Joined:Mar 18, 2010 <br> <br>About:Asmodeo <br>Member Since: May 30, 2007 <br> <br>Holy Molly! : I'm older!!! <br> <br>=O( <br>
Hi, LOG! <br>I really enjoy every one of your instructables, and as I am beginning with Arduinos, this one is , along with your &quot;arduino 101&quot; , a collectibe piece. <br>The problem is that I can download the .PDF . I tried 3 or 4 times but no luck. <br>I'll copy-paste in a word document, but It'll lack the &quot;sparky look &quot; that only a .PDF document has.... <br>Thanks again for your effort writing all those papers!!
Are you talking about the Download button in the upper left corner of the screen? If you click on it, then go all the way to the bottom, there is another button that says 'Download Custom PDF' Click on it. If I remember correctly, you have to be a member of Instructables to do this. <br> <br>By the way, I have an updated version of this: <br>https://www.instructables.com/id/UNO-Bootloader-In-Circuit-Programmer-1/ <br> <br>LOG
Oh boy.... I've been a member here for a looooong time! <br>I tried the &quot;Custom PDF&quot; and worked as a charm! thanks! <br>The odd thing was that today I downloaded a lot of Arduino related instructables with the &quot;normal&quot; download button and they went ok.... <br>Anyway, no problem! I have yours to read this weekend, too! <br>Thanks a lot! <br>I wish someday I could post my own Instructable...and, of course You will be one of my mentors. <br>Have a nice weekend <br> <br>
LOG - YOU ARE INDEED A GENIUS !!!<br> <br> i will be trying to make this but will try my best to use a <a href="http://www.ebay.co.uk/itm/170792728776?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1439.l2649" rel="nofollow">ZIF Socket</a> instead of the IC socket as i have 5 Atmega328P-PU chips but have another 10 on the way, lol<br> <br> Once again many thanks for an extremely-well-put-together 'ible &amp; the sheer simplicity of it should be easy enough for an electronics beginner like me to put together !!!<br> <br> Thanks so much for the Monumental-Help !!!<br> <br> ;-)
Just FYI, tayda electronics sells proto boards too - I think they are actually the same one as you have :)
Thanks. I forgot that they had proto boards. Lately, I've been doing most of my electronics shopping at Tayda electronics as they have the best prices I've seen on most things. And their shipping and handling seems pretty good.<br><br>LOG
neat :)<br><br>tho the 'bootloader' is the code on the chip that allows it to take programming from the pc wen the chip starts up.<br><br>what u have there is an 'in circuit programmer'<br><br>entirely different thing ;)
Thank you. You are correct. I was thinking that calling it a bootloader didn't sound quite right but I didn't bother to check on it. <br>I guess it would be more correct to call it an in circuit programmer that loads the bootloader onto an Atmega328 chip?<br><br>I will try to correct the titles.<br><br>LOG
much better :)<br>may have to make summin similar for a nano based board

About This Instructable




Bio: Lazy Old Geek
More by msuzuki777:Senior Moments Weather Station 5 IP Time Clock Part 2 
Add instructable to: