Programming and customizing the AVR microcontroller