Zigbee2mqtt. Прошивка CC2531 через Raspberry Pi

Простой способ прошивки стика CC2531 если нет дебаггера, но есть raspberry.


CC2531 можно купить тут: https://ru.aliexpress.com/item/32954698530.html


Все делал по инструкции, в разделе о малине.

Должна стоять wiringPi, затем качаем flash_cc2531 командой:

git clone https://github.com/jmichault/flash_cc2531.git

Подключаем CC2531 через дебаг кабель к Raspberry по следующей схеме:

  • pin 1 (GND) –> pin 39 (GND)
  • pin 7 (reset) –> pin 35 (GPIO24, BCM19)
  • pin 3 (DC) –> pin 36 (GPIO27, BCM16)
  • pin 4 (DD) –> pin 38 (GPIO28, BCM20)

 


Если дебаг кабеля нет, можно аккуратно припаять провода к колодке на самом сс2531, распиновка аналогичная:


 

Вставляем стик в raspberry и тестируем:

cd flash_cc2531
./cc_chipid

В ответ должны получить:

ID = b524.

Скачиваем последнюю прошивку вот отсюда: https://github.com/Koenkk/Z-Stack-firmware/tree/master/coordinator/Z-Stack_Home_1.2/bin

wget https://github.com/Koenkk/Z-Stack-firmware/raw/master/coordinator/Z-Stack_Home_1.2/bin/default/CC2531_DEFAULT_20190608.zip

На момент написания это CC2531_DEFAULT_20190608.zip

Распаковываем CC2531ZNP-Prod.hex в каталог прошивальщика flash_cc2531

unzip CC2531_DEFAULT_20190608.zip

и прошиваем, предварительно выполнив очистку:

./cc_erase
./cc_write CC2531ZNP-Prod.hex

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

Прошивка CC2530 через Raspberry Pi описана тут:

Прошивка CC2530 через Raspberry Pi

P.S

С некоторыми cc2531 бывают проблемы распознавания утилитой flash_cc2531. Вместо ID = b524 ответ 0088, 0000 или ffff. В комментариях отписались о решении проблемы, решение тут: https://github.com/jmichault/flash_cc2531/issues/9#issuecomment-557893592

 

Поделитесь с друзьями

комментария 53

  1. Не совсем догоняю, так надо приобрести шлейф-кабель или достаточно просто вставить стик в USB малины?

          • Распиновка аналогичная, добавил схему в статью

          • Спасибо. Но ведь можно тогда не паять, а соединить с помощью Dupont мама-мама? Для чего тогда вообще нужна эта дебаг плата с проводами?

          • Шаг контактов и сами контакты очень маленькие на cc2531. Дебаг плата как раз для этого и нужна, она является переходником на контакты нормального размера

  2. Добрый вечер, уважаемый kvv.
    Прошил координатор на базе СС2531. Все работает. Я использую Hass.io c add-on ZigBee2Mqtt

    Решил добавить еще роутер СС2531. Прошивка router-cc2531-diag.hex от 04/02/2019 установилась нормально и прошла верификация. Однако спаривание координатора с маршрутизатором не происходит. Короткие быстрые мигания (один раз в секунду) горит красный светодиод, что означает что всетаки маршрутизатор пытается подключается к сети. Подскажите пожалуйста в чем может быть причина?

    А пока буду пытаться ставить другую прошивку router-cc2531-diag-usb.hex и смотреть что же он шлет.

    • Здравствуйте, роутер прошивать не пробовал, поэтому по процедуре спаривания с координатором подсказать не могу. Откройте «проблему» в гитхабе zigbee2mqtt, там подскажут. Было бы интересно узнать, в чем была проблема. Если найдёте причину и будет минутка — напишите тут. Спасибо

          • Прошил через Arduino nano, выше инструкция не работает(проблемы с wiringPi)

          • Что за проблема была? Можно подробнее?

          • При сопряжении устройства стик и малина, соответственно при отсутствие питания «000» а при включение «fff» пробовали и отделено 3.3v подавать, и на прямую с усб входа. Проверял таблицы соответствия, все совпадает как в инструкциях. Пробовал ставить разные версии wiringPi так так программа больше не поддерживается. Ешо пробовали подключать по плану «б» (где то в инструкциях есть описание), такой-же результат. Грешил на малинку, поменяли малину, такая-же проблемам.

          • After cloning the repo, edit CCDebugger.c, modify the line 177

            А как её редактировать?

          • а как найти этот CCDebugger.c и как редачить? хелп новичку

  3. Пробую прошить по вашей методике. Прошивку сначала пробовал из вашей ссылки. Вариант 1 — на стике загорается светодиод (в произвольной время в процессе уже прошивки), прошивка просто останавливается. Вариант 2 — прошивка проходит, во время верификации показывает кучу ошибок. При попытке прошить https://github.com/kirovilya/ioBroker.zigbee получаем:
    root@raspberrypi:~/flash_cc2531# ./cc_write CC2531ZNP-Pro-Secure_LinkKeyJoin_mod.hex
    ID = b524.
    incorrect hex file ( : missing)
    Подскажете — в каком направлении двигаться?

    • Первое, на что я бы подумал это неправильно скачался файл прошивки (из инета) или же бракованная память самого сс2531. На другой малине пробовали? Или хотя бы на этой же, но с другой флешкой… Если что пишите, интересно в чем причина

      • А что скажете про прошивку iobrokrer.zigbee? Там есть «обычная» (для прошивки через Дебаггер) и мод для прошивки через Ардуино, я пробовал обе, результат одинаковый, как у меня в посте… получаем: и т.д. Действительно надо какую-то модифицированную прошивку для Малины?

        • Прошивки по ссылке в статье прошиваются любыми способами, сама прошивка одна. С iobroker не знаком, может у них по другому. Если у вас не проходит верификацию, то либо файл косячный (попробовать перекачать заново или флешка на малине с ошибками, попробовать поменять флешку) либо у вас сс2531 бракованный. У меня из двух сс2531 один работает стабильно, другой может периодически отваливаться и ha его не видит. Они дешёвые, второй взять для тестов не так затратно.

  4. Застрял на распаковке, не хочет распаковывать.

    Файл скачен, sudo пробовал, аппарат Pi 3B+.
    Распаковал и залил на гитхаб .bin и .hex файл, скачал на малину по отдельности те 2 файла, пробую прошиться и опять мимо.

    pi@raspberrypi:~/flash_cc2531 $ dir
    CC2531_DEFAULT_20190608.zip CCDebugger.c cc_erase.c cc_write Makefile
    cc_chipid CCDebugger.h cc_read cc_write.c README.md
    cc_chipid.c cc_erase cc_read.c LICENSE
    pi@raspberrypi:~/flash_cc2531 $ unzip CC2531_DEFAULT_20190608.zip
    Archive: CC2531_DEFAULT_20190608.zip
    End-of-central-directory signature not found. Either this file is not
    a zipfile, or it constitutes one disk of a multi-part archive. In the
    latter case the central directory and zipfile comment will be found on
    the last disk(s) of this archive.
    unzip: cannot find zipfile directory in one of CC2531_DEFAULT_20190608.zip or
    CC2531_DEFAULT_20190608.zip.zip, and cannot find CC2531_DEFAULT_20190608.zip.ZIP, period.

    pi@raspberrypi:~/flash_cc2531 $ ./cc_write CC2531ZNP-Prod.hex
    ID = b524.
    incorrect hex file ( : missing)

  5. При вводе команды :
    ./cc_chipid
    у меня выдаёт
    ./cc_chipid: error while loading shared libraries: libwiringPi.so: cannot open shared object file: No such file or directory
    хотя
    git clone https://github.com/jmichault/flash_cc2531.git
    устоновлено и переход делаю
    cd flash_cc2531
    Может кто помочь ?

      • выше написал, что wiringPI встал, команда gpio -v работает, посоветуйте куда смотреть чтоб заработало, спасибо!

    • Здравствуйте! та же самая проблема, wiringPI встал, команда gpio -v работает, как Вы в итоге решили проблему?

  6. Друзья! Кто будет шиться через raspberry pi 4b, после установки wiringPi обновите до версии 2.52 через команду
    cd /tmp
    wget https://project-downloads.drogon.net/wiringpi-latest.deb
    sudo dpkg -i wiringpi-latest.deb

    Иначе при проверке cd flash_cc2531 будет всегда писать id=0000

    Из за этого перепаивал 3 раза, думал провода плохие достались и раз 10 перепроверял подключение по схеме.

    • Я не знаю как там с gpio, у меня такой нет. А в плане софта, не думаю что будут проблемы

      • для raspberry pi1b распиновка на картинке, но понять как ее использовать опыта не хватает ((

        • Согласно сайту https://github.com/jmichault/flash_cc2531 можно переопределить используемые пины с помощью параметров при запуске. Надо помнить, что у wPI своя нумерация которую можно посмотреть командой «gpio readall» или на сайте https://pinout.xyz/ (по наведению мыши на пин).

          Итого, чтобы использовать пины 3, 11, 13 и 14 получаем.

          1. pin 1 (GND) —> pin 14 (GND)
          2. pin 7 (reset) —> pin 3 (wPi 8, BCM2)
          3. pin 3 (DC) —> pin 11 (wPi 0, BCM17)
          4. pin 4 (DD) —> pin 13 (wPi 2, BCM27)
          ./cc_chipid -r 8 -c 0 -d 2
          ./cc_read -r 8 -c 0 -d 2 save.hex
          ./cc_erase -r 8 -c 0 -d 2
          ./cc_write -r 8 -c 0 -d 2 CC2531ZNP-Prod.hex
          

          Это всё описано по первой ссылке.

          Сам еще не попробовал. Жду оборудования. Попробую — напишу.

  7. Здраствуйте
    Raspberry pi 4b. cc2531 стик
    При подключении GND (1пин стика — 39 пин малины) вырубает малину. Если подключать к другим пинам на малине с GND — id = 0000
    Не подскажете в чем проблема?

    • отличный простой бюджетный способ! А я для прошивки заказывал RPiZeroW (ccдебагер рука не поднялась заказать ради одной двух прошивок), тоже не жалею, сейчас на малине в старые консольные игры играем всей семьей, надоест — еще куча разных проектов для нее.

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *

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

Exit mobile version