Прошивка cc2531 через usb

Обновлено: 07.07.2024

Первоначально нужно, чтобы СС2531 был прошит любой ZNP прошивкой. Например Z-Stack-firmware для Zigbee2Mqtt. В этих прошивках имеется встроенный загрузчик, который позволяет залить прошивку через UART.

Для этого нам понадобится программа SerialBootTool. Скачиваем и устанавливаем.

Так же скачиваем прошивку отсюда, нам нужен файл с расширением .bin

Вставляем CC2531 в usb порт. В первый раз Windows определяет устройство и скачивает драйвера, нужно подождать секунд 10.

В обычном состоянии CC2531 будет светить зеленым светодиодом.


Запускаем SerialBootTool. При запуске выбираем ZIGBEE


Далее выбираем файл прошивки в поле Image File, выбираем порт cc2531 через кнопку Port Settings, у меня COM5. Остальные параметры не меняем.


И жмем кнопу Load Image.

Загорится красный светодиод.

Дожидаемся окошка об успешном выполнении и стиком можно пользоваться


Для cc2531 в Windows 7 нужно скачать драйвер вот отсюда, сам он не подтянется. Спасибо за комментарий пользователя RustamG


Когда вы первый раз заходите с помощью соцсетей, мы получаем публичную информацию из вашей учетной записи, предоставляемой провайдером услуги соцсети в рамках ваших настроек конфиденциальности. Мы также автоматически получаем ваш e-mail адрес для создания вашей учетной записи на нашем веб сайте. Когда она будет создана, вы будете авторизованы под этой учетной записью. Когда вы первый раз заходите с помощью соцсетей, мы получаем публичную информацию из вашей учетной записи, предоставляемой провайдером услуги соцсети в рамках ваших настроек конфиденциальности. Мы также автоматически получаем ваш e-mail адрес для создания вашей учетной записи на нашем веб сайте. Когда она будет создана, вы будете авторизованы под этой учетной записью.

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Только апдейт прошивки или можно таким же образом прошить стик под, скажем, роутер ?

Пустой стик не прошить. Я не знаю, китайцы пустой присылают или там уже что то залито, у меня два cc2531 и оба уже прошиты, поэтому проверить не могу. А координатор на роутер поменять и наоборот, или просто обновить без проблем получится

Просто заказал 4 штуки сс2531 и они пришли. А дебагер (CC Debugger) еще в пути и по ходу ждать как минимум пару недель. Я и обрадовался, что смог бы раньше прошить )

Было бы не плохо, если бы вы проверили)

Убить не убьёте, она просто не должна будет залиться. Так как бутлоадера не будет.

Com порт новый не появился? У меня десятка все быстро нашла

По умолчанию ни дома ни на работе винда не нашла драйвера. Вы вероятно что-то раньше ставили, поэтому и прошло на ура.
В общем откопал на форумах драйвер Cebal, установилась, железка стала полностью видна. Однако в системе новых com-портов не появилось.

Если устройство распозналось, а порта нет, значит бутлоадера нет, увы) стик пустой, прошивать нужно)

Да, увы, придется ждать дебаггера )

Как? Подскажите, как поменять координатор на роутер?

Ребят а по теме, где взять драйвер уже пошитого стика для обновления TI CC2531 USB CDC Serial Por.

У меня автоматом подтянулся

Добавлю в статью, спасибо

Здравствуйте! У себя менял стик на другой и все устройства остались привязанными. И обновлял прошивку этим способом, все тоже продолжило работать. Но это было полгода назад, на актуальной на тот момент версии zigbee2mqtt. Как сейчас не знаю, но не думаю что обновление повлияет на id стика. В любом случае все делайте на свой страх и риск.

Здравствуйте! Хочу прошить стик сс2531 под роутер, но по вашей ссылке выложены hex прошивки, которые в SerialBootTool не шьются. Нужна bin прошивка. Под координатор есть. Подскажите, где можно взять под роутер?


Был у меня Xiaomi gatway второй версии и купленные к нему zigbee датчики. А именно датчик температуры и влажности, датчик открытия дверей и окон. И датчик движения.

Но у меня попросили данный шлюз и датчик температуры. Я его и подарил. А два датчика остались. Плюсом так как я начал увлекаться системой умного дома Home Assistant и видя сколько на рынке всяких устройств работающих по протоколу Zigbee (не только от компании Xiaomi). Понял что покупать Zigbee шлюзы от разных компаний и плодить их, не самое лучшее решение. По этому решил посмотреть есть ли на рынке универсальные устройства.

Как оказалось их довольно не много. И они довольно дорогие. Мой взгляд упал на самый дешевый из них, это CC2531 usb dongle. Версии бывают данного стика разные. Например с RCA антенной отельной или же размазанной на плате. Также данные устройства продают с программатором. Дело в том, что изначально CC2531 прошиты с завода не совместимой прошивкой с Home Assistant. И программаторы какраз служат для того чтоб прошить первый раз для работы с HA.

Но я решил сэкономить и с мыслями (я прошивал все что прошивается и даже больше. Неужели я не прошью данный свисток без программатора?) заказал чисто свисток без программатора.

Перепрошивка.

Стик пришел. Попробовав его подключить к Home Assistant. Конечно ничего не получилось. Так, надо перепрошить. И тут начались проблемы. Первое. У стика очень тонкие контакты. И стандартные для arduino контактные провода не подходят. Вот для примера картинка, как отгибают контакты и припаивают провода, чтоб подключиться:


Ну не беда, подумал я, ведь у меня есть вот такие щупы, очень цепкие и как-раз легко могут зацепиться за данные контакты не отгибая их:


Хорошо, с подключением к контактной гребенке разобрались. Теперь давайте разберемся как его прошить.

Существуют несколько Вариантов.

Первое, в ардуино 5 вольтовая логика, а в cc2531 3.3 вольтовая. И если напрямую подключить, то контроллер на cc2531 скорее всего сгорит. Чтоб этого не произошло используют делитель напряжения 100ком и 200ком. На странице гитхаба показана схема. Но можно использовать esp8266 в ней 3.3 вольтовая логика и тогда городить с делителем напряжения ничего не нужно.

Второе. Это скрипты python. Они написаны под версию 2.7 И у меня с ней проблемы, потому что у меня многое работает на 3+ и удалять я 3тий не собираюсь. В итоге я пытался доставить не достающие библиотеки. Читал ошибки и увидел комментарий, что прошить через raspberry pi гораздо проще.

По этому я отложил эту затею и решил попробовать способ прошивки через raspberry pi. Вот данный способ я здесь и опишу полностью по шагам.

Для начла давайте подключим проводами raspberry pi и стик cc2531 по вот такой схеме:


Левая часть это контакты CC2531. А правая контакты raspberry pi. Ниже прикладываю распиновку контактов плат



После подключения контактов, вставим стик в usb raspberry pi к которому она подключена контактами и зайдем по ssh на raspberry pi. У меня Raspberry pi под управление rasbian.

Для этого введем команду:

Далее перейдем в скаченную папку:

Теперь давайте проверим видит ли raspberry pi наш стик

Для этого введем команду:

Вывести должно id устройства. например так:

Теперь давайте сохраним прошивку в .Hex файл. Которая сейчас залита в zigbee stick. Для этого введем следующую команду:

Далее прежде чем залить новую прошивку нам нужно очистить память cc2531. Для этого введем:

Но у меня написало ошибку при разархивировании. По этому я скачал данный архив себе на компьютер. Далее запустил программу WinSCP и через нее зашел в папку с файлами прошивки и перетащил туда .hex файл из архива.

После разархивирования введем команду которая запустит прошивку стика:

И дождемся окончания заливки прошивки.

Все теперь у нас прошился стик. Как данным CC2531 управлять в home assistant можно узнать в этой статье тут.


Важно! Этот метод подойдет только тем, у кого на руках уже прошитый стик (любой Z-Stack прошивкой). В этих прошивках имеется встроенный загрузчик.

Какие бывают прошивки?

Процесс обновления прошивки

  • Для перепрошивки стика нам понадобиться SerialBootTool, скачиваем его с ti.con (официальный сайт Texas Instruments ). Распаковываем и устанавливаем.
  • Берем необходимую прошивку из предыдущего раздела.

Далее подключаем CC2531 в свободный USB порт компьютера, Windows сама установит необходимые драйвера.

Далее открываем Диспетчер устройств и смотрим, каким COM портом определился наш стик. В моем случае это COM порт 6.



Далее нам необходимо указать путь к скачанной прошивке и Com Port Info, указываем все как в моем случае, подставив только свой порт.



Собственно и все, можно переходить к процессу прошивки.

Во время прошивки светодиод на CC2532 должен изменить цвет свечения на красный и должен пойти процесс залития прошивки в стик. По окончанию процесса он снова загорится зеленым.


Если процесс прошивки не начался, передергиваем стик и повторно нажимаем Load Image.


Вот собственно и все, я думаю это самый простой способ для того, чтобы обновить ПО вашего стика или же изменить его предназначение с координатора в роутер и наоборот.


Хочешь умный дом но нет времени разбираться?
Посмотри примеры работ и выбери себе интегратора.

Здравствуйте! Хочу прошить стик сс2531 под роутер, но по вашей ссылке выложены hex прошивки, которые в SerialBootTool не шьются. Нужна bin прошивка. Под координатор есть. Подскажите, где можно взять под роутер?

Присоединяюсь к вопросу. Или подскажите куда копать, как правильно переконвертировать HEX в BIN ?


На Хабре уже встречались статьи о том, как подружить ZigBee устройства различных производителей с системами управления умным домом, без использования фирменных хабов, вроде Xiaomi Gateway. Однако, инструкции для homebridge, я не нашел не только на Хабре, но и на других просторах интернета. Поэтому хочу поделиться опытом добавления ZigBee устройств в homebridge. Огромную благодарность надо выразить создателю ресурса zigbee2mqtt.io, там уже расписаны способы прошивки модема CC2531 и подключения к таким системам управления умным домом как Home Assistant, Domoticz и Majordomo. Статья рассчитана на пользователей, у которых уже установлен и настроен homebridge.


Все действия в статье будут проводиться со следующим набором оборудования:

  • Raspberry Pi 3 B+ (OS Raspbian) (Прошитый)
  • Устройства Xiaomi (wireless switch, temperature & humidity sensor. )
  • MacBook Pro (OSX 10.14)

Схематично всю цепочку работы можно изобразить так:


Теперь по порядку.

После прошивки модема необходимо установить MQTT брокер (если еще не установлен).

Я использую Mosquitto, устанавливается так:


Более подробную инструкцию по настройке можно посмотреть тут.

Теперь необходимо установить сервис zigbee2mqtt, который взаимодействует с модемом CC2531 и передает данные в Mosquitto:


Для того чтобы запускать zigbee2mqtt как сервис, необходимо создать файл:
/etc/systemd/system/zigbee2mqtt.service

Если у вас уже был установлен MQTT брокер то прописать правильные параметры подключения к нему нужно в файле:


Запускаем сервис и добавляем его в автозапуск:

Если все настроено правильно должны увидеть такие строки:

Можно приступать к интеграции с homebridge. На ресурсе zigbee2mqtt.io есть список поддерживаемых устройств и инструкции по созданию пары. Для примера рассмотрим добавление Xiaomi Wireless Switch.


Для просмотра событий в Mosquitto воспользуемся программой MQTT Explorer. Запускаем, вводим адрес MQTT сервера, в моем случае он расположен по адресу 192.168.1.104 . Если все установлено правильно, то в дереве увидим ветку zigbee2mqtt. Переходим в нее. Теперь на Xiaomi Wireless Switch зажимаем кнопку Reset до появления мигания диода (около 5 секунд). Примерно через 10 секунд в ветке zigbee2mqtt мы увидим наше устройство и данные которое оно передает.

Если этого не происходит, то после появления мигания диода, попробуйте однократно нажимать Reset с периодичностью в секунду. Должно получиться так:


Поле Click содержит тип нажатия, их может быть пять:
Click, double click, triple click, long, long_release

Данные получать научились, теперь добавим Xiaomi Wireless Switch в homebrdige. Для взаимодействия с MQTT воспользуемся модулем homebridge-mqttthing. Устанавливается так же, как и другие:


Модуль поддерживает большое количество классов устройств начиная с выключателей и заканчивая термостатами. Для Xiaomi Wireless Switch больше всего подходит класс StatelessProgramableSwitch . Для добавления нужно знать Topic (0x00158d00022c85ea) и названия команд. Получается вот такой конфиг:


По аналогии я добавил:

датчик температуры и влажности, датчик касания, датчик присутствия и выключатель.

Раньше я использовал модуль homebridge-mi-aqara, который добавляет ZigBee устройства, взаимодействуя с Xiaomi Gateway. При отказе от Gateway уменьшилось время отклика устройств, вдобавок я избавился от устройства которое сидит на моем WiFi и постоянно лезет в интернет.

Дополнение 07.11.2020 спасибо за @dalamber_sign, если у кого то есть подобные проблемы, возможно поможет:

Читайте также: