Release of the first version 1.0

This commit is contained in:
pvvx 2024-02-02 00:31:33 +03:00
parent 7c15dcf891
commit 946b9e674b
18 changed files with 6290 additions and 6280 deletions

View file

@ -1,44 +1,38 @@
# BTHome THB2, BTH01, TH-05
Custom firmware for Tuya [THB2](https://pvvx.github.io/THB2), [BTH01](https://pvvx.github.io/BTH01/), [TH-05](https://pvvx.github.io/TH-05).
* Проект в начальной стадии разработки, до появления функционального OTA.
* Тестовый [PHY62x2BTHome.html](https://pvvx.github.io/THB2/web/PHY62x2BTHome.html)
Прошивка для THB2 (файл bin\BOOT_THB2_v0x.hex).
Прошивка Boot-OTA для THB2 (файл bin\BOOT_THB2_v1x.hex).
Прошивка для BTH01 (файл bin\BOOT_BTH01_v0x.hex).
Прошивка Boot-OTA для BTH01 (файл bin\BOOT_BTH01_v1x.hex).
Прошивка для TH05 (файл bin\BOOT_TH05_v0x.hex).
Весрии 0.x - это прошивки для тестов.
Пока номер прошивки не 1.х или выше, это тестовые прошивки и многие вещи в них не работают или не доделаны.
Нормальное ОТА будет от версии 1.0.
Если прошитая версия работает, то менять ее нет необходимости до выхода v1.0.
Только к ней будут правильно работать настройки и OTA в [PHY62x2BTHome.html](https://pvvx.github.io/THB2/web/PHY62x2BTHome.html).
Прошивка Boot-OTA для TH05 (файл bin\BOOT_TH05_v1x.hex).
## Основные характеристики:
! При настройках по умолчанию !
* Интервал BLE рекламы в формате BTHome v2 равен 5 секундам.
* Опрос датчика влажности и температуры производится каждый второй интервал BLE рекламы - период 10 секунд.
* Измерение напряжения батареи производится каждую минуту.
* Кнопка используется для быстрого подключения к старым BT-адаптерам. Нажатие кнопки переключает интервал BLE рекламы на более короткий период. Действие продолжится 60 секунд, затем интервал восстановится.
* Измеренное среднее потребление от источника в 3.3В при сканировании термометров THB2 и BTH01 в пассивном режиме составляет до 7.9 мкА. Для TH-05 среднее потребление около 21 мкА - [таков ток установленных компонентов](https://github.com/pvvx/THB2/issues/8#issuecomment-1908982171). Но это меньше, чем потребление только в спящем режиме у оригинальной прошивки от Tuya (23 мкА)(!).
* Измеренное среднее потребление от источника в 3.3В при сканировании термометров THB2 и BTH01 в пассивном режиме составляет до 8 мкА. Для TH-05 среднее потребление около 21 мкА - [таков ток установленных компонентов](https://github.com/pvvx/THB2/issues/8#issuecomment-1908982171). Но это меньше, чем потребление только в спящем режиме у оригинальной прошивки от Tuya (23 мкА)(!).
* Запись итории каждые 30 минут
* Интервал соединения с учетом Connect Latency - 900 мс
* Интервал для соединения после нажатия кнопки действует 60 секунд и фиксирован на 1562.5 мс.
## Прошивка:
Прошить устройство возможно через USB-COM адаптер с выходами на 3.3В:
Прошить устройство програмой Boot-OTA возможно через USB-COM адаптер с выходами на 3.3В:
1. Соединить GND, TX, RX, RTSRESET, VCC (+3.3B).
2. Запустить:
```
python3 rdwr_phy62x2.py -p COM11 -e -r wh BOOT_xxx_vxx.hex
```
3. Прошивка зашита. Устройство работает.
3. Прошивка Boot-OTA завершена. Устройство работает.
4. Далее загружаем полную версию по OTA в [PHY62x2BTHome.html](https://pvvx.github.io/THB2/web/PHY62x2BTHome.html).
Дополнительно:
@ -74,4 +68,4 @@ python3 rdwr_phy62x2.py -p COM11 -b 1000000 -r we 0 ff_thb2.bin
Для работы в Eclipce используете импорт проекта и установите toolchain.path.
Дополнительная информация по чипам [PHY62xx](https://github.com/pvvx/PHY62x2).
Дополнительная информация по чипам [PHY62xx](https://github.com/pvvx/PHY62x2).

View file

@ -381,7 +381,7 @@
:1047B0000A21584306F014FE094C206010BDC04683
:1047C000B863FF1F480AFF1FFC43FF1FC445FF1FBC
:1047D000FA43FF1FA465FF1FF843FF1F710200008B
:1047E000A863FF1FF8B509210020FEF7EFFD114C6B
:1047E000A863FF1FF8B510210020FEF7EFFD114C64
:1047F000011E114D09D10C22104BC1CBC1C42800A0
:1048000007F05EF8FFF7A4FFF8BD0C2220000C496A
:10481000FEF7B0FD0C2802D0084B43CB43C40C225A
@ -2206,14 +2206,14 @@
:10B9C000E13F0011114100110000000016160000B7
:10B9D00002000000DCB90011F4FFF3FFD2FC00000C
:10B9E000DD41001100000000000000005475796185
:10B9F0000042302E3900303030310067697468758C
:10B9F0000042312E30003030303100676974687594
:10BA0000622E636F6D2F7076767800425448303125
:10BA1000000000000200000028BA0011292A282A8C
:10BA2000272A262A252A242A0A180000E2040000D0
:10BA30007102000078EC0000744000001027000044
:10BA400060F0000006640000204E000000000000CE
:10BA5000010000001F501D00023CB4000001140052
:10BA600009000000810200003031323334353637AE
:10BA600010000000810200003031323334353637A7
:10BA70003839414243444546005048592B363258E4
:10BA800058504C555330353034005B486172642057
:10BA90006661756C742068616E646C65725D0A0025

File diff suppressed because it is too large Load diff

3124
bin/BOOT_TH05_v10.hex Normal file

File diff suppressed because it is too large Load diff

View file

@ -379,7 +379,7 @@
:104790000B4853430A21584306F00AFE094C206097
:1047A00010BDC046B863FF1F480AFF1FFC43FF1F30
:1047B000C445FF1FFA43FF1FA465FF1FF843FF1FF7
:1047C00071020000A863FF1FF8B509210020FEF761
:1047C00071020000A863FF1FF8B510210020FEF75A
:1047D000FDFD114C011E114D09D10C22104BC1CB16
:1047E000C1C4280007F054F8FFF7A4FFF8BD0C225D
:1047F00020000C49FEF7BEFD0C2802D0084B43CB2D
@ -2203,13 +2203,13 @@
:10B99000C53F0011F5400011000000001616000020
:10B9A00002000000ACB90011F4FFF3FFD2FC00006C
:10B9B000C1410011000000000000000054757961D1
:10B9C0000042302E390030303031006769746875BC
:10B9C0000042312E300030303031006769746875C4
:10B9D000622E636F6D2F7076767800544842320085
:10B9E00002000000F4B90011292A282A272A262A51
:10B9F000252A242A0A180000E2040000710200002F
:10BA000078EC0000744000001027000060F0000097
:10BA100006640000204E000000000000010000004D
:10BA20001F501D00023CB40000011300090000007B
:10BA20001F501D00023CB400000113001000000074
:10BA300081020000303132333435363738394142F3
:10BA400043444546005048592B36325858504C55BF
:10BA50005330353034005B48617264206661756C28

View file

@ -381,7 +381,7 @@
:1047B0000A21584306F014FE094C206010BDC04683
:1047C000B863FF1F480AFF1FFC43FF1FC445FF1FBC
:1047D000FA43FF1FA465FF1FF843FF1F710200008B
:1047E000A863FF1FF8B509210020FEF7EFFD114C6B
:1047E000A863FF1FF8B510210020FEF7EFFD114C64
:1047F000011E114D09D10C22104BC1CBC1C42800A0
:1048000007F05EF8FFF7A4FFF8BD0C2220000C496A
:10481000FEF7B0FD0C2802D0084B43CB43C40C225A
@ -2206,14 +2206,14 @@
:10B9C000E13F0011114100110000000016160000B7
:10B9D00002000000DCB90011F4FFF3FFD2FC00000C
:10B9E000DD41001100000000000000005475796185
:10B9F0000042302E3900303030310067697468758C
:10B9F0000042312E30003030303100676974687594
:10BA0000622E636F6D2F7076767800425448303125
:10BA1000000000000200000028BA0011292A282A8C
:10BA2000272A262A252A242A0A180000E2040000D0
:10BA30007102000078EC0000744000001027000044
:10BA400060F0000006640000204E000000000000CE
:10BA5000010000001F501D00023CB4000001140052
:10BA600009000000810200003031323334353637AE
:10BA600010000000810200003031323334353637A7
:10BA70003839414243444546005048592B363258E4
:10BA800058504C555330353034005B486172642057
:10BA90006661756C742068616E646C65725D0A0025

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -379,7 +379,7 @@
:104790000B4853430A21584306F00AFE094C206097
:1047A00010BDC046B863FF1F480AFF1FFC43FF1F30
:1047B000C445FF1FFA43FF1FA465FF1FF843FF1FF7
:1047C00071020000A863FF1FF8B509210020FEF761
:1047C00071020000A863FF1FF8B510210020FEF75A
:1047D000FDFD114C011E114D09D10C22104BC1CB16
:1047E000C1C4280007F054F8FFF7A4FFF8BD0C225D
:1047F00020000C49FEF7BEFD0C2802D0084B43CB2D
@ -2203,13 +2203,13 @@
:10B99000C53F0011F5400011000000001616000020
:10B9A00002000000ACB90011F4FFF3FFD2FC00006C
:10B9B000C1410011000000000000000054757961D1
:10B9C0000042302E390030303031006769746875BC
:10B9C0000042312E300030303031006769746875C4
:10B9D000622E636F6D2F7076767800544842320085
:10B9E00002000000F4B90011292A282A272A262A51
:10B9F000252A242A0A180000E2040000710200002F
:10BA000078EC0000744000001027000060F0000097
:10BA100006640000204E000000000000010000004D
:10BA20001F501D00023CB40000011300090000007B
:10BA20001F501D00023CB400000113001000000074
:10BA300081020000303132333435363738394142F3
:10BA400043444546005048592B36325858504C55BF
:10BA50005330353034005B48617264206661756C28

View file

@ -1,5 +1,5 @@
@set PATH=D:\MCU\GNU_Tools_ARM_Embedded\13.2.rel1\bin;%PATH%
@set SWVER=_v09
@set SWVER=_v10
@del /Q "build\THB2%SWVER%.hex"
@del /Q "build\THB2%SWVER%.bin"
@mkdir .\bin

View file

@ -13,7 +13,7 @@
// #include "bus_dev.h"
#ifndef APP_VERSION
#define APP_VERSION 0x09 // BCD
#define APP_VERSION 0x10 // BCD
#endif
/*

View file

@ -40,6 +40,7 @@ const uint8_t display_numbers[] = {
0b011110100, // E
0b001110100 // F
};
#define LCD_SYM_b 0b011100110 // "b"
#define LCD_SYM_H 0b001100111 // "H"
#define LCD_SYM_h 0b001100110 // "h"
#define LCD_SYM_i 0b000100000 // "i"
@ -47,7 +48,9 @@ const uint8_t display_numbers[] = {
#define LCD_SYM_o 0b010100110 // "o"
#define LCD_SYM_t 0b011100100 // "t"
#define LCD_SYM_0 0b011110011 // "0"
#define LCD_SYM_a 0b011110110 // 'a'
#define LCD_SYM_A 0b001110111 // "A"
#define LCD_SYM_a 0b011110110 // "a"
#define LCD_SYM_P 0b001110101 // "P"
uint8_t lcd_i2c_addr; // = 0x3E
@ -196,10 +199,19 @@ void show_small_number(int16_t number, bool percent) {
}
void lcd_show_version(void) {
show_big_number_x10(APP_VERSION);
#if OTA_TYPE
display_buff[0] = LCD_SYM_o;
display_buff[0] = LCD_SYM_b;
display_buff[1] = LCD_SYM_o;
display_buff[2] = LCD_SYM_t;
#else
display_buff[0] = LCD_SYM_A;
display_buff[1] = LCD_SYM_P;
display_buff[2] = LCD_SYM_P;
#endif
display_buff[3] &= BIT(6); // bat
display_buff[4] &= BIT(3); // connect
display_buff[4] |= display_numbers[(APP_VERSION>>4) & 0x0f];
display_buff[5] = display_numbers[APP_VERSION & 0x0f];
update_lcd();
}