Плата: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В при старте флеш-цикла на слабом питании
Что сделать
- Закройте Serial Monitor, плоттер и любые другие программы, держащие COM-порт открытым.
- Вручную войдите в bootloader: зажмите BOOT (GPIO0), коротко нажмите EN/RST, отпустите EN, затем отпустите BOOT.
- Замените кабель на заведомо рабочий data-кабель, желательно короткий и без хаба.
- В Arduino IDE или platformio.ini понизьте upload_speed до 115200 и повторите прошивку.
- Проверьте в диспетчере устройств, что драйвер USB-UART моста (CH340/CP2102/CH9102) установлен и порт виден.
- Запустите esptool.py --port COMx --baud 115200 chip_id — если чип отзывается, проблема была в скорости или порте.
- Подключите плату напрямую в порт материнской платы, а не через слабый USB-хаб без питания.
Когда менять железо
Меняйте кабель или адаптер, если esptool не видит чип даже в ручном bootloader на заведомо рабочем порту и кабеле — это указывает на брак самого USB-UART моста.
Не официальная поддержка Espressif Systems. Проверяйте применимость к своей ревизии платы и версии ядра/IDF.