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

Обновлено: 05.07.2024

Используйте USB-накопитель CC2531 в качестве концентратора ZigBee для замены шлюза Philips HUE, Osram Lightify, Xiaomi/Aqara Hub, IKEA tradfri и т. д.

Я предполагаю, что вы знакомы с Arduino IDE и установили ее на свой компьютер.

Это прошивка для вашего специального программатора на базе ESP8266

Загрузить прошивку CC2531

Вы можете использовать либо

В Linux вы можете просто загрузить его, набрав

Я установил и проверил работоспособность обеих версий. Поэтому я присоединил их к этому проекту.

Если вы загружаете CC2531ZNP-Prod.hex отсюда (hackaday.io), вам не нужно изменять файл!

Важное примечание:

При использовании отладчика/программатора CCLib_proxy на основе Arduino, как описано здесь, необходимо изменить пользовательскую прошивку (CC2531ZNP-Prod_20181119.zip) от Koen Kanters. Иначе вы не сможете его прошить!

Модификация очень проста:

Разархивируйте архив и откройте файл .hex в любом текстовом редакторе.

Прокрутите файл до самого конца и удалите вторую строку снизу. В файле .hex выше соответствующая строка

Просто сохраните файл, и все готово.

В вашей системе также должен быть установлен Python 2.7 или более поздней версии.

После того, как вы скачали/разархивировали CCLib, откройте терминал и перейдите в папку Python

Теперь установите необходимые модули Python, набрав:

Установите библиотеку Arduino/CCLib в IDE arduino

Откройте CCLib_proxy.ino из CCLib/Arduino/CCLib/Examples/CCLib_proxy

Я загрузил модифицированную версию скетча Arduino на сайт hackaday.io.
Если вы загрузили файл CCLib_proxy.ino, указанный выше, вы можете пропустить следующую модификацию кода.

Изменить код:

Укажите правильные выводы для ESP8266 / Wemos D1 mini

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

См. прибл. строка 37

Затем найдите первую задержку() прибл. строка 98 и увеличьте начальное значение (50) до 1000:

Ещё раз. это необходимо для работы ESP8266 / wemos d1 mini / nodeMCU

прибл. строка 98:

При использовании arduino uno/nano/. вам, вероятно, не нужно менять задержку.

После того как вы изменили код, скомпилируйте и загрузите его.

После того как вы скомпилировали и загрузили CCLib_proxy на мини-плату wemos d1, отключите ее от шины USB.

Теперь возьмите несколько (на самом деле 5) перемычек и подключите плату ESP к порту отладки адаптера CC2531. Поскольку ESP использует 3,3 В, вам не нужен делитель напряжения!

Обратите внимание:

В отличие от вашего обычного макета/разъема, порт отладки на CC2531 имеет меньшее расстояние, равное 1 мм. Чтобы подключить провода, вы можете либо использовать связанный кабель отладчика, либо осторожно подключить SMD-зонды к крошечным контактам. Я видел, как несколько человек уничтожили свой порт отладки / сломали контакты, обращаясь с ним слишком грубо. Эти маленькие булавки действительно очень хрупкие! Поэтому соблюдайте осторожность, если не используете соединительный кабель с малым расстоянием между ними.

Обратите внимание, что на стороне wemos/ESP контакты D6 (DD_I) и D4 (DD_O) соединены вместе и идут к контакту 4 (DD/данные отладки) порта отладки CC2531.

Вам нужно подключить только эти четыре контакта на CC2531:

3 — DC (часы отладки)

4 – DD (данные отладки)

Если флешка лежит перед вами, USB-порт направлен влево, контакт 1 находится в правом верхнем углу 10-контактного разъема для программирования.

Проверьте подключение и подключите плату ESP / wemos d1 mini к порту USB.

Убедитесь, что накопитель CC2531 еще не подключен к USB-порту!

Теперь выясните, какое устройство ему назначено.

В Linux это можно сделать, например. набрав «dmesg». Найдите что-то вроде

В Windows используйте соответствующий порт COMx.

Как только вы узнаете свой последовательный порт (например, /dev/ttyUSB0), перейдите в папку CCLib/Python.

Подключите CC2531 к другому свободному порту USB (или используйте внешний аккумулятор или зарядное устройство USB)

Теперь посмотрите, получите ли вы некоторые сведения о своем устройстве, набрав (соответствующим образом отрегулируйте последовательный порт)

иногда может потребоваться добавить параметр -E к приведенной выше команде:

Опция -E, --enter Войти в режим отладки, если отладка еще не выполняется

Опция -E помогает перевести CC2531 в режим отладки.

Если все работает, вы должны получить ответ, подобный этому:

Если вместо этого вы получите какую-либо ошибку, попробуйте еще раз.

На этот раз отключите оба устройства от USB-портов.

Введите команду cc_info.py, как указано выше, но пока не нажимайте клавишу ввода.

Теперь подключите плату ESP к порту USB.

Подключите накопитель CC2531 к другому порту USB.

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

После того, как вы добьетесь успеха, вы можете установить новую прошивку, как описано в следующем шаге.

Если вы убедились, что ваш программатор может обмениваться данными с вашим адаптером cc2531 (см. шаг выше), вы можете прошить свое устройство.

Предполагая, что у вас есть образ встроенного ПО (файл .hex) в той же папке, что и ваши скрипты Python (в CCLib/Python/ ), вы можете начать программирование, набрав

или, при использовании модифицированной прошивки от Koen Kanters

Если все получилось, это должно выглядеть так:

Важное примечание:

Программирование занимает довольно много времени (до двух часов). Так что не волнуйтесь!

Просто следите за тем, чтобы случайно не отсоединить провода во время программирования!

После прошивки адаптера просто подключите его к устройству, на котором работает ваша система домашней автоматизации, например. iobroker, domoticz, домашний помощник / hass.io или openhab.

В iobroker установите ZigBee-Adapter, настройте последовательный порт и начните сопряжение устройств.

В качестве альтернативы можно использовать шлюз ZigBee2MQTT для размещения адаптера в удаленном месте:

В апреле прошлого года я опубликовал руководство по подключению датчиков Aqara к Raspberry Pi без использования шлюза Xiaomi. Чтобы сделать это возможным, мне понадобился CC Debugger для прошивки TI CC2531 Zigbee Dongle. Этот отладчик использовался только один раз, после чего ключ Zigbee-USB заработал без проблем.

В этой статье я расскажу, как прошить CC2531 без CC Debugger. Это снижает стоимость проекта (около 10 долларов США на отладчик + кабельные адаптеры) и время ожидания. Обычно вы ждете 30 дней, чтобы получить недорогую версию отладчика (используя самый дешевый вариант доставки). Начнем!

Оборудование

Для этого проекта вам потребуется следующее оборудование:

Сделай сам: подключение оборудования

Вам понадобится паяльник и 4 соединительных кабеля. Затем припаяйте 4 провода к контактам: GND, DC, DD и RST разъема CC2531 (см. разъем CC2531 на рис. 1а). Штекер очень маленький, и вы можете немного согнуть контакты, если вы не можете припаять их напрямую.

Однако, если вы плохо паяете или у вас нет паяльника, вы можете купить следующий переходник:

Адаптер подключается с помощью плоского кабеля к CC2531 и имеет большую контактную колодку на плате. Таким образом, вы можете подключить разъемы-перемычки «мама» непосредственно к этому разъему (см. разъем CC Debugger Pin на рис. 1a). Неважно, какой вариант вы выбрали (припой или переходник), но затем подключите другой конец проводов к разъему Raspberry Pi (см. рис. 1b), как описано в следующей таблице:

Raspberry PiCC2531
ЗемляЗемля
Контакт 38DD
Контакт 36DC
Контакт 35RST

После подключения разъема CC2531 к разъемам Raspberry Pi подключите USB-ключ к USB-порту Raspberry Pi, а затем включите Raspberry Pi.

Если вы используете гибкий плоский кабель (FFC), поставляемый с адаптером, и хотите подключить оттуда штыревые перемычки к Raspberry Pi, имейте в виду, что подключение не описано на рис. 1a (заголовок контактов отладчика CC). . Вам нужно отразить его.

CC2531 PINs
Raspberry Pi
Рис. 1a: Описание PIN-кода CC2531 Рис. 1b: Описание PIN-кода Raspberry Pi

Сделай сам: перепрошивка CC2531

  1. На Raspberry Pi проверьте, установили ли вы уже Wiring Pi, набрав: gpio -v в терминале. Если нет, установите его, следуя этим инструкциям.
  2. Клонируйте репозиторий jmichault/flash_cc2531, введя следующее:
  3. Зайдите в папку flash_cc2531 и проверьте, правильно ли подключен ключ Zigbee-USB и идентифицирован ли он:
  4. Вы должны увидеть ID=b524 . Если вы получили любой другой текст (например, 0000 или ffff ), перепроверьте проводку.
  5. Загрузите последнюю версию прошивки с веб-сайта Koenkk/Z-Stack-firmware.
  6. Сотрите флэш-память CC2531 с помощью ./cc_erase
  7. Запишите прошивку, используя ./cc_write/path/to/CC2531ZNP-Prod.hex . Это займет около 3 минут.
  8. Отсоедините провода/адаптер и перезагрузите Raspberry Pi.
  • а. Если у вас есть сеть из 1–30 устройств, рекомендуется прошивка Z-Stack_Home_1.2 /bin/default.
  • б.Если у вас есть сеть из 30+ устройств, рекомендуется прошивка Z-Stack_Home_1.2 /bin/source_routing.

Пользователи Raspberry Pi 1
Копирую сюда комментарий, написанный whooty 26.01.2020 (СПАСИБО!):

Только что сделал это с пи 1. Все, что вам нужно сделать, это использовать разные контакты. Проверьте документацию для flash_cc2531, там есть раздел, в котором рассказывается, как изменить используемые вами выводы. Используйте «gpio readall», чтобы выяснить, какие контакты к чему подключены, и используйте номер wPi для флагов команд в flash_cc2531.

Выводы

Благодарности


Это, безусловно, самый дешевый и быстрый способ прошивки CC2531 — я понятия не имею, почему он указан как последний вариант в «официальном руководстве», что отложило меня на 2-3 недели, пока у меня не было достаточно времени для изучения это.

Из предыдущего видео я знаю, что я не единственный, и многие из вас просто доплачивали за уже прошитое на eBay. Я подумал, что пролью немного больше света на этот метод, так как он заслуживает того, чтобы его можно было использовать!

Руководство:

Требования:

Raspberry Pi (любой)

Паяльник (и твердые руки, так как отладочные штифты маленькие, я использую этот, но такой за 5 долларов вполне подойдет)

Вам даже не нужен отладочный кабель CC!


При заказе CC2531 на aliexpress закажите полную USB-версию CCdebugger и кабель CCDebugger для подключения к CC2531. Я думаю, что это было около 4 долларов США для программиста и около 4,50 долларов США для 2531. Работало изначально с приложением для прошивки и занимало все 3 секунды.

Честно говоря, я не вижу смысла заказывать кабель, который я буду использовать в лучшем случае дважды. Это отлично подходит для людей, которые боятся пайки, но я хардкорщик :) Плюс, честно говоря, я лучше куплю портативный USB-железо за 5 долларов, от которого я получу больше пробега, чем от кабеля, который вряд ли я буду использовать снова :)

Но то, что людям кажется легким, — лучший образ действий

Он указан как последний вариант, потому что любой вариант, требующий пайки, должен быть последним вариантом или не вариантом.

Ха-ха? Действительно? Версия Arduino говорит, что прошивка занимает 2-3 часа. И технически, если у вас есть перемычка меньшего размера, вам даже не понадобится пайка.

Если вы отдаленно заинтересованы в автоматизации DIY и не хотите соединять 2 провода с помощью пайки. Ты далеко не уедешь, друг мой, и всегда будешь ограничиваться вещами потребительского класса.

Попробуйте. Это весело и не так сложно, как кажется. С паяльниками (с питанием от USB), которые стоят 5 долларов, нет причин не быть смелыми и авантюрными. Если вы идете по пути «сделай сам», это потому, что вы хотите, чтобы все делалось по-своему, а не по корпоративному принципу 🤭

zzh PCBA

зиг-а-зиг-а! (zzh, для краткости) — это крошечная плата для разработки с форм-фактором «USB-накопитель» для многопротокольной работы с радиочастотами.

  • Многопротокольный беспроводной микроконтроллер TI CC2652R 2,4 ГГц, ориентированный на Thread, Zigbee, Bluetooth 5 с низким энергопотреблением, IEEE 802.15.4g, интеллектуальные объекты с поддержкой IPv6 (6LoWPAN) и проприетарные системы
  • Обмен данными с хост-компьютером через общий мост CH340 USB-UART, в большинстве случаев не требуется ручная установка драйвера (Windows, Linux, FreeBSD, OpenBSD и macOS), драйверы для illumos не поддерживаются.
  • Самопрограммирование через серийный загрузчик TI CC. Пока это явно не отключено в коде, внешний программатор не нужен! Кнопка на контакте по умолчанию, чтобы активировать этот режим.
  • Заголовок отладки cJTAG на случай, если вы случайно отключите BSL или вам нужен правильный интерфейс отладки
  • Антенный порт SMA для внешней антенны по вашему выбору
  • Индикатор общего назначения

Он предназначен для размещения в крошечном Gōng mó "USB Shell" и выглядит примерно так в паре с вашим любимым SBC:

zzh подключен к Raspberry Pi

Думайте об этом как об обновлении вездесущих USB-накопителей CC2531, которые обычно используются для настройки Zigbee. CC2652 имеет гораздо более мощный процессор, больше памяти и разумный бесплатный компилятор, который должен упростить разработку по сравнению со старыми устройствами CC2530/1 на базе 8051.

Купить

Версии zzh в сборе доступны в магазине Electrolama Tindie Store. Заказы доставляются из Лондона, Великобритания.

Каждый заказ zzh содержит полностью собранную и протестированную печатную плату вместе с пластиковым корпусом и небольшой антенной:

корпус и антенна zzh

Также можно приобрести дополнительный комплект деталей отладочного адаптера (требуется сборка):

комплект отладочного адаптера zzh

Часть от каждой продажи будет пожертвована @Koenkk для поддержки его работы над Zigbee2mqtt и общедоступными образами прошивки, используемыми zzh и многими другими проектами.

Важное примечание

Пожалуйста, имейте в виду, что zzh — это плата для разработки общего назначения. Он поставляется с простой тестовой программой, которая просто включает и выключает светодиод (без функции радио), чтобы убедиться, что MCU работает. Вам нужно будет запрограммировать его, прежде чем он сделает что-то значимое. Учитывая то, что эта плата зависит от приложения, для покупок Tindie может быть предоставлена ​​ограниченная послепродажная поддержка (например, мы можем помочь вам запрограммировать эту плату, но не можем устранить проблемы с диапазоном сети Zigbee или предложить поддержку определенного программного обеспечения).

Руководство пользователя

ℹ️ Документация перемещена! Пожалуйста, перейдите к краткому руководству и следуйте инструкциям.

Ссылки ниже сохранены в архивных целях.

Драйверы для CH340

Прошивка с использованием BSL

Прошивка с использованием внешнего отладчика

Zigbee2mqtt

Интеграция Zigbee Home Automation (ZHA) в Home Assistant

Кроме того: номера деталей TI

Загрузки

Журнал изменений

Лицензия

зиг-а-зиг-а! разработан Electrolama / Omer Kilic и распространяется под лицензией Solderpad Hardware License 2.0.

Регулятивное уведомление

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

    и @matthewvenn за обзор дизайна и комментарии во время раннего прототипирования за его опыт в предметной области, обзор дизайна и (очень ценно!) помощь в работе с радиочастотами за его работу над великолепным проектом Zigbee2mqtt и за тестирование прототипов за тестирование прототипов, улучшение документации и за то, что он был крутым чуваком во всех отношениях.
  • Все участники репозитория документации!

Имя принадлежит @9600, у него было очень скучное имя до того, как он предложил зиг-а-зиг-а!

Контакт

По общим вопросам, предложениям и обнаруженным ошибкам: напишите нам по адресу [email protected] . Вклад сообщества в эти страницы очень приветствуется, поэтому вы также можете отправлять запросы на внесение изменений в репозиторий документации (источник этих страниц) с вашими предлагаемыми изменениями.

Для поддержки в отношении покупок Tindie: [email protected] . Обратите внимание, что мы не отслеживаем проблемы Github или сторонние форумы для поддержки клиентов.

Создано с помощью MkDocs с использованием темы, предоставленной Read the Docs. Все названия продуктов и компаний являются товарными знаками или зарегистрированными товарными знаками соответствующих владельцев. Их использование не подразумевает какой-либо принадлежности к ним или их одобрения.

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