Required Software ================= -avr-gcc -avr-libc -binutils-avr -avrdude The toolchain must be a fairly recent version in order to support the Atmega88PB. I'm using packages from debian sid with the following versions: -gcc-avr 4.8.1+Atmel3.4.5-1 -binutils-avr 2.24+Atmel3.4.5-1 -avrdude 6.0.1-1 Unfortunately, even the most recent version of avr-libc in debian (1.8.0+Atmel3.4.5-1 at the moment) doesn't have complete support for the Atmega88pb: the vector for the UART start bit interrupt isn't present. To get around this issue, avr-libc most be modified and re-built from scratch. To fix avr-libc, add the following block at line 753 of include/avr/iom88pb.h: /* USART Rx Start */ #define USART_START_vect _VECTOR(26) #define USART_START_vect_num 26 And change line 754 to read: #define _VECTORS_SIZE 54 A modified version of avr-libc is present in the "../avr-libc rebuild/" directory. Avrdude must be modified slightly to add support for the mega88PB. Add the following section to /etc/avrdude.conf just after the section for the atmega88: part parent "m88" id = "m88pb"; desc = "ATmega88PB"; signature = 0x1e 0x93 0x16; ocdrev = 1; ;