Вобщем открыл я ваш проект, там были закоментированые строки UBRRL = 77; и UCSRB = (1<<RXEN) | (1<<TXEN);, я коменты убрал чтобы аппаратный юарт смог работать, переставил D- на ногу 4 в обеих файлах которые вы сказали. Прошил МК, загрузил прошивку подключил к компу, девайс компом распознался, открыл две терминалки, соеденился с двумя СОМ портами, отправил в виртуальный символ 1 но с аппаратного СОМ порта ничего не пришло

.
Я немного переделал код и добавил вот это:
DDRC |= (1<<2)|(1<<3);// на PC2 and PC3 припаяны светодиоды.
PORTC |= (1<<3);//зажечь один светодиод.
и несколько изменил одну функцию и вот что получилось:
if( usbAllRequestsAreDisabled()&& 1) {
switch (u2d){ ///Пример управления устройством со стороны ПК
case '1': PORTC ^= (1<<3); break;
case '2': PORTC ^= (1<<2); break;
}
usbEnableAllRequests();
}
больше ничего не трогал, отправляю символы 1 и 2 в терминал но со светодиодами ничего не происходит

Кстате, какое в терминалке нада выбирать управление потоком? я всегда выбирал none.
PS: юзал стандартную программу терминала и ещё одну какую то скачаную с инета(я ею посоянно пользуюсь при работе с СОМ).