Прошивку собирают, а не скачивают с сайта производителя. На каждой странице устройства этот порядок расписан ещё раз: программа, конфиг, первая запись. Здесь — та же схема короче.
Программа зависит от чипа:
- ESP8266 и ESP32 пишет ESPHome Dashboard, сайт web.esphome.io или esptool
- BK72xx (WB3S, WBR3 и похожие) пишет ltchiptool. esptool их не видит. В конфиге блок
bk72xx:, неesp8266:
Первая запись почти у всех устройств делается по проводам. OTA заработает только после того, как новая прошивка хотя бы раз подняла Wi-Fi.
Переходник подключают так:
- земля переходника к земле платы, это обязательный провод, не «и так через USB»
- TX переходника к RX модуля
- RX переходника к TX модуля
- 3,3 В только если плату не питает её собственный блок. Два источника питания на одну линию 3,3 В не объединяют
- GPIO0 (часто подписан IO0, D0 или BOOT) замыкают на землю и в этот момент подают питание или кратко касаются RESET
Через секунду после старта GPIO0 отпускают. Если оставить его на земле, модуль будет вечно сидеть в загрузчике и не загрузит ни заводскую прошивку, ни ESPHome.
Дальше с компьютера, где установлен ESPHome:
esphome run vashe-ustroystvo.yaml
Команда соберёт прошивку, предложит последовательный порт и запишет её. В логе должен появиться адрес Wi-Fi. Если лог обрывается на «Connecting», GPIO0 не был на земле в момент сброса либо перепутаны TX и RX.
Секреты сети кладут в secrets.yaml, а в конфиге оставляют !secret wifi_ssid. Пароль не коммитьте и не вставляйте в чужой YAML «для примера».
Когда устройство онлайн, строка OTA в конфиге позволяет обновляться без паяльника. Провода можно отпаять. Имеет смысл один раз перезагрузить устройство от штатного питания и убедиться, что оно снова в сети: часть плат в режиме программатора питается от USB и «работает», только пока воткнут кабель.
Заводской дамп стоит снять до стирания флеша там, где откат реален и нужен. Для Litter-Robot это прямо сказано автором прошивки. Для лампы и очистителя дамп тоже не помешает, если esptool уже подключился.