ESPhome: не получается подключиться к устройству Печать
Добавил(а) microsin   

При попытке загрузить через USB (COM5 на Windows 11) простейший проект в плату ESP32-DevKitC V4 (на основе модуля ESP32-WROOM-32D) среда ESPhome в браузере Google Chrome (http://localhost:6052/) выдает ошибку:

ESPhome Could not connect to the device. Unplug and replug the cable, hold the BOOT button while plugging in, or try another USB port or browser.

esptool.js
Serial port WebSerial VendorID 0x10c4 ProductID 0xea60
Connecting...
Sync err Error: Invalid head of packet (0x42): Possible serial noise or corruption.
Error at sync Error: Invalid head of packet (0x42): Possible serial noise or corruption.
Sync connect attempt 2
Sync
Sync err Error: Invalid head of packet (0x20): Possible serial noise or corruption.
Error at sync Error: Invalid head of packet (0x20): Possible serial noise or corruption.
Sync connect attempt 3
Sync
Sync err Error: Invalid head of packet (0x28): Possible serial noise or corruption.
Error at sync Error: Invalid head of packet (0x28): Possible serial noise or corruption.
Sync connect attempt 4
Sync
Sync err Error: Invalid head of packet (0x69): Possible serial noise or corruption.
Error at sync Error: Invalid head of packet (0x69): Possible serial noise or corruption.
_connect_attempt default_reset
bootMode:0x13 downloadMode:false
Sync connect attempt 0
Sync
Sync err Error: Invalid head of packet (0x5b): Possible serial noise or corruption.
Error at sync Error: Invalid head of packet (0x5b): Possible serial noise or corruption.
Sync connect attempt 1
Sync
Sync err Error: Invalid head of packet (0x3a): Possible serial noise or corruption.
Error at sync Error: Invalid head of packet (0x3a): Possible serial noise or corruption.
Sync connect attempt 2
Sync
Sync err Error: Invalid head of packet (0x5b): Possible serial noise or corruption.
Error at sync Error: Invalid head of packet (0x5b): Possible serial noise or corruption.
Sync connect attempt 3
Sync
Sync err Error: Invalid head of packet (0x6d): Possible serial noise or corruption.
Error at sync Error: Invalid head of packet (0x6d): Possible serial noise or corruption.
Sync connect attempt 4
Sync
Sync err Error: Invalid head of packet (0x54): Possible serial noise or corruption.
Error at sync Error: Invalid head of packet (0x54): Possible serial noise or corruption.
_connect_attempt default_reset
bootMode:0x13 downloadMode:false
Sync connect attempt 0
Sync
Sync err Error: Invalid head of packet (0xd): Possible serial noise or corruption.
Error at sync Error: Invalid head of packet (0xd): Possible serial noise or corruption.
Sync connect attempt 1
Sync
Sync err Error: Invalid head of packet (0x42): Possible serial noise or corruption.
Error at sync Error: Invalid head of packet (0x42): Possible serial noise or corruption.
Sync connect attempt 2
Sync
Sync err Error: Invalid head of packet (0x6e): Possible serial noise or corruption.
Error at sync Error: Invalid head of packet (0x6e): Possible serial noise or corruption.
Sync connect attempt 3
Sync
Sync err Error: Invalid head of packet (0x64): Possible serial noise or corruption.
Error at sync Error: Invalid head of packet (0x64): Possible serial noise or corruption.
Sync connect attempt 4
Sync
Sync err Error: Invalid head of packet (0x36): Possible serial noise or corruption.
Error at sync Error: Invalid head of packet (0x36): Possible serial noise or corruption.
_connect_attempt default_reset
bootMode:0x13 downloadMode:false
Sync connect attempt 0
Sync
Sync err Error: Invalid head of packet (0x20): Possible serial noise or corruption.
Error at sync Error: Invalid head of packet (0x20): Possible serial noise or corruption.
Sync connect attempt 1
Sync
Sync err Error: Invalid head of packet (0x62): Possible serial noise or corruption.
Error at sync Error: Invalid head of packet (0x62): Possible serial noise or corruption.
Sync connect attempt 2
Sync
Sync err Error: Invalid head of packet (0x6d): Possible serial noise or corruption.
Error at sync Error: Invalid head of packet (0x6d): Possible serial noise or corruption.
Sync connect attempt 3
Sync
Sync err Error: Invalid head of packet (0x74): Possible serial noise or corruption.
Error at sync Error: Invalid head of packet (0x74): Possible serial noise or corruption.
Sync connect attempt 4
Sync
Sync err Error: Invalid head of packet (0x55): Possible serial noise or corruption.
Error at sync Error: Invalid head of packet (0x55): Possible serial noise or corruption.
Error: Failed to connect with the device

Платка ESP32-DevKitC V4, проблем с кабелем и портом нет, потому что в консоли с помощью idf.py платка прошивается нормально:

idf.py -p COM5 flash monitor

Мне удалось обойти проблему путем компиляции бинарника в ESPhome, после чего получается файл имяпроекта-firmware.factory.bin, который можно загрузить и затем прошить утилитой esptool:

esptool.py --chip esp32 --port COM5 --baud 460860 write_flash 0x0 firmware.factory.bin

Как это сделать:

1. В правом нижнем углу проекта кликните на кнопку "Установка".

ESPhome compile code fig01

2. Всплывет окно диалога "Как вы хотите установить прошивку?".

ESPhome compile code fig02

Кликните внизу на ссылку "Дополнительные настройки", после чего кликните на вариант "Скачать файл прошивки .bin".

ESPhome compile code fig03

3. Первая сборка прошивки с нуля может занять по времени несколько минут. После окончания компиляции появится окно выбора варианта загружаемого файла "Choose what to download".

ESPhome compile code fig04

У вас три варианта выбора:

Factory image. Это полный образ flash-памяти устройства, где содержится все необходимое для первого старта - bootloader, таблица разделов, разделы ota_0 и ota_1 и другая информация.
OTA update. Это рабочий код для раздела ota_N, который загружается по беспроводному соединению (Over The Air).
ELF (debug symbols). Это двоичный код, содержащий отладочную информацию. Предназначен для диагностики и поиска ошибок при аварийном сбое программы (crash backtrace).

Для прошивки через esptool.py выберите первый вариант.

ESPhome compile code fig05

Проверьте папку Downloads, в ней вы найдете файл наподобие имяпроекта-firmware.factory.bin.