FlashESP — универсальный веб-инструмент для разработки под ESP32/ESP8266 на платформе Arduino и прошивки микропрограмм.

FlashESP — это веб-инструмент, позволяющий разрабатывать скетчи для Arduino и прошивать устройства на платформах ESP32 и ESP8266.

Изначально показалось, что он похож на ESP Web Tools для прошивки из веб-интерфейса, который используют такие проекты, как ESPHome, но его возможности шире. Он больше напоминает Arduino Cloud Editor для ESP32/ESP8266, поскольку пользователи могут выбирать платы, писать код, загружать библиотеки и прошивать результирующую прошивку прямо из совместимого веб-браузера, не устанавливая ничего на компьютер.

FlashESP Web-based ESP32 programming tool

Ключевые особенности 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 не поддерживается).

FlashESP ESP32-S3 failed

Для быстрого теста нужна плата ESP8266, но её сейчас нет. Поэтому были изучены публичные проекты, и среди них найдены несколько на основе ESP32-S3, включая XIAO-WIFI-BLINK-AP, который создает открытую точку доступа WiFi для мониторинга мигающего светодиода на плате XIAO ESP32S3 .

FlashESP XIAO WiFi Blink AP

Для входа требуется учетная запись. После её создания стала доступна кнопка «Flash to Device» для начала установки на CardPuter Adv.

FlashESP Flash to Device

После перезагрузки питания кнопка «Flash to Device» была нажата снова для доступа к журналу последовательного порта. Видно, что демо XIAO WiFi Blink AP запущено.

XIAO WiFi Blink AP on CardPuter Adv ESP32 S3 devkit

Поскольку аппаратная часть отличается, светодиод на модуле Stamp-S3A платы CardPuter Adv не мигает, но доступ к точке доступа и веб-интерфейсу был подтвержден.

FlashESP ESP32-S3 access point demo

В этот момент возникло желание изменить код для работы светодиода на CardPuter Adv. Файл main.ino был открыт прямо в браузере, но появилось сообщение «Cannot edit in read-only editor» (Невозможно редактировать в режиме только для чтения). Опции сделать копию публичного проекта также нет, поэтому был создан новый проект «CardPuter-Adv-Blink-RGB-AP» для платы M5CardPuter.

FlashESP New Project

Затем был создан файл main.ino , код из проекта «XIAO-WiFi-Blink-AP» скопирован и начато его изменение.

Edit ESP32 Arduino Code in Google Chrome

Потребовалась библиотека FastLED. Пользовательский интерфейс предоставляет менеджер библиотек, аналогичный Arduino IDE, поэтому библиотека была найдена и установлена.

ESPFlash Library Manager

Пришло время собрать код. Потребовалось пять попыток для успешной сборки. Отладка удобна благодаря доступу к логам сборки в реальном времени. Можно было открыть несколько окон для одновременного доступа к исходному коду и интерфейсу сборки.

ESPFlash Build Success

Финальный шаг должен быть простым (казалось бы) — нужно нажать «Flash Device», но это не сработало.

FlashESP Installation failed

Около 45 минут было потрачено на попытки исправить проблему, повторные попытки и, в конечном итоге, воссоздание конфигурации платы с сайта документации CardPuter Adv.

FlashESP board configuration

Но безрезультатно. Логов для этой части нет (или они были упущены), поэтому сложнее понять, в чем проблема. В итоге файл 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.

FlashESP SHA-256 comparison failed

На этом эксперимент остановлен. Также были замечены неперехваченные ошибки времени выполнения при изменении уровня масштаба в редакторе кода. Это довольно интересный инструмент с большинством реализованных функций, но он все еще новый и требует доработки для полировки. В качестве примечания: он несколько похож на сайт FlashMyPico для плат Raspberry Pi Pico/Pico 2 , который поддерживает программирование на C/C++ и MicroPython.

Выражаем свою благодарность источнику, с которого взята и переведена статья, сайту cnx-software.com.

Оригинал статьи вы можете прочитать здесь.

0 0 votes
Article Rating
Подписаться
Уведомление о
guest

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

0 Комментарий
Oldest
Newest Most Voted
Inline Feedbacks
View all comments