Шаг за шагом: безопасная прошивка Zigbee‑координатора
Коротко: прошивка выполняется через CC‑Debugger для CC2531, через serial bootloader (cc2538‑bsl / llama‑bsl) для CC26x/CC2652 или через фирменный flasher/GUI для ConBee; перед записью обязательно сохранить NVRAM/IEEE и сделать конфиг‑бэкап.
Перед прошивкой отключите питание от критичных устройств сети и убедитесь в физическом доступе к донглу на случай отката или входа в Bootloader.
Какие координаторы и методы прошивки существуют
- CC2531 / CC2530 (старые 8051): обычно через CC‑Debugger + downloader cable или через Arduino/ESP с веб‑флешером. Требуют SmartRF/CC‑Debugger или XZG‑web.
- CC26x / CC2652 / CC1352 (ARM): прошивка через ROM serial bootloader (cc2538‑bsl / llama‑bsl) по USB‑TTL; многие донглы поддерживают удержание BSL‑кнопки.
- ConBee / ConBee II: фирменный Flasher/GUI и OTA‑обновления; обычно самый простой путь — официальный инструмент.
Подготовка перед прошивкой (обязательно)
- Скопируйте конфиг вашего Zigbee‑стека (Zigbee2MQTT, ZHA, deCONZ).
- Считайте и сохраните IEEE (MAC) координатора и NVRAM/EEPROM, если инструмент это поддерживает — это предотвратит потерю привязки устройств.
- Скачайте проверенную прошивку, соответствующую модели и ревизии платы. Ошибочная прошивка может заблокировать адаптер.
- Подготовьте программатор и кабели, установите драйверы (особенно на Windows).
Пошаговая инструкция для большинства случаев
- Определите модель донгла (по маркировке или в логах Zigbee‑софтa).
- Подготовьте файл прошивки (.hex/.bin) подходящий для вашей платы.
- Подключите программатор:
- CC2531: CC‑Debugger + downloader cable или Arduino/ESP + веб‑флешер.
- CC26x/CC2652: удерживайте BSL‑кнопку при подключении или переведите в BSL последовательностью производителя.
- Запустите софт:
- Для CC2531/8051 — SmartRF Flash Programmer (GUI) на Windows.
- Для ARM‑чипов — cc2538‑bsl.py / llama‑bsl (Python). Пример команды:
python3 cc2538-bsl.py -ewv -p /dev/ttyUSB0 ./CC2652_coordinator.hex
- Дождитесь сообщений Verified / Success. Подключите донгл к хосту и проверьте логи Zigbee2MQTT / ZHA / deCONZ — строка с версией координатора подтверждает успех.
Если доступен веб‑флешер (XZG/Multi‑Tool), это часто самый простой путь: браузер обнаружит устройство и предложит прошивку.
Как не потерять сеть: NVRAM и IEEE
- Если инструмент умеет читать NVRAM — сделайте dump и сохраните файл.
- При переносе на другой физический адаптер можно вручную установить старый IEEE в конфиг нового координатора, чтобы привязки устройств сохранились.
- Если NVRAM потерян и IEEE изменился — потребуется повторная привязка устройств.
Проверка и отладка
- После перезапуска Zigbee‑стека убедитесь, что в логах появилась информация о версии координатора.
- При ошибках прошивки просмотрите вывод flasher‑утилиты — чаще всего виден CRC/Verification error или проблемы с портом.
- Если адаптер совсем не отвечает, попробуйте другой кабель/порт, повторите вход в BSL; при полном «кирпиче» потребуется аппаратная перепрошивка.
Частые ошибки
- Не удалось войти в BSL: удерживайте кнопку BSL при подключении, смените кабель/порт, проверьте питание.
- Неправильный файл прошивки: сверяйте ревизию платы и тип микроконтроллера.
- Потеря IEEE/NVRAM: всегда делайте бэкап перед записи.
FAQ
- Нужно ли перепривязывать устройства после прошивки?
Если вы сохранили/перенесли IEEE или NVRAM — обычно нет. При смене IEEE — да, потребуется повторная привязка. - Можно ли прошить с Raspberry Pi без CC‑Debugger?
Да: для CC2531/CC2530 возможны методы с Raspberry Pi, Arduino или ESP и веб‑флешером. - Где взять безопасную прошивку?
Используйте официальные сборки вашего проекта/поставщика и проверенные репозитории.
Чеклист перед началом:
- [ ] Скопирован конфиг Zigbee‑стека.
- [ ] Сохранён NVRAM/EEPROM (если возможно).
- [ ] Скачана проверенная прошивка и выбран корректный файл.
- [ ] Подготовлен программатор/кабели и драйверы.
- [ ] Есть физический доступ к донглу на случай отката.
Если хотите, подготовлю точную команду прошивки и шаги под вашу модель (CC2531, Sonoff CC2652P, ConBee II и т.д.) — укажите модель и стек (Zigbee2MQTT, ZHA, deCONZ).