Прошивка cc2531/cc2530
Прошить модули и устройства на чипах cc2531/cc2530 можно несколькими способами.
Прошивка через CCDebugger
Приобрести CCDebugger можно например тут, либо чуть иной блок или даже вот такой.
Описание этого процесса есть в проекте zigbee2mqtt или тут
Прошивка используя Arduino/ESP/Raspberry
Прошивать можно напрямую с raspberry pi без дополнительных контроллеров — хорошо описано тут https://kvvhost.ru/2019/05/29/zigbee2mqtt-cc2531-raspberry-pi/
Еще один вариант — использовать VLK_DIY_Multi_Flasher от телеграм-пользователя @DJONvl. Перед прошивкой, настоятельно рекомендуется, выполнять команду «Chip Erase».

Обновление прошивки используя SerialBootLoader
Прошивки ZNP для cc253* имеют встроенный бутлоадер, который можно использовать для заливки обновленной прошивки в стик cc2531 или просто чип cc2530 без использования CCDebugger или Arduino, а через USB/UART.
Но для этого потребуется не обычная hex-прошивка, а специальная sbl-прошивка (Serial Boot Loader). Для координатора их можно найти в архивах по адресу https://github.com/Koenkk/Z-Stack-firmware/tree/master/coordinator (файлы с расширением .bin).
Под Windows sbl-прошивку надо прошивать через SerialBootTool. Она идет в комплекте с IAR, либо можно скачать отдельно тут http://processors.wiki.ti.com/index.php/File:SerialBootTool_1_3_2.zip
При старте SerialBootTool надо выбрать Zigbee. Затем выбрать SBL-прошивку (bin-файл). Выбрать и указать параметры порта, где подключен cc253*.
После этого, надо заново вставить стик cc2531 или отключить и заново подключить плату с чипом cc2530 и нажать Load Image. Именно в первую минуту после подключения доступен режим бутлоадера.
Выполнится прошивка и чипом снова можно пользоваться.
Мигаем светодиодом по протоколу Zigbee или модуль управления Триколор GS SMH-ZW-I1 с прошивкой PTVO
После написания поста Zigbee роутер с WiFi или прокачиваем модуль управления Триколор GS SMH-ZW-I1 меня стали терзать смутные сомнения, что многое осталось недосказанным, недопаянным и недопрошитым.

На самом деле прошить чип CC2351 в координатор или роутер Zigbee довольно тривиальная задача, и гораздо интереснее сделать на его основе END-Device. Большинство читателей Хабра знакомы с Arduino или ESP8266, и знают, что каждый новичок, изучающий основы программирования микроконтроллеров и схемотехники на этих платах для разработки первым делом учится мигать светодиодом. Поэтому предлагаю рассмотреть модуль управления Триколор GS SMH-ZW-I1 в качестве своеобразной платы для разработки и тоже помигать имеющимся на ней светодиодом. Сделать это можно не написав ни единой строчки кода, с помощью конфигуратора прошивки от ptvo , специально предназначенной для создания своих Zigbee устройств на чипах CC2530, CC2531, да еще и с поддержкой усилителей сигнала CC2590, CC2591, CC2592, RFX2401.
Прошивка PTVO — первое знакомство.
Как я уже упоминал, для того чтобы создать прошивку чипа CC2530/2531 для своего устройства, совсем не обязательно уметь программировать. Это стало возможным благодаря конфигуратору прошивок от проекта ptvo.info
Пользоваться конфигуратором прошивок и самой прошивкой можно бесплатно, но в этом случае функционал будет ограничен. В бесплатной версии доступно конфигурирование 8 входов и 8 выходов (в платной 16), и недоступно создание устройств с режимом сохранения энергии, который необходим при использовании питания от батареек. В случае создания Zigbee устройства на основе модуля управления Триколор бесплатного функционала хватает за глаза.
Давайте скачаем последнюю версию конфигуратора и ознакомимся с его функционалом.

Работает конфигуратор под операционной системой Windows, интерфейс программы довольно лаконичен, присутствует поддержка русского языка. По умолчанию используется английский язык, но это легко исправить в меню Language.

Генератор прошивок поддерживает работу с довольно большим количеством сенсоров и исполнительных устройств, позволяет запоминать состояние выходов при пропадании питания и конфигурировать входы на обработку одинарных, двойных, тройных нажатий, а также привязывать входы непосредственно к выходам чипа CC2531, обеспечивая возможность менять состояния этих выходов нажатием кнопки. Состояние входов и выходов также можно инвертировать непосредственно в прошивке.

Если в процессе конфигурирования были выбраны некорректные или неподдерживаемые в текущей конфигурации опции, программа сообщит об этом.
Подробнее о возможностях прошивки можно почитать тут, а с примерами готовых устройств на ее основе можно ознакомиться тут.
Делаем прошивку для своего устройства
Для того чтобы создать прошивку под свое устройство на чипе CC2530/CC2531 небходимо указать тип платы и тип устройства.

Для устройства на основе модуля управления Триколор параметр «Тип платы» будет соответствовать CC2530, а тип устройства будет зависить от того, что хотим получить на выходе. Для большинства устройств необходимо выбирать вариант «Конечное устройство без функции роутера», но я выберу вариант «Роутер», так как планирую расширить Zigbee сеть за счет использования самодельного устройства.
Теперь необходимо сконфигурировать входы и выходы. Вооружаемся мультиметром, даташитом на чип CC2531 и находим какие пины чипа выведены в удобные места на печатной плате. Начнем с пина, который управляет светодиодом. Так как почти все пины чипа CC2531 на выходе могут выдать ток не более 4ма (кроме пинов P1_0 и P1_1, ток которых может составлять до 20ма) светодиод подключен к пину не напрямую, а через транзисторный ключ. Путем нехитрых телодвижений с мультиметром находим, что нужный нам пин является пином P0_4. Конфигурируем его в прошивке.

Остальные пины конфигурируются похожим образом, но нас они пока не интересуют, для наших целей достаточно одного пина, на котором висит светодиод. Ставим галочку «Запоминать состояние» если необходимо чтобы состояние светодиода сохранялось при пропадании питания и восстанавливалось после его появления. Сохраняем прошивку в формате *.hex
Прошиваем чип CC2531. Еще один способ.
Чтобы прошить модуль управления Триколор своей прошивкой необходимо иметь CC Debugger или воспользоваться альтернативными методами прошивки. Программатора у меня нет, шить с помощью конструкции из raspberry pi довольно громоздко, поэтому для прошивки я использовал Arduino Uno и CCloader. Но и этот вариант тоже не самый удобный, потому что приходится конвертировать hex прошивку в формат bin с помощью консольной программы, и с помощью консольной программы прошивать.
Но существует еще один способ прошить чип CC2531 с помощью графической программы VLK DIY Multi Flasher от @DJONvl и Arduino.
Качаем VLK DIY Multi Flasher, запускаем, выбираем COM-порт, на котором висит Arduino, жмем Connect, а затем Make Flasher. Arduino прошьется необходимой для работы флешера прошивкой, после чего можно подключить к ней модуль управления Триколор в соответствии с показанной таблицей.

Далее необходимо выбрать полученную с помощью конфигуратора прошивок PTVO прошивку под наше устройство и нажать Write. Если очень хочется, то сначала нажать Chip Erase, потом Write. Спустя некоторое время чип прошьется, перезагрузится и войдет в режим сопряжения. В этот момент необходимо разрешить подключение в Zigbee2MQTT и дождаться пока наше самодельное устройство пройдет интервью.
Мигаем светодиодом по MQTT
После окончания интервью в Zigbee2MQTT появится новое устройство ptvo.switch


Для удобства изменим пользовательское имя на что-нибудь приятное, например на «router», а затем посмотрим какие топики создает Zigbee2MQTT в брокере для этого устройства.

Отлично! Статус устройства можно получить из JSON пейлоада «state_l1» , а управлять состоянием светодиода можно отправляя JSON пейлоад со значением «ON» или «OFF» в топик zigbee2mqtt/router/set
Управлять светодиодом можно также из веб-интерфейса Zigbee2MQTT, однако для устройства ptvo.switch интерфейс слишком перегружен.

Наличие лишних элементов управления у устройства с одним светодиодом обьясняется тем, что Zigbee2MQTT не может автоматически определить какие сенсоры, входы и выходы задействованы в прошивке устройства. Если вы хотите чтобы в интерфейсе z2m не было лишних элементов, необходимо создать прошивку с уникальным идентификатором Производителя и Модели, выгрузить внешний конвертер для него, и добавить его в Zigbee2MQTT.
Теперь можно полноценно использовать самодельное устройство в качестве Zigbee Роутера и интегрировать его в Умный дом по протоколу MQTT.
Таким образом можно создать Zigbee устройство на основе модуля управления Триколор, не ограничиваясь только светодиодом. Большое количество сенсоров и исполнительных устройств, доступных в прошивке PTVO позволяют серьезно расширить функционал, превратив модуль управления Триколор в Zigbee термометр, датчик напряжения и тока, регулятор громкости, выключатель и так далее и тому подобное. Но это уже тема для нового поста.
Большое спасибо за внимание, и творческих успехов!
- Реверс-инжиниринг
- Программирование микроконтроллеров
- Разработка для интернета вещей
- Умный дом
- DIY или Сделай сам
УМНЫЙ ДОМ Раздел умный дом
Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нём некорректно.
Вам необходимо обновить браузер или попробовать использовать другой.
ТехнарьКто
13 Янв 2020 273 435
Предлагаю создать раздел умный дом. Китайцы выпускают много недорогих контроллеров которые можно использовать для самоделок умного дома. Например E18-MS1-PCB
можно запрограммировать хоть arduino nano-й. Вот пример подключенного для программирования чипа ZigBee СС2530 на макетной плате. 

Подключаете датчики или реле и вот у Вас полноценное ZigBee устройство измеряющее то, что Вам надо или управляющее тем, чем надо.

Фактически те же микроконтроллеры с Wi-Fi просто работающие с протоколом передачи данных ячеистой сети. Что то рядом с ESP8266 только полностью заточенное для умного дома, энергосбережение и ячеистая сеть. Уровень вхождения близок к нулевому, для ленивых есть генератор прошивок, а любознательные могут сами писать прошивки.
Изменено: 1 Сен 2023
ТехнарьКто
13 Янв 2020 273 435
Для того, чтобы сообщение выше имело хотя бы минимальную полезную нагрузку. Дополняю информацию.

Прошить чип CC2530 ардуиной. Подробная инструкция. (не мое)
В инструкции файл на скачивание программы, исходя из того, что некоторые не видят очевидного то нажать тут.
Прошивка сделана с помощью «PTVO FirmwareConfig» выводы чипа для подключения датчика и кнопок на рисунке соединений выбраны произвольно исходя из того, чтобы легче было нарисовать разборчивые соединения в рисунке. Под этот рисунок сделана прошивка.
Файлы bme280.hex — это прошивка для чипа CC2530, bme280.js — это внешний ковертер для Zigbee2Mqtt. Все для рисунка схемы в первом сообщении. Скачать файлы одним архивом. Прошивку прошить в чип cc2530. В прошивке адрес bme280 десятичный Dec 118 или Hex 0x76.

Макет ZigBee роутера с датчиком температуры, влажности и давления bme280 (далее учебный макет), будет работать от питания программатора сделанного из ардуины. Если отключить от ардуино программатора, то работать не будет.
Для работы макета в качестве самостоятельного устройства роутера и датчика надо сделать следующее, отключить ардуино программатор и на резет «RST» чипа CC2530 подать напряжение питания. Можно напрямую от 3.3V но лучше через резистор какой есть, от 1Ком до 4,7Ком. Естественно на cc2530 после того как убрали ардуино программатор, надо подать питание 3.3V.
Датчик можно сделать как из модуля в первом сообщении так и из модуля E18-MS1-PCB. Применяю E18-MS1-PCB но для изучения рекомендую макетную плату, их много продается на алиэкспрессе по разным ценам

Перед подключением своего макета в Zigbee2Mqtt надо подключить внешний конвертер. Для этого
Файл bme280.js поместить в каталог Raspberry /opt/zigbee2mqtt/data
В FileZilla это выглядит так
Как это сделать и где взять программы смотри Передача файлов на Raspberry (не мое)
Затем подключить этот конвертер в самом Zigbee2Mqtt. Проверить (1) запрет всех подключений. (2) Нажать настройки. (3) нажать внешние конвертеры. (4) нажать добавить внешний конвертер. (5) ввести название внешнего конвертера. (6) нажать применить настройки.

Перезапустить Domoticz. Подождать пока (Domoticz и Zigbee2Mqtt) пере загрузятся. Открыть ZigBee2Mqtt и разрешить все подключения.
Выбирается щелчком мышки в окне (1) Zigbee2Mqtt.

При включении в USB, схема макета получает питание через Arduino с вывода 3.3V. Сразу запустится подключение устройства, замигает светодиод. Если не подключилось можно нажать кнопку и через более 10 секунд отпустить, светодиод заморгает и будет попытка нового подключения. После подключения короткое нажатие заставляет макет сразу отправить данные в Zigbee2Mqtt иначе данные будут отправляться раз в минуту.
PS Все действия Вы делаете под свою ответственность, автор не несет ответственности за то, что Вы неумелыми действиями смогли сломать свой умный дом.
Вложения
240.5 KB Просмотры: 9
Изменено: 21 Сен 2023
vortigont
24 Апр 2020 828 450 Saint-Petersburg, Russia
а есть готовые модули без внешней антенны-то? И желательно сразу с разъемом под батарейку? Не оч понятно куда тулить этого урода с гребенками и внешней антенной.
А под роутер, наверное, удобнее модуль с внешней антенной и USB разъемом который сразу можно воткнуть в малинку или еще куда где можно связать его с zigbe2mqtt?
ТехнарьКто
13 Янв 2020 273 435
а есть готовые модули без внешней антенны-то?
Есть, например E18-MS1-PCB.
И желательно сразу с разъемом под батарейку?
Странное желание. Разведите плату сами и сделайте разъем под нужную Вам батарейку. На макетных платах для ардуинщиков разъемов для батареек пока от производителей плат не видел и для этих макетных плат ZigBee, разъемы для батареек не встречал. А для модулей Wi-Fi ESP-12F и ZigBee E18-MS1-PCB которые производители устройств устанавливают в схемы, идея наличия разъема для батарейки выглядит абсурдно.
Не оч понятно куда тулить этого урода с гребенками и внешней антенной.
Хорошее замечание. Дело в том, что рисунки соединений нарисованы исходя из того, чтобы было понятно, что и с чем соединять.
Реальные размеры совсем другие. Для точки отсчета взял Nano. Смотрите, что получается.

На самом деле, макетная плата достаточно маленькая, антенна действительно большая. На E18-MS1-PCB антенна сверху платы есть, просто в отличии от ESP-12F где антенну хорошо видно вверху платы, на плате ZigBee антенна залита лаком но ее все равно видно.
Для тех кто привык к монтажу проводками на макете, идеально подойдет макетная плата, будет все привычно. Если Вы хотите сделать компактное устройство, используйте не дорогой, проверенный «народный» модуль E18-MS1-PCB.
Для понимания, сможете ли Вы спаять устройство привожу размеры между центрами контактных площадок.
Плата -> Расcтояние между центрами контактов (вид монтажа)
NANO ардуина -> 2,54 мм (гребенка ардуино)
ZigBee Макетная -> 2,54 мм (гребенка ардуино)
Wi-Fi ESP-12F -> 2,0 мм (контакты)
ZigBee E18-MS1-PCB -> 1,27 мм (контакты)
Учтите, что между самими контактными площадками на модуле ZigBee расстояние меньше одного миллиметра. От перегрева модуль мгновенно выходит из строя. Паять либо температурным профилем, паяльной пастой к Вашей плате, либо у меня получается индукционной паяльной станцией припаивать контакты без повреждения модуля. Время пайки контакта получается менее 0,5 секунды и даю время остыть, перед пайкой следующего контакта.
Тулить макетку туда же, куда тулят все ардуино поделки. Тут все просто. Я Ваши возможности не знаю, возможно для Вас развести плату и припаять smd детали очень просто. Тогда применяйте модули для производителей устройств, но разъемов для батареек на них нету.

Для E18-MS1XXXX уже придумали кучу макетных плат.
Например.
Находясь в РФ, присутствует отрицательная возможность такое купить готовое. Но в принципе в интернете есть бесплатные гербер файлы и можно заказать у китайцев изготовление на JLCPCB или подобном.
А под роутер, наверное, удобнее модуль с внешней антенной и USB разъемом который сразу можно воткнуть в малинку или еще куда где можно связать его с zigbe2mqtt?
Роутер в ZigBee сильно отличается от центрального узла координатора.
Координатор, например на базе малины с более серьезным USB ZigBee зеленый на схеме выдает слишком малый сигнал для конечного устройства (датчик) желтый на схеме. Сигнал гасится железобетонными перегородками здания, через одну стену сигнал проходит, а через несколько стен гарантированно затухает. Роутеры позволяют транслировать сигналы от датчиков до координатора. Получив слабый сигнал от координатора, роутер отправляет полноценный по мощности сигнал и уже этой мощности хватает, чтобы сигнал дошел до другого роутера или конечного устройства. Это преимущество ячеистой сети. Расплата за это преимущество, низкая скорость, малые объемы данных, большие задержки. Достоинство, требуется малая мощность сигнала датчика и как следствие низкий расход энергии батарейки. Роутеры в сети ZigBee вынуждено потребляют больше энергии, потому, что всегда в работе, готовы получать и пересылать информацию. Датчики наоборот, спят с почти нулевым потреблением энергии изредка просыпаясь и отправляя информацию ближайшему роутеру, кто готов получить и проследить доставку до координатора. Чтобы у пользователя не возникало дурных мыслей, зачем ему эти роутеры производители всегда совмещают постоянно подключенное к сети питания устройство с чем либо (датчики, лампочки, розетки, выключатели). Соответственно грамотно построенная сеть будет содержать нужное количество роутеров, хотя пользователь не будет отдельно покупать такое устройство. Поскольку мой пример содержит роутер с датчиком, а не антенну координатора, смысл включать его в малину отсутствует. Вы можете сделать из CC2530 антенну ZigBee для малины, но не советую. Соответственно предполагалось, что данные с датчика будут попадать в координатор так же, как если бы Вы в свой умный дом добавили еще одно отдельно установленное устройство.
PS Для понимания. Не являюсь командой форума, Не пишу заказные платные либо бесплатные статьи для этого форума. Такой же обычный пользователь как и многие здесь пишущие. Просто по образованию инженер по специальности связанной с электроникой и большим жизненным опытом, знаниями и навыками работы. Поскольку это было всего лишь предложение завести отдельный раздел для устройств умного дома и обсуждений как сейчас с Вами, а пока администрация думает, оформил текст до вида, отсюда можно что-то узнать
Универсальный ZigBee модуль с батарейным питанием на основе E18-MS1-PCB
В продолжение темы универсального ZigBee модуля от Jager’а, решил сделать свой вариант на основе готовой платы E18-MS1-PCB (чип CC2530). Размеры получились немного больше, чем у вышеприведенного аналога (32×31 против 25×21мм), но и сложность монтажа компонентов, как и их общее количество, снизилось в несколько раз.

Пины подключения встроенных кнопки и светодиода остались теми же (SWITCH = P2.0, LED = P0.1), так что прошивки полностью совместимы. На выводы можно запаять стандартную PLS гребенку 2.54мм. В качестве держателя батарейки CR2032 использовал вот этот вариант. Светодиод можно ставить абсолютно любой, например, такой (типоразмер 0603). Кнопку покупаем здесь.
Файл Sprint Layout 6.0: E18-MS1-PCB_2032.lay6 (48.8 Кб)
Gerber файлы: E18-MS1-PCB_2032.zip (11.5 Кб)
UPD1. Уважаемый @anonymass написал новую прошивку для кнопки/геркона, которая имеет открытый исходный код и лишена багов своего предыдущего аналога. Скачать можно здесь.
UPD2. По многочисленным просьбам добавил на плату танталовый конденсатор.
Файл Sprint Layout 6.0: E18-MS1-PCB_2032_v2.lay6 (51.0 Кб)
Gerber файлы: E18-MS1-PCB_2032_v2.zip (11.7 Кб)
UPD3. Нарисовал печатку отладочной платы для данного универсального модуля. Должна облегчить процесс разработки и прошивки. Не тестировалось в настоящем железе, так что если кто решит ее собрать — просьба отписаться в комментариях.
Внимание! Все действия, описанные выше, вы выполняете на свой страх и риск. Автор не несет никакой ответственности за любой вред, причиненный пользователю или третьим лицам в результате использования материалов, программного обеспечения и другой информации, размещенной на данной странице.
Полезно? Поддержите! Это мотивирует автора к дальнейшим публикациям.
Posted in Умный дом, Устройства Помеченные CC2530, CR2032, E18-MS1-PCB, ZigBee
Опубликовано Kasito
DIY как хобби — разработка и ремонт различной электроники, создание приложений для WEB (PHP, JavaScript, MySQL, HTML, CSS), Desktop (C#, C, C++, Java) и микроконтроллеров (C, C++). На данный момент увлёкся системами умного дома, в частности Home Assistant и ZigBee устройствами. Перейти в профиль пользователя Kasito
Обсуждение
74 ответа к «Универсальный ZigBee модуль с батарейным питанием на основе E18-MS1-PCB»
Вячеслав ( гость ) :
Спасибо большое!
Прошу помощи: впервые решил заказать плату.
Не могу понять где мне добыть BOM и CPL файлы.
Держатель для батарейки и плату zigbee я заказал.
Или вы все элементы самостоятельно припаивали?
Буду очень признателен.
Kasito ( администратор ) :
Конечно самостоятельно. Из за трех деталей, которые легко паяются даже обычным паяльником, нет смысла переплачивать за монтаж. Это займет не больше десяти минут. А если воспользоваться паяльной пастой и техническим феном, то вообще все делается за минуту.
Вячеслав ( гость ) :
Понял, спасибо
*пошел выбирать технический фен и пасту
Kasito ( администратор ) :
С феном не подскажу, у меня встроенный в паяльную станцию (Lukey 702), а вот паяльную пасту использую такую. Отличное качество. Единственный минус — то что в баночке. В шприце было бы удобнее.
Вячеслав ( гость ) :
Отлично! Спасибо за подсказку по пасте.
Я уже почитал про паяльные станции и остановился как раз на Lukey 702! :)))
Она есть у меня в городе.
Vladislav ( гость ) :
Подскажите, прошивка делается через cc debugger? Через контакты в верхнем левом углу?
Если есть уже опыт, примерно на сколько хватает cr2032?
И как вы думаете, сможет это устройство увидеть deconz или только z2m?
Kasito ( администратор ) :
Прошивается через CC Debugger. Пины, как обычно — P2.1, P2.2 и RST. Срок службы батарейки зависит от используемой прошивки. С Deconz и Z2M дела не имел, так что не могу подсказать. Я подключаю через SLS Gateway. Опять же, тут все зависит от конечной прошивки.