Прошивка AVR через ISP

Для программирования микроконтроллеров AVR через программатор USB AVR-ISP XPII (AVRISP mkII) можно использовать консольную утилиту avrdude:

Linux:
avrdude -c avrisp2 -P usb -b 19200 -p m32u4 -U flash:w:firmware.hex
Windows:
.\avrdude.exe -c avrisp2 -P usb -b 19200 -p m32u4 -U flash:w:firmware.hex

Ссылки:
https://forum.arduino.cc/index.php?topic=374842.0
https://gist.github.com/avilleret/2307a48927d2eab249d73cb16dc9eac6
http://microsin.net/programming/avr/starting-out-with-avrdude.html

При возникновении проблем с правами на устройство в Linux нужно добавить правило udev в /etc/udev/rules.d/99-usbasp.rules:

SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2104", GROUP="uucp", MODE="0666"

Узнать VID/PID программатора можно через lsusb. После этого надо перезагрузить правила:

sudo udevadm control --reload-rules