Вот с такой проблемкой столкнулся.
В работе над проектом всегда использовал платки Arduino Nano c МК atmega328p. Работа в командной строке или с недавних пор в среде Arduino IDE. Платки сразу перешивал Optiboot. Проблем не было от слова "совсем".
Теперь решился добавить поддержку МК atmega48/88/168. Последние 2 поддерживают начальный загрузчик.
Купил на Алике всё, что надо для экспериментов. Плату Arduino Nano на МК atmega168p прошил Optiboot. В системе Arduino IDE выбрал МК atmega168 (atmega168p не было почему то). Компиляция прошла, а запись в чип повисла.
Вернулся в режим командной строки. И вот что заметил -
1. При работе с программатором USB ISP всё работает как надо. И шьются и читается. Сигнатура чипа корректная - 0x1E940B.
2. При работе через загрузчик получаем некорректное значение сигнатуры - 0x1E9406. Поэтому и Arduino IDE теряется наверное.
avrdude.exe -v -p m168p -c arduino -P COM4 -b 115200 -D -U flash:w:"main.hex":i
и пока процессор m168p не заменить на m168 или ключик -F не добавить - ничего не получается.
Логика подсказывает, что если проблема в "лыжах" , то это Optiboot шалит или avrdude. Я не прав? И самое интересное, как Arduino IDE всё это объяснить?