Добавляем поддержку «совместимых» микроконтроллеров в Arduino IDE

В линейке контроллеров, кроме тех, которые используются в «стандартных» платах arduino(Duemilanove, Diecimila, Uno) а именно atmega328 и atmega168 есть ещё 2: atmega48 p/a/pa и atmega88 p/a/pa с меньшим объёмом flash/ram памяти, но идентичным набором периферии. И т.к. серийных плат с младшими моделями нет, Arduino IDE «из коробки» не умеет компилировать и прошивать скетчи в эти контроллеры. Вот как выглядят модули на них(справа первая версия с более «толстым» atmega168):

Чтобы добавить поддержку этих контроллеров нужно сделать следующее:

1) добавить плату с этим контроллером.
обычно файл располагается в hardware/arduino/boards.txt относительно корня установки Arduino IDE.
В него нужно дописать(в конец):

после этого уже можно скомпилировать скетч для этого контроллера, но нельзя прошить стандартным методом — при помощи бутлоадера. Но можно прошить при помощи программатора. Если он не настроен перехлжим к шагу 2:

2) добавим программатор.
Я использую программатор «5 проводков», для его поддержки я добавил в hardware/arduino/programmers.txt следующее:

но и после этого могут возникнуть проблемы. Например avrdude, используемый в текущей версии Arduino IDE, не поддерживает ATmega48PA. Научим его в шаге 3:

3) добавим поддержку контроллера в avrdude.
На просторах интернета найдена следующая конфигурация, которую следует добавить в конец hardware/tools/avrdude.conf

Yuriy Nazarov on GithubYuriy Nazarov on Twitter
Yuriy Nazarov
Software engineer
Люблю machine learning