It's been a while since I did what I call 'pioneering' AVR development, something new and interesting, something not within the realms of personal day to day work. Thankfully I've picked up a project interfacing an ATMega8 with a WIZnet W5100, which has me all enthusiastic about AVRs again. This post isn't really about that, however, it's more because I've decided to give my collection of AVR code a review, particularly as I'm one of those perverse types who insists on using C++ with Atmel Studio. The thing I've found about C++ is that it's much easier for me (personally) to organise my code into something clean and reusuable this way, so I've been modularising the most often used features of the ATMega8 (although it works with other MCUs such as the 328 and 88 with barely a modification) and building up a library I can use to piece together new projects quickly. Because there doesn't seem to be many resources for C++ on AVRs I've uploaded what I have to Github. There's not a huge amount yet, but hopefully it'll expand over time. Currently there are some useful utilities for accessing the ADC channels, creating timers, and using the UART / serial communications - including the ability to print debug data via RS232. The long term plan is to make it as widely compatible and as easily configurable as I can, but for now it will probably just be growing as and when other projects provide opportunity.