FlashESP — это веб-инструмент, позволяющий разрабатывать скетчи для Arduino и прошивать устройства на платформах ESP32 и ESP8266.
Изначально показалось, что он похож на ESP Web Tools для прошивки из веб-интерфейса, который используют такие проекты, как ESPHome, но его возможности шире. Он больше напоминает Arduino Cloud Editor для ESP32/ESP8266, поскольку пользователи могут выбирать платы, писать код, загружать библиотеки и прошивать результирующую прошивку прямо из совместимого веб-браузера, не устанавливая ничего на компьютер.
Ключевые особенности FlashESP:
- Облачная компиляция – Компиляция в реальном времени с живыми логами.
- Автоконфигурация – Интеллектуальное определение плат и библиотек.
- Прошивка в один клик – Интеграция с Web Serial. Подключите ESP по USB и прошивайте прямо из совместимого браузера (требуется поддержка WebSerial) без драйверов или загрузок.
- Публичный обозреватель – Изучайте проекты сообщества.
- Гибкая видимость – Создавайте приватные проекты для своей команды, публичные для всех или неиндексируемые для доступа по конкретным ссылкам.
- Аналитика сборок – Отслеживайте время компиляции, использование ресурсов и процент успешных сборок.
Перейдем на сайт FlashESP , чтобы попробовать его в Google Chrome (Firefox не подойдет из-за отсутствия поддержки WebUSB/WebSerial). Под рукой оказался мини-компьютер M5Stack CardPuter Adv ESP32-S3 , поэтому будем использовать его.
Проще всего начать с демо. Платформа выбрана ESP8266, но ожидалось, что аппаратную платформу можно будет выбрать после нажатия кнопки «Flash Device Now». Однако после выбора последовательного устройства сразу появилось сообщение об ошибке установки: «Your ESP32-S3 board is not supported» (Ваша плата ESP32-S3 не поддерживается).
Для быстрого теста нужна плата ESP8266, но её сейчас нет. Поэтому были изучены публичные проекты, и среди них найдены несколько на основе ESP32-S3, включая XIAO-WIFI-BLINK-AP, который создает открытую точку доступа WiFi для мониторинга мигающего светодиода на плате XIAO ESP32S3 .
Для входа требуется учетная запись. После её создания стала доступна кнопка «Flash to Device» для начала установки на CardPuter Adv.
После перезагрузки питания кнопка «Flash to Device» была нажата снова для доступа к журналу последовательного порта. Видно, что демо XIAO WiFi Blink AP запущено.
Поскольку аппаратная часть отличается, светодиод на модуле Stamp-S3A платы CardPuter Adv не мигает, но доступ к точке доступа и веб-интерфейсу был подтвержден.
В этот момент возникло желание изменить код для работы светодиода на CardPuter Adv. Файл main.ino был открыт прямо в браузере, но появилось сообщение «Cannot edit in read-only editor» (Невозможно редактировать в режиме только для чтения). Опции сделать копию публичного проекта также нет, поэтому был создан новый проект «CardPuter-Adv-Blink-RGB-AP» для платы M5CardPuter.
Затем был создан файл main.ino , код из проекта «XIAO-WiFi-Blink-AP» скопирован и начато его изменение.
Потребовалась библиотека FastLED. Пользовательский интерфейс предоставляет менеджер библиотек, аналогичный Arduino IDE, поэтому библиотека была найдена и установлена.
Пришло время собрать код. Потребовалось пять попыток для успешной сборки. Отладка удобна благодаря доступу к логам сборки в реальном времени. Можно было открыть несколько окон для одновременного доступа к исходному коду и интерфейсу сборки.
Финальный шаг должен быть простым (казалось бы) — нужно нажать «Flash Device», но это не сработало.
Около 45 минут было потрачено на попытки исправить проблему, повторные попытки и, в конечном итоге, воссоздание конфигурации платы с сайта документации CardPuter Adv.
Но безрезультатно. Логов для этой части нет (или они были упущены), поэтому сложнее понять, в чем проблема. В итоге файл firmware.bin был загружен из интерфейса и прошит с помощью esptool:
jaufranc@CNX-LAPTOP-5:~/Downloads$ python3 -m venv ~/esptool-env
jaufranc@CNX-LAPTOP-5:~/Downloads$ source ~/esptool-env/bin/activate
(esptool-env) jaufranc@CNX-LAPTOP-5:~/Downloads$ pip install esptool
(esptool-env) jaufranc@CNX-LAPTOP-5:~/Downloads$ ~/esptool-env/bin/esptool --chip esp32s3 --port /dev/ttyACM0 --baud 2000000 write_flash 0x0 firmware.bin
Warning: Deprecated: Command 'write_flash' is deprecated. Use 'write-flash' instead.
esptool v5.1.0
Connected to ESP32-S3 on /dev/ttyACM0:
Chip type: ESP32-S3 (QFN56) (revision v0.2)
Features: Wi-Fi, BT 5 (LE), Dual Core + LP Core, 240MHz, Embedded Flash 8MB (GD)
Crystal frequency: 40MHz
USB mode: USB-Serial/JTAG
MAC: d0:cf:13:0d:c4:d8
Stub flasher running.
....
98.8% 589824/596938 byteWrote 942800 bytes (596938 compressed) at 0x00000000 in 6.4 seconds (1183.3 kbit/s).
Hash of data verified.
Hard resetting via RTS pin...
Таким способом прошивка сработала. Однако, глядя на логи, видна ошибка сравнения SHA-256.
На этом эксперимент остановлен. Также были замечены неперехваченные ошибки времени выполнения при изменении уровня масштаба в редакторе кода. Это довольно интересный инструмент с большинством реализованных функций, но он все еще новый и требует доработки для полировки. В качестве примечания: он несколько похож на сайт FlashMyPico для плат Raspberry Pi Pico/Pico 2 , который поддерживает программирование на C/C++ и MicroPython.
Выражаем свою благодарность источнику, с которого взята и переведена статья, сайту cnx-software.com.
Оригинал статьи вы можете прочитать здесь.













