ПинЛог

esptool.py: ручная прошивка ESP32

esptool.py — официальная утилита Espressif для прошивки и диагностики связи с чипом напрямую из командной строки, в обход Arduino IDE — полезна, когда графическая среда не справляется или нужна тонкая настройка параметров.

Возможные причины

  • Arduino IDE/PlatformIO не даёт контроля над конкретными параметрами прошивки (адреса, размер флеш, режим)
  • Нужно быстро проверить связь с чипом без полной пересборки проекта
  • Требуется прошить готовый .bin файл без исходного кода (например, чужую прошивку)
  • Нужна диагностика перед сложным случаем — bootloop, битая partition table

Что сделать

  1. Установите esptool: pip install esptool (требуется Python 3).
  2. Проверьте связь с чипом: esptool.py --port COMx chip_id — команда должна вернуть модель чипа и MAC-адрес.
  3. Для прошивки готового .bin используйте: esptool.py --port COMx --baud 460800 write_flash 0x10000 firmware.bin.
  4. При проблемах со связью понизьте скорость: --baud 115200, и войдите в bootloader вручную (BOOT + EN).
  5. Чтобы прочитать текущий образ флеш-памяти для бэкапа: esptool.py --port COMx read_flash 0 0x400000 backup.bin.
  6. Посмотрите полный список команд и параметров: esptool.py --help — там же описаны режимы работы с разными чипами (auto, esp32, esp32s3, esp32c3).

Когда менять железо

Замена не требуется — esptool это программный инструмент; проблемы с ним чаще всего сводятся к режиму bootloader, порту или скорости (см. статью «ESP32 не прошивается»).

Не официальная поддержка Espressif Systems. Названия команд и параметры сверяйте с версией esptool/IDF, установленной у вас.

Связанные материалы