Прошивка ZBDongle‑E в режиме загрузчика: быстрый и безопасный порядок
Чтобы прошить Sonoff ZBDongle‑E через BSL/bootloader, переведите донгл в режим загрузчика (кнопкой BOOT при подключении или авто‑reset по RTS/DTR) и залейте прошивку формата .gbl через Web Flasher или утилиту universal-silabs-flasher. Ниже — короткая, практичная последовательность без лишних шагов.
ZBDongle‑E (Silicon Labs) прошивается .gbl. Если у вас .hex, вы почти наверняка смотрите прошивку не для ZBDongle‑E.
Оглавление
Перед началом: что проверить
-
Убедитесь, что это именно ZBDongle‑E, а не ZBDongle‑P.
Самый частый сценарий “не шьётся” — неверная модель и, как следствие, неверный формат/тип прошивки. -
Освободите последовательный порт.
Остановите всё, что держит донгл: Zigbee2MQTT, ZHA, любые сервисы/контейнеры, которые открывают/dev/tty*/COM‑порт. -
Кабель и питание — критично.
Используйте кабель с передачей данных и, по возможности, USB‑удлинитель (меньше помех и просадок питания). Если прошивка срывается на “connect/write” — это пункт №1 для проверки.
Если у вас уже рабочая Zigbee‑сеть, заранее сохраните данные приложения (например, папку данных Zigbee2MQTT или базу ZHA). Это не “прошивка‑бэкап”, но поможет быстрее восстановиться, если придётся пересоздавать сеть.
Как перевести донгл в bootloader (BSL)
Вариант A (надёжный): вручную кнопкой BOOT
- Выньте донгл из USB.
- Зажмите BOOT.
- Не отпуская BOOT, вставьте донгл в USB.
- Подождите 2–3 секунды и отпустите.
Вариант B (удобный): авто‑перевод по RTS/DTR
Многие прошивальщики умеют сами перевести донгл в загрузчик, “дёрнув” линии RTS/DTR. Это удобно на сервере без физического доступа к кнопке.
Способ 1: прошивка через Web Flasher
Подходит, если нужен самый простой путь и у вас есть Chromium‑браузер с поддержкой WebSerial.
- Откройте Web Flasher:
https://dongle.sonoff.tech/sonoff-dongle-flasher/
- Нажмите Connect и выберите порт донгла.
- Выберите ZBDongle‑E и укажите файл прошивки
.gbl(или выберите вариант в интерфейсе). - Нажмите Flash и дождитесь окончания.
- Переподключите донгл (вынуть/вставить).
Если Web Flasher не видит устройство или пишет про ошибку соединения — почти всегда виноваты: занятый порт, кабель “только зарядка”, донгл не в bootloader, или браузер без WebSerial. В таких случаях быстрее перейти на CLI‑способ ниже.
Способ 2: прошивка через universal-silabs-flasher (CLI)
Этот вариант обычно “пробивает” сложные случаи: сервер Linux, нестабильное подключение, проблемы с автоопределением.
Мини-сравнение способов
| Способ | Когда выбирать | Что важно |
|---|---|---|
| Web Flasher | быстро прошить с ПК | нужен Chromium и доступ к WebSerial |
CLI (universal-silabs-flasher) | надёжность и контроль | правильно указать порт и .gbl |
1) Установка
python -m pip install --upgrade universal-silabs-flasher
2) Найдите порт
Linux:
ls -l /dev/serial/by-id/ 2>/dev/null || true
ls -l /dev/ttyUSB* 2>/dev/null || true
macOS:
ls /dev/cu.*
Windows: посмотрите COM‑порт в “Порты (COM и LPT)”.
3) Проверка (probe)
universal-silabs-flasher --device /dev/ttyUSB0 probe
4) Прошивка (рекомендуемый сценарий с авто‑reset в bootloader)
universal-silabs-flasher \
--device /dev/ttyUSB0 \
--bootloader-reset rts_dtr \
flash \
--firmware ./FIRMWARE.gbl
Флаги вроде --force, --allow-cross-flashing, --allow-downgrades используйте только когда уверены, что файл точно под вашу задачу и устройство. Иначе легко получить “прошилось, но не то”.
Проверка после прошивки
- Переподключите донгл (простое “вынул/вставил” часто решает проблемы с зависшим портом).
- Снова выполните:
universal-silabs-flasher --device /dev/ttyUSB0 probe
- Если используете Zigbee2MQTT и прошивали современный NCP для ZBDongle‑E, обычно нужен адаптер ember:
serial:
port: /dev/serial/by-id/usb-XXXX
adapter: ember
baudrate: 115200
Частые ошибки
-
Порт занят / Permission denied / Resource busy
Остановите Zigbee2MQTT/ZHA, проверьте, что контейнер/служба не держит устройство, перезапустите сервисы или хост. -
Прошивка не выбирается / не подходит
Проверьте модель (E vs P) и формат: для ZBDongle‑E нужен.gbl. -
Connection failed / обрывы на записи
Замените кабель на data‑кабель, уберите USB‑хабы, попробуйте другой порт, переведите в bootloader кнопкой BOOT и шейте через CLI. -
После прошивки Zigbee “не поднимается”
Проверьте, что выбрали правильный тип прошивки (Coordinator/NCP vs Router vs Thread RCP) и правильный драйвер/адаптер в вашем ПО.
FAQ
Нужно ли перепривязывать устройства после прошивки?
Иногда да: при смене типа прошивки или при сбросе данных NVM сеть может стартовать как новая. Поэтому перед началом лучше сохранить данные вашей системы автоматизации.
Можно ли прошить ZBDongle‑E прошивкой .hex?
Нет, для ZBDongle‑E обычно используются .gbl. .hex чаще относится к другим платформам.
Что делать, если кнопки BOOT нет доступа (донгл в сервере)?
Используйте CLI с --bootloader-reset rts_dtr — часто это позволяет перевести донгл в bootloader без физического нажатия.