
There are currently two footprints for the programming connector of AVR controllers: the most common one, which is the one used in this design, is the one proposed by Atmel in the AVR910 application note. All passive components are in 0805 package, the clamping diodes are in SMA package, the USB connector is a PTH footprint (but an SMD one will fit fine) and the programming connector is side mounted.

The microcontroller I used is an ATMega168-20AU, the SMD version with TQFP package.

My version is a USB key-like design, using many SMD parts and a very small PCB. What I’m publishing in this post is my version of the popular USBasp, an open source USB AVR programmer design from Thomas Fischl. While you can freely download all the software you need, including the source code, for the programming hardware you have to choose between buying a commercial programmer (either from Atmel or some third party) and building your own.

If you choose to work in plain C what you need is just a toolchain (you probably have some package ready for your distribution), the avr-libc library, a programming software like avrdude and a hardware programmer! So, you saw some AVR microcontrollers and you decided they are cute (they really are!).
