If you’re considering making the jump from a dedicated prototyping platform like Arduino to a fully custom solution, you’ll need to read up on the microcontrollers you’ll be using. Arduino is powered by Atmel AVR chips, so moving from one to the other can be relatively painless with the proper tools and preparation. The AVR line ranges from small, inexpensive 8-bit devices such as the tinyAVR series to the powerhouse AVR32 range that can run variations of Linux and other modern operating systems.
AVRFreaks contains articles, a wiki, and a wide-ranging forum dedicated to AVR® development. Some of the articles are getting on in years, but most information is still valid. The forums are large and extremely active, and are one of the best places to go to find knowledgeable help on your AVR® project.
AVR Libc (or avr-libc) is the patron saint of most AVR programming. It provides a subset of the standard C programming language for Atmel 8-bit AVR chips. This library is the used with avr-gcc and the Arduino IDE, by far the two most popular choices in the hobbyist market for programming AVRs. Although other AVR compilers and libraries exist for BASIC and C/C++, this open source library has the widest support community. Best of all, it’s free! Using some form of the AVR open source toolchain is probably the best way to get started, and then you can branch out from there if needed.
For reference, avr-libc includes documentation on all of the standard modules and functions within the library. That should be your first stop when learning how to use a new bit of code. Even if you’re using Arduino, avr-libc’s documentation is helpful when you want to go beyond the Arduino libraries and include extra bits of functionality in your project. They also have a manual with useful topics on getting started, and an FAQ with tips and tricks to keep in mind.
Want to test your code virtually before deploying it to real hardware? simavr is an AVR simulator for Linux or any other platform that uses avr-gcc. Check out the Getting Started guide on the project’s homepage or this handy Instructable on how to debug your projects using the simulator. There’s also a Google Group for the project if you’re looking for further support and discussion.
AVR Studio® is an Integrated Development Environment (IDE) for developing and debugging embedded Atmel AVR® applications. Using an IDE isn’t strictly necessary to get code running on your microprocessor, but it makes your life much easier in terms of project organization, debugging, etc. AVR Studio is a variant of Microsoft Visual Studio, so it uses a proven platform and interface. It also includes a full code simulator to test your projects before uploading them to actual hardware. Check out the website for a good set of tutorial and getting started videos.
Support for 3rd party chip programmers may be limited, so make sure you check compatibility before migrating any existing projects.