Щоб прошити мікроконтролер ATmega16U2 (або 8U2) на вашій платі Arduino (наприклад, Uno або Mega 2560), використовується вбудований DFU-режим і програма FLIP від Atmel, або зовнішній програматор (через ICSP). Найчастіше це роблять для оновлення USB-UART прошивки (наприклад, DFU, HoodLoader2 або прошивки програматора AVRISP).


1. Переведення в режим DFU
Відключіть плату від USB. Знайдіть 6-контактний роз’єм ICSP1 (він знаходиться поруч із чіпом 16U2). Замкніть між собою контакти RESET (1-й пін) і GND (5-й пін), або контакти 5 і 6 (на старіших версіях плат). Підключіть плату до комп’ютера через USB і розімкніть контакти. Плата перейде в режим DFU.


Завантажте та встановіть програму FLIP (Flexible In-System Programmer) з офіційного сайту Microchip. Зайдіть у диспетчер пристроїв Windows. Пристрій відобразиться як невідомий. Натисніть «Оновити драйвер» і вкажіть шлях до папки з драйверами, куди ви встановили FLIP (зазвичай C:\Program Files\Atmel\Flip 3.4.x\usb).


Завантажте потрібний .hex файл (стандартні прошивки для Arduino знаходяться в папці Arduino/hardware/arduino/avr/firmwares/atmegaxxu2).
Запустіть програму FLIP. У меню Device -> Select виберіть ATmega16U2 (або 8U2).
У меню Settings -> Communication -> USB натисніть Open.
У меню File -> Load HEX File виберіть ваш файл прошивки.
Переконайтеся, що у вкладці Operations стоять прапорці Erase, Blank Check, Program і Verify. Натисніть кнопку Run.
Після завершення прошивки відключіть плату від USB і підключіть знову (або натисніть кнопку Reset основного контролера) для виходу з DFU-режиму.


Завантажити офіційну та актуальну версію програми FLIP (версія 3.4.7) можна безкоштовно на офіційному сайті компанії Microchip (яка викупила компанію Atmel) на сторінці інструментів FLIP.
https://www.microchip.com/en-us/development-tool/flip

Для Windows 10 / 11 (Рекомендовано): Обирайте версію FLIP 3.4.x for Windows (Java Runtime Environment included). У цей інсталятор вже вбудована віртуальна машина Java. Це позбавить вас від помилок сумісності зі сторонніми версіями Java на сучасних 64-бітних системах.

Якщо у вас виникли проблеми з доступом до сайту Microchip або завантаженням, інсталятор Flip Installer - 3.4.7.112.exe викладений як допоміжний інструмент у перевіреному репозиторії GCBASIC на SourceForge.
https://sourceforge.net/projects/gcbasic/


Офіційний файл прошивки для Arduino Uno R3 (ATmega16U2) вже знаходиться на вашому комп’ютері, якщо у вас встановлене офіційне середовище розробки Arduino IDE. Також його можна завантажити напряму з репозиторію розробників:

https://github.com/arduino/ArduinoCore-avr

На вашому ПК (через Arduino IDE):
Перейдіть за шляхом:
C:\Program Files(x86)\Arduino\hardware\arduino\avr\firmwares\atmegaxxu2\arduino-usbserial\
(Якщо ви використовуєте версію IDE 2.x, шлях може знаходитися у прихованій папці:
C:\Users\Ім’я_Користувача\AppData\Local\Arduino15\packages\arduino\hardware\avr\...\firmwares\...).


Драйвер:
Переведіть плату в режим DFU (замкніть на секунду Reset і GND на роз’ємі ICSP1 біля USB). Якщо Windows видає помилку пристрою, зайдіть у Диспетчер пристроїв, натисніть правою кнопкою на «Atmega16u2» -> Оновити драйвер -> Пошук на цьому комп’ютері та вкажіть папку:
C:\Program Files (x86)\Atmel\Flip 3.4.7\usb.

Запуск:
Відкрийте FLIP.

Вибір чіпа:
Натисніть на іконку мікросхеми (Device -> Select) і виберіть ATmega16U2.

Зв’язок:
Натисніть на іконку USB-кабелю (Settings -> Communication -> USB) і виберіть Open.
Вікна програми стануть активними.

Файл:
Натисніть File -> Load HEX File і виберіть завантажений вище файл Arduino-usbserial-atmega16u2-Uno-Rev3.hex.

Запис:
Ліворуч у панелі Operations Flow переконайтеся, що встановлені прапорці Erase, Blank Check, Program, Verify. Натисніть кнопку Run.

Перезавантаження:
Після успішного завершення завантаження відключіть USB-кабель від плати та підключіть його знову.
