ПинЛог

Плата:ESP32ESP32-S3ESP32-C3

ESP32 не прошивается: esptool failed to connect

Сообщения «Failed to connect to ESP32» и «Timed out waiting for packet header» почти всегда значат, что чип не вошёл в режим bootloader или занят порт — а не что плата сломана.

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

  • Плата без авто-reset (breadboard-модуль, самодельная схема) не входит в bootloader сама
  • COM-порт занят Serial Monitor, PlatformIO или другой программой
  • Кабель USB только для зарядки, без линий данных D+/D-
  • Слишком высокая скорость прошивки (921600) не тянется дешёвым USB-UART мостом или длинным кабелем
  • Не установлен драйвер CH340 / CP2102, порт вообще не появляется
  • Просадка 3.3В при старте флеш-цикла на слабом питании

Что сделать

  1. Закройте Serial Monitor, плоттер и любые другие программы, держащие COM-порт открытым.
  2. Вручную войдите в bootloader: зажмите BOOT (GPIO0), коротко нажмите EN/RST, отпустите EN, затем отпустите BOOT.
  3. Замените кабель на заведомо рабочий data-кабель, желательно короткий и без хаба.
  4. В Arduino IDE или platformio.ini понизьте upload_speed до 115200 и повторите прошивку.
  5. Проверьте в диспетчере устройств, что драйвер USB-UART моста (CH340/CP2102/CH9102) установлен и порт виден.
  6. Запустите esptool.py --port COMx --baud 115200 chip_id — если чип отзывается, проблема была в скорости или порте.
  7. Подключите плату напрямую в порт материнской платы, а не через слабый USB-хаб без питания.

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

Меняйте кабель или адаптер, если esptool не видит чип даже в ручном bootloader на заведомо рабочем порту и кабеле — это указывает на брак самого USB-UART моста.

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

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