Sonoff Dongle Flasher: как убрать «Connection failed / Device unresponsive»

Ошибка «Connection failed / Device unresponsive» означает, что прошивальщик не может открыть serial/COM‑порт или донгл не отвечает в нужном режиме (bootloader). Почти всегда это решается освобождением порта, драйвером USB‑UART или правильным входом в загрузчик.

Оглавление

Проверьте порт: он часто занят ZHA/Zigbee2MQTT

Причина №1 — порт уже открыт другим процессом, поэтому Flasher получает «unresponsive».

Что сделать:

  1. Если прошиваете на Home Assistant: остановите ZHA или Zigbee2MQTT (и все аддоны/скрипты, которые используют донгл).
  2. Закройте любые serial‑терминалы и утилиты мониторинга.
  3. Переподключите донгл и при необходимости перезагрузите хост, чтобы гарантированно освободить порт.

Если у вас HA в контейнере/виртуалке, убедитесь, что донгл проброшен внутрь системы и не «захвачен» другой VM/контейнером.

Драйвер USB‑UART: CP2102 vs CH910x

У ZBDongle‑E (и некоторых ревизий устройств) встречаются разные USB‑UART чипы: CP2102 или CH9102/CH910x. При неподходящем драйвере порт может появляться, но устройство «не отвечает».

Признаки проблем с драйвером:

  • устройство определяется как «неизвестное» или с ошибкой в диспетчере устройств;
  • COM‑порт есть, но соединение всегда падает на подключении;
  • донгл периодически пропадает из системы.

Решение:

  • переустановите драйвер под ваш чип (не «любой подходящий»);
  • после установки выньте/вставьте донгл и проверьте, что появился стабильный COM/tty.

Web‑Flasher и Web Serial: браузер и разрешения

Веб‑прошивальщики используют Web Serial, и это критично.

Проверьте:

  • используйте Chrome/Edge на ПК (на некоторых платформах/сборках API может быть недоступно);
  • выдайте сайту разрешение на доступ к последовательным устройствам;
  • исключите корпоративные политики/ограничения, которые запрещают Serial API.

USB‑питание, кабель и помехи

Даже если светодиод на донгле горит, связь по UART может срываться.

Что помогает чаще всего:

  • подключить в другой USB‑порт (лучше задний порт ПК или качественный порт мини‑ПК);
  • убрать пассивные хабы, цепочки переходников и «длинные» сомнительные кабели;
  • использовать короткий USB‑удлинитель, чтобы отнести донгл от USB 3.0/помех (часто улучшает стабильность Zigbee и прошивки).

Bootloader и восстановление: ZBDongle‑E и ZBDongle‑P

Здесь важно различать модели:

  • ZBDongle‑E (Silicon Labs): обычно прошивается файлами формата .gbl, при проблемах хорошо помогает принудительный вход в загрузчик.
  • ZBDongle‑P (TI CC2652P): другой стек и инструменты; методы восстановления отличаются.

Как понять, что нужен bootloader

  • Flasher видит порт, но любой коннект заканчивается таймаутом;
  • донгл «завис» после неудачной прошивки;
  • смена кабеля/порта/драйвера не меняет поведение.

ZBDongle‑E: принудительный bootloader и «тяжёлая артиллерия»

  1. Попробуйте перевести донгл в bootloader аппаратно (кнопки BOOT/RESET — зависит от ревизии).
  2. Если штатный Flasher не цепляется, используйте утилиту уровня системы, например universal-silabs-flasher, с режимом принудительного reset через линии RTS/DTR (частый вариант — --bootloader-reset rts_dtr) и прошивкой .gbl.

Не пытайтесь прошивать файлы/форматы «от другой модели»: для ZBDongle‑E и ZBDongle‑P прошивки и инструменты не взаимозаменяемы.

ZBDongle‑P: проверьте режим прошивки и занятость порта

Для ZBDongle‑P чаще всего проблема всё равно сводится к двум пунктам: порт занят или нестабильный USB. Если прошивальщик требует перевод в ROM/boot‑режим — выполните процедуру именно для вашей ревизии донгла и убедитесь, что система видит устройство стабильно.

Частые ошибки

  • Прошивают, не остановив ZHA/Zigbee2MQTT (порт занят, результат — unresponsive).
  • Путают драйверы CP2102 и CH910x: порт есть, но связи нет.
  • Пытаются прошивать через хаб без питания или «шумный» USB‑порт.
  • Используют браузер без поддержки/разрешения Web Serial.
  • Берут прошивку не для своей модели (E vs P) или неверный формат файла.

FAQ

Почему COM‑порт виден, но всё равно «Device unresponsive»?
Порт может существовать, но быть занятым другим процессом, работать на неправильном драйвере, срываться по питанию/USB или донгл не в bootloader.

Нужно ли обязательно перезагружать Home Assistant/хост?
Не всегда, но если порт «не отпускается» после остановки интеграции/аддона, перезагрузка часто быстрее, чем поиск процесса‑держателя.

Если донгл новый и не шьётся вообще — это брак?
Возможно, но сначала исключите: другой USB‑порт/кабель, корректный драйвер, другой ПК/ОС, правильный браузер и остановку всех сервисов, использующих dongle. Если нигде не определяется стабильно — тогда уже имеет смысл думать о замене.

Что вам написать для точной диагностики?
Модель (ZBDongle‑P или ZBDongle‑E), где шьёте (web/аддон), ОС, как устройство называется в системе (COM/tty и чип CP2102/CH910x), и на каком шаге появляется ошибка.