No description
Find a file
2024-02-21 03:17:09 +03:00
bin ver 1.3 2024-02-20 07:20:01 +03:00
bthome_phy6222 ver 1.3 2024-02-20 07:20:01 +03:00
LICENSE reconfig src, new ver. rdwr_phy62x2.py, update LICENSE 2024-01-09 15:21:13 +03:00
rdwr_phy62x2.py update utils, README.md 2024-01-25 15:56:40 +03:00
README.md Update README.md 2024-02-21 03:17:09 +03:00
wr_bth01.cmd update html, cmd 2024-02-13 04:12:44 +03:00
wr_th05.cmd update html, cmd 2024-02-13 04:12:44 +03:00
wr_thb1.cmd alfa-beta v1.3 2024-02-15 22:34:39 +03:00
wr_thb2.cmd update html, cmd 2024-02-13 04:12:44 +03:00

BTHome THB1, THB2, BTH01, TH05(HW: v1.3..1.6)

Custom firmware for Tuya devices on the PHY622x2 chipset

THB1 THB2 BTH01 TH05_V1.3 TH05_V1.4
THB1 THB2 BTH01 TH05V1.3 TH05V1.4

Прошивки Boot-OTA:

  • Прошивки Boot-OTA имеет минимум функций. Boot-OTA используются только для выполнения OTA - для загрузки полнофункциональной версии APP (Application - файлы *.bin).

THB2 - файл bin\BOOT_THB2_v13.hex

BTH01 - файл bin\BOOT_BTH01_v13.hex

TH05 - файл bin\BOOT_TH05_v13.hex для версий указанных на печатной плате: TH05_V1.4, TH05_V1.5, TH05_V1.6 с чипом BL55028

TH05V13 - файл bin\BOOT_TH05V13_v13.hex для TH05_V1.3 с чипом BL55072

THB1 - файл bin\BOOT_BTH1_v13.hex

Основные характеристики:

! При настройках по умолчанию !

  • Интервал BLE рекламы в формате BTHome v2 равен 5 секундам.
  • Опрос датчика влажности и температуры производится каждый второй интервал BLE рекламы - период 10 секунд.
  • Измерение напряжения батареи происходит каждую минуту.
  • Кнопка используется для быстрого подключения к старым BT-адаптерам. Нажатие кнопки переключает интервал BLE рекламы на более короткий период (1562.5 мс). Действие продолжится 60 секунд, затем интервал восстановится на установленный в настройках.
  • Измеренное среднее потребление от источника в 3.3В при сканировании термометров THB2 и BTH01 в пассивном режиме составляет до 8 мкА. Для TH05_V1.4 среднее потребление около 23 мкА - таков ток установленных компонентов.
  • Запись итории каждые 30 минут
  • Интервал соединения с учетом Connect Latency - 900 мс
  • Поддерживаемые сенсоры температуры и влажности: AHT30, CHT8305, CHT8215, CHT8310
  • Обработка входного контакта со счетчиком для передаваемых событий Open/Close
  • Обработка выходного контакта переключаемого по устанавливаемой температуре и/или влажности с гистерезисом

История версий:

N Описание
1.0 Первая релизная версия
1.1 Добавлен триггер - вывод TX2 срабатывающий по установленным значениям температуры и/или влажности с гистерезисами. Передача состояния вывода RX2 при connect. Для термометров с экраном добавлен показ смайлика с "комфортом". Дополнены: изменение имени и MAC устройства.
1.2 Обработка и передача событий open/close со счетчиком с вывода маркированного "RX2" (для THB2 - "RX1").
1.3 Добавлен THB1 и TH05V1.3. Следующий этап уменьшения потребления для версий с LCD дисплеем и опция отключения дисплея.

Прошивка:

Прошить устройство програмой Boot-OTA возможно через USB-COM адаптер с выходами на 3.3В:

  1. Соединить GND, TX, RX, RTSRESET, VCC (+3.3B).
Адаптер Устройство
GND -Vbat
+3.3В +Vbat
TX RX1
RX TX1
RTS RESET

Название контактов на устройстве смотреть в описании по ссылкам: THB1, THB2, BTH01, TH05_V1.3, TH05_V1.4

  1. Запустить:
python3 rdwr_phy62x2.py -p COM11 -e -r wh BOOT_xxx_vxx.hex
  1. Прошивка Boot-OTA завершена. Устройство работает.
  2. Далее загружаем полную версию по OTA в PHY62x2BTHome.html.

Дополнительно:

  • Для предварительного стирания всей Flash используйте опцию -a.

  • Для предварительного стирания рабочей области Flash используйте опцию -e.

Сохранение оригинальной прошивки.

  1. Соединить GND, TX, RX, RTSRESET, VCC (+3.3B).
  2. Запустить:
python3 rdwr_phy62x2.py -p COM11 -r rc 0x11000000 0x80000 ff_thb2.bin
  1. Полученный файл ff_thb2.bin сохранить.

Восстановление оригинальной прошивки.

  1. Взять сохраненный файл ff_thb2.bin оригинальной прошивки.
  2. Соединить GND, TX, RX, RTSRESET, VCC (+3.3B).
  3. Запустить:
python3 rdwr_phy62x2.py -p COM11 -b 1000000 -r we 0 ff_thb2.bin

Не все адаптеры USB-COM поддерживают 1Mbit. Тогда удалите опцию -b 1000000 или выберите другой Baud rate.

  1. Прошивка зашита. Устройство работает.

Распределение Flash 512 килобайт

Адрес Описание Размер
0x00000 Используется ROM 8 килобайт
0x02000 Boot Info для ROM 4 килобайта
0x03000 FW Boot с функцией OTA 52 килобайта
0x10000 FW APP 128 килобайт
0x30000 Запись истории 304 килобайт
0x7C000 Сохранение настроек (EEP) 16 килобайт

FW Boot и OTA

  • FW Boot имеет функцию OTA, но не имеет функции записи истории и прочих дополнений. Служит для обработки OTA при любых неудачных или неправильных обновлениях.

  • FW APP не имеет функции OTA, для OTA перезагружается в FW Boot. Имеет дополнительные функции и расширения.

Поддерживаемые функции и сервисы описываются включенными битами в 32-х битном поле dev_id.services.

FW Boot запускается по старту, и если не нажата кнопка, проверяет есть или нет запись FW APP. Если есть запускает FW APP. Если кнопка при старте нажата - запускается FW Boot.

При соединении указывается:

Software: Vx.x - значит работает FW APP Software: Bx.x - значит работает FW Boot

На термометрах с экраном, если не включено отображение времени, при первом старте показывает:

  • "Bot 12" - работает Boot версия 1.2
  • "APP 12" - работает APP версия 1.2

Принудительно перезагрузиться в FW Boot из FW APP возможно двумя способами:

  1. Отключить питание и удерживая кнопку включить питание.
  2. Подать команду 7233 в меню Service программы PHY62x2BTHome.html и отключить соединение.

Полная перезагрузка - Подать команду 7201 в меню Service программы PHY62x2BTHome.html и отключить соединение.

Через USB-UART адаптер App можно записать сразу после boot. Пример:

python3 rdwr_phy62x2.py -p COM11 -e wh ./bin/BOOT_TH05V13_v13.hex
python3 rdwr_phy62x2.py -p COM11 -r we 0x10000 ./bin/TH05V13_v13.bin

Событие Open/Close и счет импульсов

С версии 1.2 поддерживается опрос вывода подключенного к геркону или контакту, замыкающемуся на GND. Максимальная частота переключения - 100 раз в секунду. Если контакт имеет дребезг, тогда желательно зашунтировать контакт конденсатором. При замыкании или размыкании передается блок из 5 BLE реклам следующих друг за другом через период в 50 мс. При каждом событии "Open" прибавляется счетчик. Значение счетчика передается совместно с каждым событием "Open/Close".

Входной контакт на плате термометра:

  • На THB1 - маркирован как RX
  • На THB2 - маркирован как RX
  • На BTH01 - маркирован как RX2
  • На TH05_V1.3 - маркирован как RX0
  • На TH05_V1.4 - маркирован как RX2

image

Вывод управления внешним устройством по температуре и/или влажности

Контакт на печатной плате с маркировкой "TX" или "TX2" управляется с помощью уставок с гистерезисами по температуре и влажности. Имеется возможность переключения на инверсное управление выводом.

Настройка производится в PHY62x2BTHome.html.

Работа выхода назначается с помощью установки значения гистерезиса:

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

Сборка прошивки.

Для сборки прошивки используется GNU Arm Embedded Toolchain.

Для работы в Eclipce используете импорт проекта и установите toolchain.path.

Дополнительная информация по чипам PHY62xx.