• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Tuya Zigbee Roгter и DIY Smart Switch за 70 руб.

pvvx

Активный участник сообщества
Tuya Zigbee Roгter и DIY Smart Switch за 70 руб.

Возможные модули: PB-02, PB-03F, PB-03M.

Цена модуля PB-03M в Чип-Дип от 30 шт. — 173 руб.

На aliexpress возможно найти варианты по 70 руб (и ниже).
1748052881694.png

Перед прошивкой необходимо проверить, что Flash в данном модуле 512КБ*:
Код:
>python rdwr_phy62x2.py -pCOM6 i

=========================================================
PHY62x2/ST17H66B/TG7100B Utility version 01.03.25
---------------------------------------------------------
Connecting...
PHY62x2/TG7100B: Release RST_N if RTS is not connected...
PHY6252/ST17H66B: Turn on the power...
Chip Reset Ok. Response: b'cmd>>:'
Revision: b'00136085 6222M005'
FlashID: 136085, size: 512 kbytes
PHY6222 - connected Ok
Flash Status: 0x0000
Flash Serial Number: 4250305539373611
Flash OTP: ffffffffffffffffff...
Flash 0x11002000: 06000000ffffffff3818ff1fffffffff
Flash 0x11002100: 00000111d80c000000000111ffffffff
eFuse Lock Status: 0x0000000f
eFuse 0: 0000000000000000
eFuse 1: 0000000000000000
eFuse 2: 0000000000000000
eFuse 3: 42270421a06d0980
Security Boot: 0
* PB-03M-Kit чаше всего содержат чипы с 256КБ Flash.

Далее зашиваем в модуль файл TS0001_TZ3000_fdxihpp7.bin.
python rdwr_phy62x2.py -pCOM6 -a we 0 TS0001_TZ3000_fdxihpp7.bin
  • Если необходимо сменить MAC/IEEE, тогда правим 8 байт по адресу 0x4000.
  • 1748053076419.png
Используемые контакты:

P02 - Светодиод через резистор на gnd
P03 - S2 внешний выключатель (на gnd)
P15 - Выход на управление реле через транзистор (“1” – вкл, “0” выключено)
P14 - Кнопка On/Off и сброса привязок (на gnd)

P9 - TX – лог работы и программирование
P10 - RX - программирование

Прошивка взята от модуля 6222B2S-V2.0 устанавливаемого в Tuya ”Mini Smart Switch” ( путем чтения FullFlash: python rdwr_phy62x2.py -pCOM6 rf fullfalsh.bin).
1748053164180.png
 

Вложения

pvvx

Активный участник сообщества
Для справки: Оригинальный модуль LC-P622ZB2S-P.

Потребление работающего модуля PB-03M с данной прошивкой составляет 15..16 мА от источника 3.3В.
 

abf

New member
блин, сейчас все модули с али приходят с 256КБ. при этом в прошивке идут массивы "FF" и "00" . Как нибудь можно это сжать чтобы в 256 уложилась? модули брал именно у продавца из шапки.
 

pvvx

Активный участник сообщества
В доках на модуль PB-03M у AI-Thinker - 64 KB SRAM 256KB flash, 96 KB ROM, 256bit efuse.
Но ранее приходили с 512к:
Код:
Revision: b'00136085 6222M005'
FlashID: 136085, size: 512 kbytes
Flash Serial Number: 4250305539373611
А теперь:
Код:
Revision: b'0012600b 6222M005'
FlashID: 12600b, size: 256 kbytes
Flash Serial Number: 007f002082a8978a
У PB-03F тоже в доках: 64 KB SRAM,256KB flash,96 KB ROM,256bit efuse .
 

pvvx

Активный участник сообщества
В альтернативе переход на TB-0x. Но надо собрать прошивку Zigbee роутера из примера SDK от Telink с нужными фичами...
@Slacky что-то уже собирает подобное, но почему-то желает использовать только чипы с 1Мб Flash.
Надо в проекте изменить опции и удалить boot-loader...
 

abf

New member
а в PB-03M /PB-02/ PB-03F залить функционал TLB2Z можно? По объему пройдет.
 

pvvx

Активный участник сообщества
> а в PB-03M /PB-02/ PB-03F залить функционал TLB2Z можно? По объему пройдет.

Кто такой "TLB2Z" ?
 

Slacky

Member
В альтернативе переход на TB-0x. Но надо собрать прошивку Zigbee роутера из примера SDK от Telink с нужными фичами...
@Slacky что-то уже собирает подобное, но почему-то желает использовать только чипы с 1Мб Flash.
Надо в проекте изменить опции и удалить boot-loader...
Тогда нельзя обновиться через ОТА ...
 

pvvx

Активный участник сообщества
Тогда нельзя обновиться через ОТА ...
Все прошивки Zigbee и сохранения запроcто влезают в половину Flash на 512 килобайт и ZigbeeOTA доступна.
Мне не удалось собрать прошивку большего размера ни в случае коечного устройства или роутера, ни в случае координатора даже при добавлении в них BLE.
 

pvvx

Активный участник сообщества
@Slacky - К примеру, Zigbee координатор у Telink, подразумевает загрузку OTA файла для передачи другому устройству в свою Flash.
Т.е. у него есть место в 512к Flash для загрузки полного файла OTA для последующей быстрой передачи.
Быстрой – это не как в Z2M/ZHA, т.к. передача OTA происходит практически непрерывно с большей скоростью :cool:

И в данный вариант я еще добавил BLE, типа вместо USB интерфейса для работы с этим координатором. И это вышел самый большой из бинарников – 212212 байт.

А типовые роутеры или конечные устройства Zigbee совместно с BLE – это бинарник OTA до 160 килобайт.

В итоге всегда остается около 192 килобайт для сохранений всяких конфигов Zigbee и т.д. Это больше, чем сама прошивка :p
 

pvvx

Активный участник сообщества
@Slacky - Для 512K Flash имеем ограничение в NV_MODULE_ZB_INFO c 0x34000.
В итоге бинарник OTA должен быть до 212992 байт.

Ваша только что собранная мной прошивка tuya_mini_relay_zrd_V1.0.03.bin (без printf(), но для 512K Flash) имеет бинарник OTA в 204196 байт.
Так же в опциях стека Zigbee включено всё что попало, но никогда не используется. Если это убрать – итоговый бинарник выйдет значительно меньше.
Но я не стал оптимизировать или убирать лишнее, т.к. пусть будет для будущего увеличения объема по мере развития прошивки...

Всё это успешно лезет с ZigbeeOTA в 512K Flash и ещё остаются неиспользованные сектора Flash...
 

pvvx

Активный участник сообщества
1761439305037.png
И не ясно зачем energy_save() использует какую-то свою систему сохранения (USER_DATA), вместо готовой и практически пустующей NV_MODULE_APP, изначально предназначенной для сохранений пользовательской части программы...
Но если очень хочется свою - то в 512K Flash есть место для USER_DATA (показано на рисунке).
 

Slacky

Member
Все прошивки Zigbee и сохранения запроcто влезают в половину Flash на 512 килобайт и ZigbeeOTA доступна.
Мне не удалось собрать прошивку большего размера ни в случае коечного устройства или роутера, ни в случае координатора даже при добавлении в них BLE.
Я не это имел в виду. Мы берем устройство Туя. И просто его обновляем через ОТА на кастомную. В данном реле используется модуль ZTU. В нем 1 м флеш.

Или Вы знаете способ залить свою прошивку в такое реле без проводов?
 

Slacky

Member
И не ясно зачем energy_save() использует какую-то свою систему сохранения (USER_DATA), вместо готовой и практически пустующей NV_MODULE_APP, изначально предназначенной для сохранений пользовательской части программы...
Затем, чтобы не сохранять накопленную энергию в одно место на флеш.
 

pvvx

Активный участник сообщества
Я не это имел в виду. Мы берем устройство Туя. И просто его обновляем через ОТА на кастомную. В данном реле используется модуль ZTU. В нем 1 м флеш.

Или Вы знаете способ залить свою прошивку в такое реле без проводов?
Все термометры Tuya заливаются альтернативной прошивкой ZigbeeTLc по ZigbeeOTA. А ZigbeeTLc безразлично, какой там размер Flash, и есть или нет там boot_loader.
Аналогично с ZigbeeOTA в Tuya Zigbee для перехода в BLE. У BLE совсем другая разметка Flash.
А чипы у Tuya устройств бывают разные - то там стоит 1М, то 512К - это как повезет и не зависит от типа модели.
Затем, чтобы не сохранять накопленную энергию в одно место на флеш.
Для этого в Zigbee SDK Telink сделал nv_drv с разными разделами.
 

pvvx

Активный участник сообщества
Причины, почему может возникнуть нужда в 512K Flash:

За годы у меня и многих скопились всякие “Умные розетки” и подобные с модулем WiFi.

Купили давно, не подумавши, что они работают только при наличии доступа к Tuya Cloud.

А ныне инет отключают... Естественно и отключаются эти “розетки”.

Но главная беда у этих WiFi (у меня) – они работают 2..3 года и далее в них дохнет кондер в питании.

Т.е. за более 4 года как используется “Умный дом” все имеющиеся у меня WiFi “Умные розетки” вышли из строя. Но все имеющиеся Zigbee “Умные розетки” пока работают исправно. Причина там банальна – ток на питание у WiFi чипа в несколько десятков раз больше, а DC-DC и прочая схема аналогичны по любому номиналу. И у WiFi в корпусе температура больше, и ток на этот кондер в питании… Разные только RF модули.

Их можно починить – заменить кондер и модуль на TB-0x с TLSR825x. Но у него Flash всего 512K.
 

Slacky

Member
Все термометры Tuya заливаются альтернативной прошивкой ZigbeeTLc по ZigbeeOTA
А вот тут можете пояснить. Если я скомпилю прошивку без бутлоадера, сделаю образ зигбии. И ОТА сработает на устростве, где изначально оргинизована загрузка прошивки с бутлоадером и грузиться ОТА-образ будет по 0x70000 (для Туи) и бутлоаадер потом перепишет не по 0x8000, а прям с 0x0000? Я почему-то считал, что так это не сработает.
 

pvvx

Активный участник сообщества
А вот тут можете пояснить. Если я скомпилю прошивку без бутлоадера, сделаю образ зигбии. И ОТА сработает на устростве, где изначально оргинизована загрузка прошивки с бутлоадером и грузиться ОТА-образ будет по 0x70000 (для Туи) и бутлоаадер потом перепишет не по 0x8000, а прям с 0x0000? Я почему-то считал, что так это не сработает.
Мои прошивки при старте проверяют адрес запуска, и если они не там, то перемещаются куда надо, и делают требуемые очистки Flash и т.д.
Типовых запусков OTA только у Telink много. 0x0, 0x8000, 0x20000, 0x40000. Далее идут ещё варианты у Tuya....
Тут без авто-определения запуска не обойтись...
 
Сверху Снизу