Кастомная прошивка для устройств Tuya на базе чипсета PHY622x2.
1 бат | 2 бата | 3 бата | БТХ01 | TH05_V1.3 | TH05_V1.4 | TH05F |
---|---|---|---|---|---|---|
Эта прошивка работает с Home Assistant и другим программным обеспечением, работающим в формате BTHome.
Все прошивки поддерживают любой из этих датчиков: CHT8215 (CHT8310), CHT8305, AHT20..30.
Программное обеспечение для настройки и изготовления BLE OTA: PHY62x2BTHome.html.
Загрузка файлов OTA в PHY62x2BTHome.html происходит автоматически. Для ОТА скачивать файлы из этого репозитория не нужно.
Чтобы запустить PHY62x2BTHome.html в автономном режиме, просто скопируйте html-файл в локальную папку.
Для работы с устройством необходимо записать прошивку FW Boot
на устройство через переходник USB-COM. Загрузочная прошивка — это программа с ограниченной функциональностью, обеспечивающая безопасные обновления OTA.
Далее с помощью BLE-соединения в PHY62x2BTHome.html через вкладку OTA записывается основная рабочая программа FW APP
.
FW APP
также можно записать с помощью адаптера USB-COM. Бут прошивка имеет минимум функций. FW Boot
используется только для загрузки через OTA полнофункциональной версии FW APP
(файлы .bin
).
Устройство | Загрузочный файл | ОТА-файл | Маркировка печатной платы |
---|---|---|---|
1 бат | BOOT_THB1_v19.hex | THB1_v19.bin | нет |
2 бата | BOOT_THB2_v19.hex | THB2_v19.bin | нет |
3 бата | BOOT_THB2_v19.hex | THB2_v19.bin | нет |
БТХ01 | BOOT_BTH01_v19.hex | BTH01_v19.bin | нет |
TH05_V1.4 | BOOT_TH05_v19.hex | TH05_v19.bin | TH05_V1.4, TH05_V1.5, TH05_V1.6 (чип: BL55028) |
TH05_V1.3 | BOOT_TH05D_v19.hex | TH05D_v19.bin | RSH-TH05-V1.3 (чип: BL55072) |
TH05F | BOOT_TH05F_v19.hex | TH05F_v19.bin | TH05Y_V1.1, TH05Y_V1.2 (чип: QD01 2332 NT) |
Основные файлы прошивки BOOT_XXX_vXX.hex (для программирования через USB-COM адаптер) и XXX_vXX.bin (для OTA) расположены в директории bin.
Файлы для обновления загрузки через ОТА находятся в каталоге update_boot. **
Текущая версия прошивки — v1.9 для всех устройств (ошибки исправлены).
Прошивка | Датчик SDA/SCL/Power | ЖК-дисплей SDA/SCL/питание | Ключ | ВЕЛ | TRG(Техас) | ВХОД (Прием) |
---|---|---|---|---|---|---|
1 бат | P18/P20/- | P34/P33/- | P01 | - | P09 | Р10 |
2 бата | P18/P20/- | - | P07 | P26 | P20 | Р18 |
3 бата | P18/P20/- | P34/P33/- | P01 | - | P09 | Р10 |
БТХ01 | П33/П34/П00 | - | Р14 | P15 | P20 | Р18 |
ТХ05 | П33/П34/П00 | P33/P34/P02 | Р14 | - | P20 | Р18 |
TH05D | P31/P32/- | P11/P14/- | P02 | - | P09 | Р10 |
TH05F | П33/П34/П00 | P26/P31/P02 | Р14 | - | P20 | Р18 |
С настройками по умолчанию :
Версия | Описание |
---|---|
1.0 |
|
1.1 |
|
1.2 |
|
1.3 |
|
1,4 |
|
1,5 |
|
1,6 |
|
1,7 |
|
1,8 |
|
1,9 |
|
Возможна прошивка устройства программой Boot через переходник USB-COM с выходами 3,3В.
Адаптер | Устройство |
---|---|
Земля | -Вбат |
+3,3 В | +Вбат |
Техас | RX1 |
прием | ТХ1 |
РТС | ПЕРЕЗАГРУЗИТЬ |
Если на адаптере нет вывода RST, то замкните вывод RESET на GND (-Vbat) и быстро откройте его при запуске скрипта (это может занять несколько попыток).
Название пинов на устройстве можно найти в описании по ссылкам:
pip3 install -r requirements.txt
Загрузите файл BOOT_XXX_vXX.hex, необходимый для конкретного устройства, из каталога bin.
Бегать:
python3 rdwr_phy62x2.py -p COM11 -e -r wh BOOT_XXX_vXX.hex
Загрузочная перепрошивка завершена. Устройство работоспособно, адаптер можно отсоединить.
Загрузите полную версию прошивки через ОТА. Для этого:
Connect
, найдите устройство и подключитесь.OTA
, выберите нужную прошивку ( .bin
) и нажмите Start
.Устройство должно перезагрузиться и быть готово к использованию.
Необязательный:
- Чтобы предварительно очистить всю флэш-память, используйте опцию
-a
.- Чтобы предварительно очистить рабочую область флэш-памяти, используйте опцию
-e
.- С помощью адаптера USB-COM можно сразу записать основную прошивку (APP):
python3 rdwr_phy62x2.py -p COM11 -r we 0x10000 XXX_vXX.bin
python3 rdwr_phy62x2.py -p COM11 -r rc 0x11000000 0x80000 ff_thb2.bin
Оригинальную прошивку Tuya для конкретного типа устройства можно получить по ссылкам в таблице в начале данного README.
python3 rdwr_phy62x2.py -p COM11 -b 1000000 -r we 0 ff_thb2.bin
Не все адаптеры USB-COM поддерживают скорость 1 Мбит. Затем удалите опцию
-b 1000000
или выберите другую скорость передачи данных.
Адрес | Описание | Размер |
---|---|---|
0x00000 | Используемое ПЗУ | 8 килобайт |
0x02000 | Информация о загрузке для ПЗУ | 4 килобайта |
0x03000 | Загрузка прошивки с функцией OTA | 52 килобайта |
0x10000 | ПРОГРАММНОЕ ПРИЛОЖЕНИЕ | 128 килобайт |
0x30000 | Запись истории | 304 килобайта |
0x7C000 | Сохранить настройки (EEP) | 16 килобайт |
FW Boot
имеет функцию OTA, но не имеет функции истории или каких-либо других дополнений. Он используется для обработки OTA в случае любых неудачных или неправильных обновлений.
FW APP
не имеет функции OTA, для OTA оно перезагружается в FW Boot
. Имеет дополнительные функции и расширения.
Действие кнопки при включении устройства:
Если кнопка нажата при запуске, всегда запускается FW Boot
.
Если кнопка не нажата, запись FW APP
проверяется или нет. Если есть FW APP
, оно FW APP
. Если FW APP
отсутствует, запускается FW Boot
.
На термометрах с экраном, если отображение времени не включено, при запуске или перезапуске на короткое время отображается следующее:
«Бот 14» — FW Boot
версии 1.4.
«APP 15» — FW APP
версии 1.5.
Существует два способа принудительно перезагрузить FW Boot
из FW APP
:
7233
в меню Service
программы PHY62x2BTHome.html.Полная перезагрузка: введите команду
7201
вService
меню программы PHY62x2BTHome.html.
Через адаптер USB-UART приложение можно записать сразу после загрузки. Например:
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
Начиная с версии 1.2 поддерживается опрос контакта, подключенного к геркону, или контакта, замкнутого на GND.
Максимальная частота переключения составляет 100 раз в секунду.
Если контакт дребезжит, то желательно зашунтировать контакт конденсатором.
При закрытии или открытии через 50 мс передается блок из 5 рекламных объявлений BLE, следующих друг за другом.
При каждом событии «Открытие» добавляется счетчик.
Значение счетчика передается вместе с каждым событием «Открытие/Закрытие».
Входной контакт на плате термометра:
RX
.RX
.RX
.RX2
.RX0
.RX2
. Контакт на печатной плате с маркировкой «TX» или «TX2» управляется с помощью уставок гистерезиса температуры и влажности. Можно переключиться на инверсное управление выходом.
Настройка производится в программе PHY62x2BTHome.html.
Операция выхода назначается установкой значения гистерезиса:
Для сброса основных параметров к исходным значениям возьмите Android-смартфон и приложение «nRFConnect». Подключитесь к устройству и в сервисе 0xFCD2
с характеристикой 0xFFF4
напишите 56
.
Если интервал превышает 10 секунд, будет установлено значение 10 секунд, поскольку это максимальное значение в стандарте. Так же сделайте другие настройки. Однако не все BT-адаптеры могут работать с интервалом подключения 10 секунд.
Для сборки прошивки используется GNU Arm Embedded Toolchain.
Для работы в Eclipse используйте импорт проекта и установитеtoolchain.path.
См. здесь дополнительную информацию о чипах PHY62xx.