A versatile programmer for atmel AVR microcontrollers