UNO R4 WiFi — Загрузка пользовательской прошивки на ESP32 (Продвинутый)

Узнайте, как загрузить пользовательскую прошивку на модуль ESP32-S3 платы UNO R4 WiFi с помощью интерфейса командной строки esptool.py.

Предупреждение

Это руководство предназначено для продвинутых пользователей. Выполнение описанных действий может привести к программному повреждению (soft-brick) вашей платы.

На плате Arduino UNO R4 WiFi установлены два разных микроконтроллера: Renesas RA4M1 и ESP32-S3.

По умолчанию модуль ESP32-S3 работает как последовательный мост, обеспечивая подключение к компьютеру. Он также управляет перезагрузкой основного микроконтроллера Renesas RA4M1, когда это необходимо, например, при получении нового скетча и сбросе.

На UNO R3 аналогичную функцию выполняет ATMEGA16U2, но встроенный модуль ESP32 является более продвинутой системой на кристалле (SoC), добавляющей к плате возможности подключения по Wi-Fi и Bluetooth.

UNO R4 WiFi также предоставляет доступ к линиям данных ESP32, чтобы вы могли программировать ESP32 напрямую. Эти линии данных доступны через разъём 3x2 в верхней части платы или через контактные площадки на нижней стороне.

Важно

Обратите внимание, что на ESP32 установлена прошивка по умолчанию, настроенная для связи с чипом RA4M1. Любое прямое программирование ESP32 перезапишет эту прошивку, и связь между чипами может быть нарушена до тех пор, пока не будет восстановлена прошивка по умолчанию.

Необходимое оборудование и программное обеспечение

Шаг 1: Режим загрузки ESP32

Предупреждение

В этом руководстве мы не предоставляем никакой пользовательской прошивки. Если вы загрузите прошивку, которая не обеспечивает последовательный USB-мост между двумя микроконтроллерами, вы потеряете большую часть функциональности платы!

Чтобы загрузить пользовательскую прошивку на ESP32-S3, нам нужно перевести чип в режим загрузки, замкнув пин загрузки (download pin) и GND. Пин загрузки можно найти на разъёме 3x2 в верхней части платы или на нижней стороне через открытые контактные площадки.

Пин загрузки ESP32-S3

Пин загрузки ESP32-S3

Самый простой способ — использовать провод «мама-мама» и замкнуть контакты в верхней части платы. На этом этапе плата должна быть отключена от питания. После замыкания контактов вы можете подключить плату к компьютеру и убрать перемычку. Если вы проверите имя устройства, оно должно измениться на: USB JTAG/serial debug unit.

Windows

  • Проверьте в Диспетчере устройств в разделе «Устройства шины USB» (Universal Serial Bus devices).

macOS

  • Проверьте в «Информации о системе» (System Information) в разделе USB.

Linux

  • Откройте терминал и введите lsusb.

Шаг 2: Загрузка прошивки

После того как чип переведён в нужный режим, мы используем esptool для загрузки пользовательской прошивки на плату. Для этого вам нужно скачать и установить Python, который затем можно использовать для установки esptool с помощью простой команды. Убедитесь, что Python установлен, открыв терминал и введя pip3. Вы должны увидеть список команд в терминале. После подтверждения правильной установки установите esptool, введя:

pip3 install esptool

Далее, esptool.py должен быть добавлен в вашу переменную PATH, чтобы вы могли запускать его из любого места, вместо того чтобы каждый раз переходить в папку установки. Переменная PATH позволяет запускать команды и программы из любого места на вашем компьютере без необходимости указывать полный путь к исполняемому файлу. Это делается по-разному в зависимости от вашей операционной системы, подробнее об этом можно прочитать здесь.

Загрузка новой прошивки выполняется в два этапа: сначала стирается текущая прошивка модуля, а затем загружается новая. После настройки всего необходимого достаточно выполнить следующие две команды:

Для стирания флеш-памяти выполните:

esptool.py --chip esp32s3 --port <yourPort> erase_flash

Для загрузки прошивки выполните:

esptool.py --chip esp32s3 --port <your port> write_flash -z 0 <yourCustomFirmware.bin>

Предупреждение

Обратите внимание, что в этом руководстве мы не предоставляем никакой пользовательской прошивки. Если вы загрузите прошивку, которая не обеспечивает последовательный USB-мост между двумя микроконтроллерами, вы потеряете большую часть функциональности платы!

Восстановление прошивки по умолчанию

Чтобы восстановить прошивку по умолчанию на ESP32, ознакомьтесь с руководством Обновление прошивки модуля подключения на UNO R4 WiFi.