ELX-Software

Блог

Как прошить ESP32 без esptool и Python: ELX-ESP Programmer

esptool умеет всё, но это командная строка, Python и адреса, которые надо помнить наизусть. ELX-ESP Programmer делает ту же работу в понятном окне: перетащили файлы — они сами встали на свои адреса, а программа заодно рассказала всё о подключённом чипе.

Как прошить ESP32 без esptool и Python: ELX-ESP Programmer

Как обычно прошивают ESP32

Стандартный инструмент Espressif — esptool: надёжный, полный и с открытым исходным кодом. Им пользуются Arduino IDE, PlatformIO и ESP-IDF. Но если плату нужно прошить вне среды разработки — на производстве, у заказчика или при обновлении на объекте, — начинается командная строка:

Прошивка через esptool
esptool.py --chip esp32 --port COM5 --baud 921600 write_flash \
  0x1000 bootloader.bin 0x8000 partitions.bin \
  0xe000 boot_app0.bin 0x10000 firmware.bin 0x290000 littlefs.bin

Нужно поставить Python, помнить адреса для каждого чипа (у ESP32 загрузчик на 0x1000, у ESP32-S3 и C3 — на 0x0), не перепутать файлы и не ошибиться с таблицей разделов. А чтобы узнать, что уже лежит на плате, — какие файлы в LittleFS, какие настройки в NVS, — готового средства нет совсем.

Что умеет ELX-ESP Programmer

ELX-ESP Programmer — программа для Windows с собственной реализацией протокола загрузчика ESP. Ей не нужны ни esptool, ни Python: всё встроено в один установщик.

Прошивка перетаскиванием

Файлы или целая папка сборки PlatformIO — тип и адрес определяются сами

Всё о чипе

Модель, ревизия, кварц, MAC, производитель и размер flash, версия прошивки на плате

Карта flash

Разделы в масштабе и их реальная занятость, активный слот OTA

LittleFS и NVS

Файлы на устройстве со скачиванием, ключи NVS с типами и значениями

Проверка записи

Сжатие и MD5 после записи, предупреждения до неё

Резервная копия

Вся flash или один раздел — в файл

Прошивка: всё, что можно залить

Файлы перетаскиваются в окно по одному или все вместе. Программа узнаёт таблицу разделов, объединённый образ, LittleFS, загрузчик и приложение по содержимому, а boot_app0, SPIFFS и FAT — по имени, и ставит каждый на свой адрес с учётом чипа:

ФайлКуда записывается
bootloader.bin0x1000 на ESP32 и ESP32-S2, 0x2000 на ESP32-C5 и ESP32-P4, 0x0 на остальных
partitions.bin0x8000; адреса остальных файлов берутся из этой таблицы
firmware.binПервый раздел приложения
littlefs.bin, spiffs.binРаздел файловой системы
boot_app0.binРаздел данных OTA
Полный образ0x0 — всё одним файлом
Сразу вся сборкаПеретащите в окно папку .pio\build\esp32 — загрузчик, таблица разделов, прошивка и образ файловой системы возьмутся из неё вместе.

До записи программа предупредит, если файл не помещается в раздел, пересекается с другим или собран под другой чип. После записи — проверит MD5 и при желании перезагрузит плату. Во время прошивки видны скорость и оставшееся время.

Что лежит на плате

Сразу после подключения программа опрашивает чип и показывает то же, что выводит esptool, и даже больше:

  • Чип: модель и ревизия, возможности (Wi-Fi, Bluetooth, PSRAM), частота кварца, MAC-адрес.
  • Flash: производитель и размер.
  • Прошивка на устройстве: имя проекта, версия, версия ESP-IDF и дата сборки.
  • Карта flash: каждый раздел в масштабе, сколько занято образом приложения, записями NVS и блоками LittleFS, есть ли дамп памяти после сбоя, какой слот OTA загружается.
  • LittleFS: дерево файлов с размерами, любой файл можно скачать на компьютер.
  • NVS: ключи с пространствами имён, типами и значениями; пароли скрыты, пока их не показать.
Когда это нужноПлата вернулась с объекта и ведёт себя странно, а исходников той версии под рукой нет. За минуту видно, какая прошивка стоит, какие настройки сохранены в NVS и что лежит в файловой системе, — без сборки проекта и без отладчика.

Какие чипы поддерживаются

ESP32, ESP32-S2, ESP32-S3, ESP32-C2, ESP32-C3, ESP32-C5, ESP32-C6, ESP32-C61, ESP32-H2 и ESP32-P4 через мост USB-UART — CP210x, CH34x или FTDI. Скорость порта — от 115 200 до 2 000 000 бод. Каждый выпуск программы проверяется на реальной плате: определение чипа, запись с проверкой MD5 и чтение LittleFS байт в байт.

Как начать

  1. Установите программу со страницы загрузки — она работает на 64-разрядных Windows 10 и 11.
  2. Подключите плату, выберите COM-порт и нажмите Подключить: программа сама переведёт чип в загрузчик через DTR и RTS.
  3. Перетащите файлы прошивки, проверьте адреса на карточках и запустите запись.

Если чип не отвечает — например, у платы нет автосброса или кабель только для зарядки, — разбор таких случаев есть в документации. Интерфейс программы переведён на девять языков, а новые версии она находит сама.