When you start programming AVRs, you already have your hands full with learning the C language, I/O registers on your chip, and how to manipulate the hardware. However, you also have to worry about your development environment. Figuring out how to compile code, get it on your device, and debug it can seem overwhelming when you’re trying to tackle one thing at a time.
Pete Brown, the lead of the Developer Guidance Community Team at Microsoft, has written a great post on how to properly prepare for a new AVR project. He covers how to choose a microcontroller, collecting necessary datasheets and information, setting up your hardware development environment and software IDE, and how to properly test and debug your code.
If you’re looking to make the jump from Arduino or another processor family but aren’t sure where to start, this should help get you off the ground. You can also cross-reference our tutorial on using AVR Studio 5 with Arduino projects if you want to mix and match environments.
Note: This tutorial has been replaced with an updated version that covers the same topic with Atmel Studio 6. Studio 6 makes a lot of improvements over the prior version, so there’s really no reason not to upgrade unless you have a very specific need. We’ve also incorporated a lot of fixes, tips, and great user feedback. Check it out here:
This article explains, step-by-step, how to set up the AVR Studio 5 IDE for use with Arduino projects. It also includes some background on the pros and cons of working with AVR Studio, notes on general setup for working with Atmel devices, and a few other tips we’ve picked up along the way. Feel free to skip around to the sections that interest you.
At Engblaze, we’re somewhat obsessed with squeezing every possible bit of performance out of our circuits. Ok, really obsessed. Like beyond Facebook-stalking and into restraining-order-territory obsessed. To that end, we consider it our duty to bring news of other intrepid performance squeezing pioneers in the DIY electronics world.
Frustrated at not knowing why your Arduino code is doing something funky? Or perhaps you’re a battle-hardened veteran of the “sprinkle Serial.println() every other line” school of coding. We at EngBlaze have had our own bad days with tracking down obscure code problems, and Steve is here to help.