pvvx / THB2

Custom firmware for Tuya devices on the PHY622x2 chipset
Other
92 stars 13 forks source link

TH-05 with CHT8305 #8

Open zipfo opened 5 months ago

zipfo commented 5 months ago

Здравствуйте, приехал TH05, но с неизвестным LCD драйвером и CHT8305. Сейчас прошивка TH05 адаптирована конкретно под AHT20?

IMG_8174

pvvx commented 4 months ago

потребление 4мкА в простое.

BTH01 При 3.3В питании, sleep = 3.64 мкА: image

При 2.2В питании, sleep = 3.35 мкА: image

THB2 при 2.2В питании, sleep = 3.59 мкА совместно с измерением сенсора: image

В THB2 сенсор делает замер сам через фиксированное время, меняется в его настройках...

Это так просто к сведению.

Когда всё подготовлено, тогда и просто :)

Shestoperd commented 4 months ago

Есть команда "60xxxxxx", где xxxx - буфер LCD - 6 байт.

Я похоже что-то не так делаю, иногда загораются сразу несколько сегментов, а часть сегментов не гаснет при выполнении команды. ЗЫ, кажется разобрался, сейчас буду срисовывать.

Когда всё подготовлено, тогда и просто :)

Я писал к тому что GNV1792s может потреблять совсем немного.

pvvx commented 4 months ago

TH05, текущая версия, при 2.2В, sleep = 14.5 мкА

image

Ступенька после импульса - это измерение сенсора. Его ток. Амплитуду импульсов на диаграммах смотреть не стоит - это nRF PowerProfiler II дает такие искажения из-за его схемы. Если динамика тока небольшая - то измерение более менее. Такую ерунду продаёт NRF. Я работаю с другим PowerProfiler... Максимальные пики тока у данных термометров при передаче до 8 мА и менее.

pvvx commented 4 months ago

TH05, текущая версия, но при 3.3В, sleep = 18.22 мкА image CR2032 выдает около 2.8..2.95В 70..80% жизни, при работе. На новой батарее - от 3.0 до 3.3В, но это напряжение очень быстро падает до 2.95В. В итоге на TH05 с BL55028 на 2.9В как раз и выходит к 17 мкА. Напряжение меньше - меньше ток утечки...

Shestoperd commented 4 months ago

Есть команда "60xxxxxx", где xxxx - буфер LCD - 6 байт.

Часть рожицы не гаснет, шестой байт нигде не отображается.

/*
 *  UA660 LCD buffer:  byte.bit

         --0.0--         --1.0--            --2.0--          BAT
  |    |         |     |         |        |         |        3.0 | 3.4 | 3.5 | 3.6 | 3.7
  |   0.4       0.1   1.4       1.1      2.4       2.1
  |    |         |     |         |        |         |      o 3.2
 0.7     --0.5--         --1.5--            --2.5--          +--- 3.2
  |    |         |     |         |        |         |     3.2|
  |   0.6       0.2   1.6       1.2      2.6       2.2       ---- 3.1
  |    |         |     |         |        |         |     3.2|
         --0.3--         --1.3--     *      --2.3--          ---- 3.3
                                    2.7
                                        --4.0--         --5.0--
                                      |         |     |         |
          x.x      x.x               4.4       4.1   5.4       5.1
          / \      / \                |         |     |         |
    4.7(  \_/  x.x \_/  )4.7            --4.5--         --5.5--
          x.x  / \ x.x                |         |     |         |
               \_/                   4.6       4.2   5.6       5.2     %
               x.x                    |         |     |         |     5.7
                                        --4.3--         --5.3--
                           OO 1.7
 None:  
*/
/* 0,1,2,3,4,5,6,7,8,9,A,b,C,d,E,F*/
const uint8_t display_numbers[] = {
        // 76543210
        0b001011111, // 0
        0b000000110, // 1
        0b001101011, // 2
        0b000101111, // 3
        0b000110110, // 4
        0b000111101, // 5
        0b001111101, // 6
        0b000000111, // 7
        0b001111111, // 8
        0b000111111, // 9
        0b001110111, // A
        0b001111100, // b
        0b001011001, // C
        0b001101110, // d
        0b001111001, // E
        0b001110001  // F
};
#define LCD_SYM_b  0b001111100 // "b"
#define LCD_SYM_H  0b001110110 // "H"
#define LCD_SYM_h  0b001110100 // "h"
#define LCD_SYM_i  0b001000000 // "i"
#define LCD_SYM_L  0b001011000 // "L"
#define LCD_SYM_o  0b001101100 // "o"
#define LCD_SYM_t  0b001111000 // "t"
#define LCD_SYM_0  0b001011111 // "0"
#define LCD_SYM_A  0b001110111 // "A"
#define LCD_SYM_a  0b001101110 // "a"
#define LCD_SYM_P  0b001110011 // "P"

первая фотка 60ffffffffffffff, вторая 6000000000000000 IMG_2024-02-14_005349_crop IMG_2024-02-14_005309_crop

ЗЫ. При работающем экране минимальное потребление 10мкА, это без сенсора и при напряжении питания 2,4 вольта. Вполне неплохо.

pvvx commented 4 months ago

Всё бы хорошо, но PHY62x2 кушают больше из-за долгого пробуждения после сна. Если сравнять период рекламы с Xiaomi LYWSD03MMC B1.4 до 2.5 сек, тогда PHY62x2 потребляет столько, сколько LYWSD03MMC полностью с экраном. Чтобы работал год от нормальной CR2032 приходится увеличивать период BLE рекламы...

pvvx commented 4 months ago

Вот такие токи в моменты пробуждения при передаче BLE рекламы на 3 канала имеются на TH05: Цикл измерения по умолчанию - 2 периода. Первое событие: image image

Видно как тупит SoC до включения RF TX-RX. 2+ мс.

Второе событие: image image Хвост - так потребляет AHT30. Шумит всё - это работа встроенного DC-DC в PHY6222.

pvvx commented 4 months ago

И для прикола надо обязательно сравнить с nRF Power Profiler II image image

Deoptim commented 4 months ago

@pvvx Может оно не существенно, но я в исходниках не нашел команды экономного режима для датчика AHT20-AHT30.

diff --git a/bthome_phy6222/source/sensors.c b/bthome_phy6222/source/sensors.c
index 4438b76..1af985a 100644
--- a/bthome_phy6222/source/sensors.c
+++ b/bthome_phy6222/source/sensors.c
@@ -75,6 +75,7 @@ int read_sensor_ahtxx(void) {
        init_i2c(I2C_400KHZ);
        if(!read_i2c_nabuf(thsensor_cfg.i2c_addr, reg_data, 7)
                        && (reg_data[0] & 0x80) == 0) { // busy
+               send_i2c_wreg(thsensor_cfg.i2c_addr, AHT2x_CMD_INI, AHT2x_DATA_LPWR);
                deinit_i2c();
                _temp = ((reg_data[3] & 0x0F) << 16) | (reg_data[4] << 8) | reg_data[5];
                measured_data.temp = ((uint32_t)(_temp * thsensor_cfg.coef.temp_k) >> 16) + thsensor_cfg.coef.temp_z; // x 0.01 C
@@ -87,6 +88,7 @@ int read_sensor_ahtxx(void) {
                measured_data.count++;
                return 0;
        }
+       send_i2c_wreg(thsensor_cfg.i2c_addr, AHT2x_CMD_INI, AHT2x_DATA_LPWR);
        deinit_i2c();
        return 1;
 }
diff --git a/bthome_phy6222/source/sensors.h b/bthome_phy6222/source/sensors.h
index 5fc3ee9..713fd7d 100644
--- a/bthome_phy6222/source/sensors.h
+++ b/bthome_phy6222/source/sensors.h
@@ -132,6 +132,8 @@ struct __attribute__((packed)) _cht8305_config_t{
 #define AHT2x_CMD_TMS  0x0AC  // Trigger Measurement Command
 #define AHT2x_DATA_TMS 0x3300  // Trigger Measurement data
 #define AHT2x_CMD_RST  0x0BA  // Soft Reset Command
+#define AHT2x_DATA_LPWR        0x0800 // go into low power mode
+

 typedef struct __attribute__((packed)) _measured_flg_t {
pvvx commented 4 months ago

Может оно не существенно, но я в исходниках не нашел команды экономного режима для датчика AHT20-AHT30.

Они и так не отличаются точностью... В TH05 датчик AHT20-F. image

Уже есть клон GXHT3X (ставят в TH03Z).

image image

Другие режимы работы датчика, включая автоматические, использоваться не будут для совместимости. Уменьшить потребление много потребляющих датчиков проще путем увеличения интервала опроса.

pvvx commented 4 months ago

При работающем экране минимальное потребление 10мкА, это без сенсора и при напряжении питания 2,4 вольта. Вполне неплохо.

Tuya = 54 мкА (3.3В) THB1

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

Shestoperd commented 4 months ago

Tuya = 54 мкА (3.3В) THB1

Это как раз мое устройство в облаке туя обозначается как UA660-WL-B0, откуда Вы брали название THB1/BT1? Потихоньку колупаю прошивку, но т.к. я не слишком хорошо знаю программирование, застрял сейчас на битовых операциях при выводе на экран разных символов. Почему-то при выводе некоторых символов калечится буфер, иногда в неожиданных местах.

pvvx commented 4 months ago

откуда Вы брали название THB1/BT1?

С коробки - THB1, BT1 написано на печатной плате. image

Shestoperd commented 4 months ago

С коробки - THB1, BT1 написано на печатной плате.

О, точно такая же коробка, но я там даже не пытался искать, а на плате написано BT1 это батарея, ну как R1, U1, Y1, это часть схематического обозначения деталей.

pvvx commented 4 months ago

TH05-F image image image

THB1 и TH05F получил только сегодня вечером. И для них надо лепить прошивки...

Shestoperd commented 4 months ago

THB1 и TH05F получил только сегодня вечером. И для них надо лепить прошивки...

Если будете этим заниматься, то маякните, может я чем-то помогу. Затер наклейку из термобумаги чтобы увидеть что там в спецификациях написано, нет обозначения, написано просто BT Temperature & Humidity Sensor. IMG_20240215_005759_crop

pvvx commented 4 months ago

И какой тут драйвер LCD? https://pvvx.github.io/TH05F/ image


На "Tuya THB1" находится много ссылок в google... На UA660-WL-B0 - нет

Если будете этим заниматься, то маякните, может я чем-то помогу.

Там надо только вписать везде новое имя и назначить номерки - в html и в прошивке наставить if...

На сегодня список поддержки с номерами (плюс ещё TelinkMiFlasher.html работает с некоторыми оф. версиями):

/*
#define BOARD_LYWSD03MMC_B14        0 // number used for BLE firmware
#define BOARD_MHO_C401              1
#define BOARD_CGG1                  2
#define BOARD_LYWSD03MMC_B19        3 // number used for BLE firmware
#define BOARD_LYWSD03MMC_DEVBIS     3 // ver https://github.com/devbis/z03mmc
#define BOARD_LYWSD03MMC_B16        4 // number used for BLE firmware
#define BOARD_WATERMETER            4 // ver https://github.com/slacky1965/watermeter_zed
#define BOARD_LYWSD03MMC_B17        5 // number used for BLE firmware
#define BOARD_CGDK2                 6
#define BOARD_CGG1N                 7 // 2022
#define BOARD_MHO_C401N         8 // 2022
#define BOARD_MJWSD05MMC            9
#define BOARD_LYWSD03MMC_B15        10 // number used for BLE firmware
#define BOARD_MHO_C122              11
#define BOARD_TNK                   16 // Water tank controller (not yet published at the moment)
#define BOARD_TS0201_TZ3000         17
#define BOARD_TS0202_TZ3000         18
#define BOARD__TH03Z                22 // ZigBee TH03Z
*/
#define DEVICE_THB2     19
#define DEVICE_BTH01        20
#define DEVICE_TH05     21
#define DEVICE_THB1     23

Помощь нужна только в раскрашивании и проверках html на все варианты со всеми термометрами. И в реверсе Tuya BLE OTA.

Shestoperd commented 4 months ago

И какой тут драйвер LCD?

Маркировка выглядит как у микросхем сделанных под заказ, китайцы иногда чтобы совсем не палиться не маркируют свои подделки под оригинал, а присваивают какие-то свои обозначения, что именно внутри знают только производитель и заказчик. Так что там вероятно один из распространенных контролеров, судя по количеству ног это скорее всего 55028.

На UA660-WL-B0 - нет

Значит это какое-то их внутреннее название, не важно впрочем.

Там надо только вписать везде новое имя и назначить номерки - в html и в прошивке наставить if...

Вот тут не понял, это где?

pvvx commented 4 months ago

Я писал к тому что GNV1792s может потреблять совсем немного.

Tuya оригинал, THB1: image Sleep 23 мкА.

pvvx commented 4 months ago

Может оно не существенно, но я в исходниках не нашел команды экономного режима для датчика AHT20-AHT30.

@Deoptim - Включение этого патча добавляет к среднему расходу более 0.15 мкA на TH05 при настройках по умолчанию. Т.е. выгода от включения экономного режима для AHT20-AHT30 полностью нивелируется энергией передачи этой команды (потреблением SoC на время передачи команды по I2C на 400 кГц).

pvvx commented 4 months ago

Beta v1.3 THB1

Работа с настройками по умолчанию:

image

С отключенным дисплеем:

image

image

Но есть проблемы с чипами, маркированными в первой строке "PHY6222", без букв в конце - нестабильное соединение при напряжении питания более 2.5В.

Shestoperd commented 4 months ago

Но есть проблемы с чипами, маркированными в первой строке "PHY6222", без букв в конце - нестабильное соединение при напряжении питания более 2.5В.

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

pvvx commented 4 months ago

Часть рожицы не гаснет, шестой байт нигде не отображается.

Спасибо за считанные битики! Добавлены и дополнены. Но беда с нестабильностью соединения при более 2.5В ещё не решена. Это происходит на THB1 и THB2. Там такие чипы PHY6222. В других устройствах маркировка PHY6222QC - там всё хорошо. Тип дросселя для DC-DC не влияет. 80% проверенных настроек в SDK тоже не улучшают ситуацию... Ищем решение (хорошо бы знать хотя-бы причину)...

В THB1 надо выкусывать резистор R3. Там Tuya наваяли делитель питания для ADC и естественно он постоянно точит батарейку - вроде 300 кОм - выкусил кусачками и выкинул. Использоваться не будет.

Shestoperd commented 4 months ago

Спасибо за считанные битики!

Всегда пожалуйста. Рожица пока не видна? В конфигураторе галка на показать рожицу стоит. Поставил галку показывать время, но ничего не изменилось, при каких условиях должно показывать время?

pvvx commented 4 months ago

В boot всё ненужное отключено. Загрузите APP OTA (при питании 2.2..2.4В :) ).

Shestoperd commented 4 months ago

В THB1 надо выкусывать резистор R3. Там Tuya наваяли делитель питания для ADC и естественно он постоянно точит батарейку - вроде 300 кОм - выкусил кусачками и выкинул.

Делитель там не сильно много жрет, т.к. пара резисторов по 300-500кОм, т.е. суммарно до мегаома, а пулап резисторы в самом чипе около сотни килоом. Так что этот делитель вероятно потребляет меньше чем встроенный.

Вот кстати еще, для GPIO_P18 и 20 GPIO_FLOATING, а для GPIO_P33 и 34 GPIO_PULL_UP, хотя и там и там есть внешние подтягивающие резисторы.

В boot всё ненужное отключено. Загрузите APP OTA (при питании 2.2..2.4В :) ).

А, раз не должно быть, то все нормально, я то думал что у меня что-то не то. ОТА прошивки кстати нету, она не собирается, в mk_windows.cmd нет команд сборки.

pvvx commented 4 months ago

Можно вписать MAC, который не будет стираться при обычной прошивке по UART. Часто такое нужно для отладки. Но это только в PhyPlusKit.exe: image Пока опций таких не писал в rdwr_phy62x2.py - редко нужно. Стереть все эти данные можно командой -a или ea в rdwr_phy62x2.py.


Репо уже обновлено...


Вот кстати еще, для GPIO_P18 и 20 GPIO_FLOATING, а для GPIO_P33 и 34 GPIO_PULL_UP, хотя и там и там есть внешние подтягивающие резисторы.

Там очень большая емкость и последовательные резисторы... И без дополнительных подтягивающих резисторов не выйдет работать с этой I2C даже ниже 50 кГц. А понижение скорости - это сильное увеличение потребления. Всё уже перепробовано и выбрано как меньше кушать... С аналогами этого драйвера, в других устройствах я включаю 800 кГц. А тут налепили последовательные резисторы...

Хорошо что ещё конденсаторы или диоды на шину не повесили, к примеру как в MJWSD05MMC. У них емкости за несколько сотен пФ... Делать им нечего и выпрямительные диоды девать некуда :) И вместо МГц предел до 100кГц с включением повышения тока отдачи GPIO... Детсад схемы разрабатывает и комплектацию потом подешевле лепят без согласования и выходит... что выходит :)

Shestoperd commented 4 months ago

Там очень большая емкость и последовательные резисторы... И без дополнительных подтягивающих резисторов не выйдет работать с этой I2C даже ниже 50 кГц.

Ок. Меня просто смутило что в одном случае так, а в другом иначе, я кстати когда ковырялся сам, то ставил на 33 и 34 FLOATING, и работало без проблем, какая скорость при этом выбиралась не знаю. Этот R3, не дает мне покоя, после его удаления изменилось ли потребление? Я сравнил сейчас измеренное мультиметром и тем что показывает сам девайс, разница 0.04в, думаю это не существенно, и лезть туда лишний раз паяльником не хочется. Выпаять я его смогу, а вот впаять обратно уже вряд-ли, слишком мелкий.

pvvx commented 4 months ago

Делитель там не сильно много жрет, т.к. пара резисторов по 300-500кОм, т.е. суммарно до мегаома, а пулап резисторы в самом чипе около сотни килоом. Так что этот делитель вероятно потребляет меньше чем встроенный.

3.3/1 000 000 = 0. 000 003 3 A = 3 мкА

А там резисторы меньше МегОма. В таких схемах учитывают утечку керамических конденсаторов... Не все типы подходят.

Плюс этот делить загоняет вход в переходное состояние - генерацию. От этого может и сбоит. Если трогать выводы - наводка сбивает работу соединения - глючит что-то в RF части...

Shestoperd commented 4 months ago

А там резисторы меньше МегОма.

ХЗ, Я пытался измерить, мой мультиметр показывал на R1 около 2МОм, на R3 600кОм, но остальная схема влияет, те же конденсаторы по питанию, и потому нормально измерить не выпаивая не выйдет, может вполне завышать за счет зарядного тока этих конденсаторов.

pvvx commented 4 months ago

ХЗ, Я пытался измерить, мой мультиметр показывал на R1 около 2МОм, на R3 600кОм, но остальная схема влияет, те же конденсаторы по питанию, и потому нормально измерить не выпаивая не выйдет, может вполне завышать за счет зарядного тока этих конденсаторов.

:) Влажная п.плата уже мегомы... А керамика любит набирать влагу... Ток ADC сильно больше...

Так что мегомы не ставят в такие цепи. Это Tuya

Они наверно решили по напряжению всех цепей к R3 измерять влажность :)


Чип на THB1 пришлось перепаивать - он сместился при пайке у них там - поплыл. Не все ноги контачили. Флюс-фен-ванна... Стало чище и ток утечек уменьшился. Ну это Tuya...

Shestoperd commented 4 months ago

= 3 мкА

Если так, то в покое должно быть заметное снижение потребления, и на измерениях это должно быть видно.

Чип на THB1 пришлось перепаивать - он сместился при пайке у них там - поплыл.

:-0

Ну это Tuya...

Если я правильно понимаю, сама Туя девайсы не выпускает, она типа делает общую схему, а производством занимаются все кому не лень.

pvvx commented 4 months ago

Именно - Tuya это контора по сбыту завалявшегося хлама из Китая.


В BTH2 вывод ADC через R9 в 0 Ом подключен к +Vbat. Хотя-бы там это правильно сделано. Но далее там полная экономия на всем, но почему резистор оставили - непонятно. Его же паять надо :)

Shestoperd commented 4 months ago

В BTH2 вывод ADC через R9 в 0 Ом подключен к +Vbat. Хотя-бы там это правильно сделано.

Отпаял R3 и за одно измерил сопротивление, R1 около 1.5 МОм, R3 около 500 кОм, т.е. суммарно около 2 МОм, т.е. ток при 3в около 1.5мкА. Измерил минимальный ток при 2.44в: было 10мкА, стало 9мкА. Кинул перемычку вместо R1, чтобы подать +Vbat на ADC, никакой разницы в точности измерения напряжения не заметил, как и раньше привирает на 0.04в

pvvx commented 4 months ago

Измерение напряжения из-за этого делителя перекинуто на P14. Измеряется сколько выводит GPIO при выводе на этот пин "1" + pullUp.

Shestoperd commented 4 months ago

Измерение напряжения из-за этого делителя перекинуто на P14. Измеряется сколько выводит GPIO при выводе на этот пин "1" + pullUp.

Так R1 нужно перемыкать или это не имеет значения? Я пытался в datasheet найти описание контроля напряжения батареи, но не нашел, надо понимать что встроенного механизма измерения нет, потому и делали внешний делитель.

pvvx commented 4 months ago

Цепь этого делителя в программе никак не используется.

https://github.com/pvvx/THB2/blob/master/bthome_phy6222/source/config.h#L224-L226 Если хотите переключить на эту цепь, тогда

#define ADC_PIN_USE_OUT     0 //  есть резистор 0 к +Vbat
#define ADC_PIN             GPIO_P11
#define ADC_VBAT_CHL        VBAT_ADC_P11

Я пытался в datasheet найти

В datasheet от PHY ничего нет. Мы работаем вслепую - reverse-engineering только

Shestoperd commented 4 months ago

Цепь этого делителя в программе никак не используется.

Все, понял наконец , был не внимателен.

Если хотите переключить на эту цепь, тогда

Нет смысла, уже отпаял R3, да и текущий способ вряд-ли хуже чем с делителем.

Deoptim commented 4 months ago

В datasheet от PHY ничего нет. Мы работаем вслепую - reverse-engineering только

Есть datasheet от PRBMD02 (на основе phy6222) там сказано, что ADC могут быть только P14-P15, P18, P20, P23-P25. и то смотря все ли выведены пины на самом модуле PRBMD02. Очень много информации об phy6222 можно почерпнуть в этом архиве:

  1. Там же кстати в архиве который я собрал www.k-sol.com.hk.zip вся информация которая касалась PRBMD02 модуля для программирования. В том числе последний PhyPlusKit_V2.5.2b.
  2. @pvvx Вы смотрели https://github.com/was3912734/TUYA-Magic-wand? Там SDK Tuya с исходниками OTA Tuya (Проект tuya-ble-sdk-demo-project-phy6222-V2.1.2) - может получится разобрать их протокол OTA чтобы не прошивать через UART.

https://www.mediafire.com/file/4l5y3i4fjlxdfw3/www.k-sol.com.hk.zip/file

prbmd02-adc-application-note.pdf

dallaskassel commented 4 months ago

Пришли два клона TH-05, вместо BL55028 стоит GNV1792S,

TH05 больше. Пока "освоена" только одна версия - на плате надпись TH05_V1.4. Поддерживаемые датчики описаны в README.

Другие варианты TH05 видимо имеют различие в разводке сегментов LCD. Заказал разные, пока идут по почте с али...

Вот ещё версия TH05_v1.3: image image image Фото с али...

не очень понятно как быть с сигналом RST, которого у моего UART-а нет

Прошу прощения, а для этого датчика прошивка есть? TH05_v1.3. BOOT_TH05_v13.hex залил, и всё. датчик пропал с радаров, индикации нет, через браузеры не ищется.

Shestoperd commented 4 months ago

BOOT_TH05_v13.hex залил, и всё. датчик пропал с радаров

Попробуй для начала предыдущую версию BOOT_TH05_v12.hex

pvvx commented 4 months ago

Прошу прощения, а для этого датчика прошивка есть? TH05_v1.3.

Пока нет. У данной версии всё связанное с LCD другое.

pvvx commented 4 months ago

Есть datasheet от PRBMD02 (на основе phy6222) там сказано, что ADC могут быть только P14-P15, P18, P20, P23-P25. и то смотря все ли выведены пины на самом модуле PRBMD02.

В вашем найденном PDF значиться uint32_t ch_adc[] = {ADCCH1NP11,ADC_CH3P_P20}; Т.е. эти документы с ошибками и для устаревшего SDK (полурабочего). По этому я их не выложил в PHY62xx, а только часть.

Очень много информации об phy6222 можно почерпнуть в этом архиве:

Всё это уже было просмотрено и, что содержит пусть малую крупицу информации, давно выложено в README - Дополнительная информация по чипам PHY62xx.

В том числе последний PhyPlusKit_V2.5.2b.

Он устарел и не годится для PHY62x2 чипов.

  1. @pvvx Вы смотрели https://github.com/was3912734/TUYA-Magic-wand? Там SDK Tuya с исходниками OTA Tuya (Проект tuya-ble-sdk-demo-project-phy6222-V2.1.2) - может получится разобрать их протокол OTA чтобы не прошивать через UART.

Безусловно смотрел, ещё несколько лет назад. Там ничего нужного нет. Так-же есть полные рабочие исходники для Tuya для Telink, но старой версии Tuya....

dallaskassel commented 4 months ago

Прошу прощения, а для этого датчика прошивка есть? TH05_v1.3.

Пока нет. У данной версии всё связанное с LCD другое.

  1. хотя бы исходника нет? а то команду сохранения я выполнял, и она что-то делала полчаса. не обратил внимания, что файл-то не появился нигде.
  2. когда ожидать прошивку? могу чем-то помочь? протестировать-замерять? Спасибо!
Shestoperd commented 4 months ago

2. могу чем-то помочь? протестировать-замерять?

Я попытался снять схему подключения датчика и контроллера экран, но по фотографиям это сложно сделать, потому надо проверить, либо под лупой все внимательно просмотреть, куда что идет, или прозвонить. Особенно странно выглядит участок на фото возле контролера экрана ноги 15 и 16, кажется что они посажены на землю хотя такого не может быть т.к. это SCL и SDA соответственно. Не смог точно понять откуда берется питание CHT8305 и BL55072. Попробуйте снять схему более точно.

 № | Название | функции   | Куда подключен
 6 | P7       | GPIO 7    | ???? CHT8305 Alert
 7 | TM       | test mode | TM
 8 | P9       | GPIO 9    | TX
 9 | P10      | GPIO 10   | RX
10 | P11      | GPIO 11   | ???? BL55072 SDA
11 | P14      | GPIO 14   | ???? BL55072 SCL
21 | P20      | GPIO 20   | ???? Возможно делитель напряжения R17, R18, R19
22 | RST_N    | reset     | reset
29 | P31      | GPIO 31   | ???? CHT8305 SDA
30 | P32      | GPIO 32   | ???? CHT8305 SCL

Также я не смог определить куда подключена кнопка и обвязка светодиода, правда светодиод и его обвязка не распаяны, потому это не важно.

dallaskassel commented 4 months ago

питание CHT8305 и BL55072 с батарейки. Звонятся тестером.

 № | Название | функции   | Куда подключен
 1 | P0       | GPIO 0    | LED
 3 | P2       | GPIO 2    | BUTTON
 6 | P7       | GPIO 7    | CHT8305 Alert
 7 | TM       | test mode | TM
 8 | P9       | GPIO 9    | TX
 9 | P10      | GPIO 10   | RX
10 | P11      | GPIO 11   | BL55072 SDA
11 | P14      | GPIO 14   | BL55072 SCL
21 | P20      | GPIO 20   | делитель напряжения R17, R18, R19
22 | RST_N    | reset     | reset
29 | P31      | GPIO 31   | CHT8305 SDA
30 | P32      | GPIO 32   | CHT8305 SCL

ещё что-то?

Shestoperd commented 4 months ago

ещё что-то?

TH05_v1.3.zip Попробуйте эту версию, если повезет, и к девайсу можно будет подключиться через https://pvvx.github.io/THB2/web/PHY62x2BTHome.html , а на экране будет хоть что-то видно, то пробовать командами определить куда какие сегменты подключены:

Есть команда "60xxxxxx", где xxxx - буфер LCD - 6 байт. Вводите 6001000000000000 - рисуете сегмент byte0.bit0 Далее 6002000000000000 - рисуете сегмент byte0.bit1 и т.д. Когда пройдете все биты - киньте картинку, как тут

И еще один момент, питание желательно чтобы было ниже 2.5 вольт, иначе могут быть произвольные отключения.

pvvx commented 4 months ago

Попробуйте эту версию, если повезет, и к девайсу можно будет подключиться через

Если описание выводов правильное, тогда никой вариант из прошлых прошивок работать не будет.

Shestoperd commented 4 months ago

Если описание выводов правильное, тогда никой вариант из прошлых прошивок работать не будет.

Хотя бы подключиться и измерить температуру/влажность он должен, по идее.

pvvx commented 4 months ago

У меня есть этот https://pvvx.github.io/TH05-v1.3 Дойдет дело и до него. Не всё сразу, так как есть другие более насущные дела, даже в этом проекте.