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

Как обычно прошивают ESP32
Стандартный инструмент Espressif — esptool: надёжный, полный и с открытым исходным кодом. Им пользуются Arduino IDE, PlatformIO и ESP-IDF. Но если плату нужно прошить вне среды разработки — на производстве, у заказчика или при обновлении на объекте, — начинается командная строка:
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.bin | 0x1000 на ESP32 и ESP32-S2, 0x2000 на ESP32-C5 и ESP32-P4, 0x0 на остальных |
| partitions.bin | 0x8000; адреса остальных файлов берутся из этой таблицы |
| 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: ключи с пространствами имён, типами и значениями; пароли скрыты, пока их не показать.
Какие чипы поддерживаются
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 байт в байт.
Как начать
- Установите программу со страницы загрузки — она работает на 64-разрядных Windows 10 и 11.
- Подключите плату, выберите COM-порт и нажмите Подключить: программа сама переведёт чип в загрузчик через DTR и RTS.
- Перетащите файлы прошивки, проверьте адреса на карточках и запустите запись.
Если чип не отвечает — например, у платы нет автосброса или кабель только для зарядки, — разбор таких случаев есть в документации. Интерфейс программы переведён на девять языков, а новые версии она находит сама.