avrOkay! This is a little guide intended for those just getting started out in the weird, wild world of The Ultimate In Geek: Programming your own microcontrollers. After you outgrow your Arduino, and find out that it’s really too much for a lot of applications, programming your own AVR microcontrollers is the way to go. This is not intended to teach you how to do everything- There’s plenty of documentation on each part of the process out there. I merely intend to compile what has worked for me in one central place.

Tools and supplies, software and a lot of links, after the jump!

Okay! I assume you already have a few things already, if you’ve read this far. I assume you have a soldering iron with some practice with it, a good mini-vise (That bad boy was worth every penny!), your usual assortment of wires, sockets and protoboard, a computer with an USB outlet, and some C for microcontrollers skills- What you’ve learned with your Arduino will help you with this.

Got a cup of coffee ready? Time for some reading.

1. Firstly, You will need an AVR programmer. I use Lady Ada’s USBtinyISP. Limor makes great products, and you’re supporting the community, too. You get the kit for 22 bucks, and it’s a steal at that price. It’s easily the cheapest and best In System Programmer you can get. Buy it, build it. Love it. Make it a special bed out of a cigar box to sleep in. I did!

2. Get to know your AVR microcontrollers, and order a little sampler from Mouser, Digikey, where ever. I ordered these to start, five of each. *don’t forget crystals and sockets! read the white pages for each chip to learn more* The list went: ATtiny13, ATtiny2313, ATmega168, and ATmega48. The ATtiny13 and ATmega48’s have been replaced by newer designs, so you might get lucky and find old stock somewhere, at a really good price. Basically, I went for a variety of chips, with different capacities and pins. I would have a look at the google ads on this page, perhaps you can find a good deal on hardware.

3. Software! You need software, of course, to make it all go. I use a mac, so I installed Crosspack, formerly known as AVR macpack. It includes AVRdude (AVR Downloader/UploaDEr – Kind of a stretch, if you ask me!) good ol’ GCC, and basically everything you will need in one package. Once again, Limor has provided an excellent tutorial on using AVRdude and her programmer in general. Read, learn, love. If you’ve got a windows box, you can use Atmel’s AVRStudio software, but please read Limor’s tutorial in order to learn how to use her programmer with it. I don’t have windows, so I don’t have the experience!

4. Lastly, You’ll need to wire up target boards, to hold your microprocessors while you throw code on them. EvilMadScientist Labs makes a great target board – get the development model with the ZIF socket and don’t forget the crystals for extra fanciness! This is only for a few MCU’s that you may find yourself using often. It’s not needed, really, but hey! It really looks cool, and is very tidy and professional, and ZIF sockets are just sweet! For your target board needs, though, I would like to refer you to this article I wrote not too long ago. They work nicely for me. And at about two bucks per, very inexpensive! I’ve labeled and attached all of my target boards inside small tins for tidiness, and longevities sake.

So, there you are! You now have what you need to start throwing code on AVR microcontrollers, on the cheap.

PS. Here’s something to get you started on using GCC for AVR’s. You’ll need it! GCC Tutorial for AVR