Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

TH-05 with CHT8305 #8

Open
zipfo opened this issue Jan 24, 2024 · 143 comments
Open

TH-05 with CHT8305 #8

zipfo opened this issue Jan 24, 2024 · 143 comments

Comments

@zipfo
Copy link

zipfo commented Jan 24, 2024

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

IMG_8174

@pvvx
Copy link
Owner

pvvx commented Jan 24, 2024

Test version 0.7 supports various sensors...

v0.x is the firmware for tests.
While the firmware number is not 1.x or higher, these are test firmwares and many things do not work in them.
Normal OTA will be from version 1.0.
If the firmware works, then there is no need to change it until v1.0 is released.

Тестовая версия 0.7 поддерживает различные датчики...

v0.x - прошивки для тестов.
Пока номер прошивки не 1.х и выше, это тестовые прошивки и многие вещи в них не работают или не доделаны.
Нормальное ОТА будет от версии 1.0.
Если прошивка работает, то менять ее нет необходимости до выхода v1.0.

@almirus
Copy link

almirus commented Jan 24, 2024

А где достать распиновку для th05
Куда подпаиваться для прошивки?

@pvvx
Copy link
Owner

pvvx commented Jan 24, 2024

C другой стороны платы, там всё подписано - см. обновленный https://pvvx.github.io/TH-05/

USB-UART PCB
RX TX1
TX RX1
RTS REST_N
GND -Vbat
+3.3V +Vbat

И какая у вас версия - ZTH-05 или экран:
image

Работа-обсуждение о термометрах на PHY62x2 https://esp8266.ru/forum/threads/ble-soc-phy6202.4666/

@almirus
Copy link

almirus commented Jan 24, 2024

у меня старая bl55028

@pvvx
Copy link
Owner

pvvx commented Jan 24, 2024

Ужасная BL55028. Кушает много. "Power saving mode" не работает, хотя описан в PDF. Т.е. не приводит к уменьшению тока.
Рассчитывать на работу TH-05 от средней CR2032 более полугода не стоит. На оф. прошивке потребление ещё больше...
Всё у Tuya cделано плохо, чтобы только продать, а дальше - мучайтесь с батарейками...

@almirus
Copy link

almirus commented Jan 24, 2024

@pvvx Уверен что ваша прошивка сделает намного лучше

image

Не смог оригинальную сохранить, для th05 другие адреса?

@almirus
Copy link

almirus commented Jan 24, 2024

успех, при запуске показало "07" несколько сек, это отладочное?

00:25:51: Нет подключения
00:25:54: Поиск устройств
00:26:28: Ожидание соединения с TH05-5F21F7
00:26:37: Model: TH05
00:26:37: Firmware: github.com/pvvx
00:26:37: Hardware: 0001
00:26:37: Software: V0.7
00:26:37: Dev info # hw: 0015, sw: 0007, services: 000002A3, sd: 0000
00:26:37: OTA ver: 01
00:26:37: Устройство подключено.

image

@pvvx
Copy link
Owner

pvvx commented Jan 24, 2024

успех, при запуске показало "07" несколько сек, это отладочное?

Это номер версии.

Не смог оригинальную сохранить, для th05 другие адреса?

Просто что-то не так с соединением - надо было пробовать несколько раз и/или поменять скорость COM порта.
Адаптеры USB-COM у всех разные...
И процесс чтения прошивки очень долгий - десятки минут - это практически хак и такого не было предусмотрено в программе ROM чипа чтобы не копировали...
А писать свой специальный загрузчик для разовой функции лень.

Если надо восстановить в Tuya, то тут Full Flash TH-05 для заливки.

@pvvx
Copy link
Owner

pvvx commented Jan 24, 2024

Уверен что ваша прошивка сделает намного лучше

Менее 13 мкА в режиме сна у TH-05 не удалось выжать. Такие чипы ставят китайские разгильдяи под марку Tuya.
У оригинальной прошивки сон - 23 мкА. Там они вообще не заботятся о потреблении.
У BTH2 термометра, с программой из данного репо, вышло 3 мкА. Как и у BTH01. И там ещё батарейки 2xAAA!
Сон у Xiaomi LYWSD03MMC B1.4 - 6 мкА и среднее рабочее потребление 14 мкА при в два раза чаше передаче - интервал 2.5 секунды, вместо 5-ти как пока у всех программ для PHY6222 из данного репо (иначе выходит большой расход).

И LCD c драйвером BL55028 не приспособлен для работы от CR2032. По мере посадки батареи напряжение для CR2032 под нагрузкой падает и считается нормой до 2.0..2.2В = 0%.
А тут чип с нормой питания от 2.5В.
В итоге вы уже ничего не увидите на экране когда CR2032 поработает на 30..40% или если поместить термометр в отрицательную температуру, если не будете присматриваться и крутить его под разными углами.
При 2.5В:
image

При 3.3В:
image

image
image

В итоге расходовать батарейку до 0% не выйдет. А это сокращает время работы от батареи....

@almirus
Copy link

almirus commented Jan 24, 2024

А при понижении ниже 2.5 можно программно вырубать экран?

@pvvx
Copy link
Owner

pvvx commented Jan 24, 2024

Экран на данном чипе не отключается. Т.е. если давать команду сброса контроллеру, то он будет ещё больше жрать. А уменьшить менее чем при текущих настройках когда показывает - нет возможности.
У контроллера LCD, с которого сделан этот кривой клон, есть команда сна. Но на BL55028 не работает. На нем вообще почти ничего не работает, даже часть описанная в его PDF (копированная прямо картинками от другого чипа, который пытались скопировать :) )...

И питание BL55028 подключено от вывода порта PHY6222, как и датчика, а это ещё дает падение напряжения...
В текущей тестовой версии питание ему не отключаю, т.к. другая нога питания BL55028 всё равно соединена с питанием от батареи и если отключить вывод порта - то потребление ещё больше. :)
Только если выломать BL55028 - тогда поможет.
Под бренд Tuya выпускают и хуже варианты термометров - там CR2032 работает 1 месяц...
Не связывайтесь с Tuya и всё будет значительно лучше в плане батареек, т.к. под данный бренд выпускают всякий отстой без каких либо гарантий и сделанный непонятно кем и где из устаревших компонентов, брака и т.д. имеющих отрицательную цену из-за срока хранения и подобное :)

У Tuya поделок даже FCC ID нет, никакого другого сертификата нет, никаких проверок и гарантий...
Tuya это контора по сбыту хлама из Китая.

@almirus
Copy link

almirus commented Jan 30, 2024

Успешно перешил на 0.8, раньше не работала установка времени, возвращал FF

21:13:17: Старт программирования...
21:14:07: Программирование завершено за 50.104 секунды
21:14:16: Переподключение
21:14:16: Устройство отключено.
21:14:16: Ожидание соединения с TH05-5F21F7
21:14:19: Устройство отключено.
21:14:19: NetworkError: GATT Server is disconnected. Cannot retrieve services. (Re)connect first with `device.gatt.connect`.
21:14:19: Переподключение 0 из 5
21:14:19: Ожидание соединения с TH05-5F21F7
21:14:26: Model: TH05
21:14:26: Firmware: github.com/pvvx
21:14:26: Hardware: 0001
21:14:26: Software: V0.8
21:14:26: Dev info # hw: 0015, sw: 0008, services: 000002B2, sd: 0000
21:14:26: OTA ver: 01
21:14:26: Устройство подключено.
21:14:38: Время на устройстве: 1970-01-02 08:51:29
21:14:41: Установка времени на утройстве (23C166B965)...
21:14:41: Время на устройстве: 2024-01-30 21:14:41
21:14:44: Время на устройстве: 2024-01-30 21:14:44
21:14:50: Отключение
21:14:50: Устройство отключено.

@pvvx
Copy link
Owner

pvvx commented Jan 31, 2024

Подождите выхода первого релиза. Он скоро. В настоящий момент идет проверка всех функций...
Будет в v1.0.

@almirus
Copy link

almirus commented Feb 6, 2024

Чет не могу обновить 0.8 на 1.1
Датчик лежит рядом с компом, показания считываются, переходит в boot режим не с охотой, но отображает на пару секунд 08 и переходит обратно в стандартный режим (иконка соединения постоянно горит)

23:17:07: Не подключено
23:17:21: Поиск устройств
23:17:58: NotFoundError: User cancelled the requestDevice() chooser.
23:17:58: Подключиться не удалось!
23:19:17: Поиск устройств
23:20:14: Ожидание соединения с TH05-5F21F7
23:20:21: NetworkError: Connection Error: Connection attempt failed.
23:20:21: Переподключение 0 из 5
23:20:21: Ожидание соединения с TH05-5F21F7
23:20:31: Model: TH05
23:20:31: Firmware: github.com/pvvx
23:20:31: Hardware: 0001
23:20:31: Software: V0.8
23:20:32: Dev info # hw: 0015, sw: 0008, services: 000002B2, sd: 0000
23:20:32: Устройство подключено.
23:20:32: Ответ на команду (33): ff
23:20:37: Файл: TH05_v11.bin
23:20:37: Файл id:PHY6, Сегментов: 4, Старт: 0x1FFF1838, Размер: 50304 байт
23:20:37: Размер файла: 50308 байт
23:20:37: Счетчик: 3145 блоков
23:20:41: Переключение на BootLoader...
23:20:41: Переподключение
23:20:41: Устройство отключено.
23:20:41: Ожидание соединения с TH05-5F21F7
23:20:45: Устройство отключено.
23:20:45: NetworkError: GATT Server is disconnected. Cannot retrieve services. (Re)connect first with `device.gatt.connect`.
23:20:45: Переподключение 0 из 5
23:20:45: Ожидание соединения с TH05-5F21F7
23:20:57: Model: TH05
23:20:57: Firmware: github.com/pvvx
23:20:57: Hardware: 0001
23:20:57: Software: V0.8
23:20:57: Dev info # hw: 0015, sw: 0008, services: 000002B2, sd: 0000
23:20:57: Устройство подключено.
23:20:57: Ответ на команду (33): ff

пробовал с телефона, тож самое

23:07:41: Не подключено
23:08:27: Поиск устройств
23:08:34: Ожидание соединения с TH05-5F21F7
23:08:42: NetworkError: Connection Error: Connection attempt failed.
23:08:42: Переподключение 0 из 5
23:08:42: Ожидание соединения с TH05-5F21F7
23:08:52: NetworkError: Connection Error: Connection attempt failed.
23:08:52: Переподключение 1 из 5
23:08:52: Ожидание соединения с TH05-5F21F7
23:08:58: Model: TH05
23:08:58: Firmware: github.com/pvvx
23:08:58: Hardware: 0001
23:08:58: Software: V0.8
23:08:59: Dev info # hw: 0015, sw: 0008, services: 000002B2, sd: 0000
23:08:59: Устройство подключено.
23:08:59: Ответ на команду (33): ff
23:09:30: Файл: TH05_v11.bin
23:09:30: Файл id:PHY6, Сегментов: 4, Старт: 0x1FFF1838, Размер: 50304 байт
23:09:30: Размер файла: 50308 байт
23:09:30: Счетчик: 3145 блоков
23:09:39: Переключение на BootLoader...
23:09:39: Переподключение
23:09:39: Устройство отключено.
23:09:39: Ожидание соединения с TH05-5F21F7
23:09:39: Устройство отключено.
23:09:39: TypeError: Cannot read properties of null (reading 'getPrimaryService')
23:09:39: Переподключение 0 из 5
23:09:39: Ожидание соединения с TH05-5F21F7
23:09:43: Устройство отключено.
23:09:43: NetworkError: GATT Server is disconnected. Cannot retrieve services. (Re)connect first with `device.gatt.connect`.
23:09:43: Переподключение 1 из 5
23:09:43: Ожидание соединения с TH05-5F21F7
23:09:51: Model: TH05
23:09:51: Firmware: github.com/pvvx
23:09:51: Hardware: 0001
23:09:51: Software: V0.8
23:09:51: Dev info # hw: 0015, sw: 0008, services: 000002B2, sd: 0000
23:09:51: Устройство подключено.
23:09:51: Ответ на команду (33): ff
23:10:16: Отключение
23:10:16: Устройство отключено.

@pvvx
Copy link
Owner

pvvx commented Feb 6, 2024

Версия 0.8 ещё не поддерживала нормальный OTA.
Придется проводами прошить Boot версию от 1.0+.

Версия Boot 1.0 имеет ошибку, если установить своё имя устройства. Остальное должно работать.
Лучше прошивать последнюю версию - Boot версию 1.1.
Boot далее не надо менять, т.к. его основная функция - OTA.
Загружаемая версия по OTA не имеет OTA функции.
В дальнейшем предполагается, если какие ошибки будут в Boot версии, то будет специальное обновление её по OTA,

@Shestoperd
Copy link

Пришли два клона TH-05, вместо BL55028 стоит GNV1792S, сенсор S-8310. У GNV1792S напряжение питания 2.5-5.5 вольт, потребление среднее 7.5мкА, максимальное 20мкА, это если верить китайскому datasheet-у. Ток покоя при выключенном дисплее и генераторе 5мкА.
IMG_20240206_173346_crop
IMG_20240206_173130_crop
Пока не пробовал прошивать, не очень понятно как быть с сигналом RST, которого у моего UART-а нет, нужно просто перед началом замкнуть на землю и отпустить?

@pvvx
Copy link
Owner

pvvx commented Feb 6, 2024

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

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

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

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

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

Будет проблемно.

@pvvx
Copy link
Owner

pvvx commented Feb 6, 2024

У GNV1792S напряжение питания 2.5-5.5 вольт, потребление среднее 7.5мкА, максимальное 20мкА, это если верить китайскому datasheet-у. Ток покоя при выключенном дисплее и генераторе 5мкА.

У BL55028 тоже много чего написано. но не работает

И ещё много проблем с самими кодами SDK от PHY (что нашлось и уже частично переделано) - там много чего не дописано и недоделано для полной функциональности дополнительных опций и т.д...

Datasheet на сами SoC PHY62x2 тоже кишат ошибками.

@Shestoperd
Copy link

Поддерживаемые датчики описаны в README.

Я изначально прочитал это, т.к. там указан CHT8310, то думаю и S-8310 сгодится.
Но вот что мне интересно, зачем передавать данные измерять температуру/влажность каждые 5-10 секунд, раз в минуту для комнатного датчика ИМХО достаточно.

У BL55028 тоже много чего написано. но не работает

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

Будет проблемно.

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

@pvvx
Copy link
Owner

pvvx commented Feb 7, 2024

Но вот что мне интересно, зачем передавать данные измерять температуру/влажность каждые 5-10 секунд, раз в минуту для комнатного датчика ИМХО достаточно.

А мне нет. Нагреватели и кондиционеры быстрее отрабатывают и при меньшей частоте передачи температура гуляет на несколько градусов, т.к. не отключаются нагреватели и прочее. Желательно ещё чаше. А для PID регулировки лучше ещё чаще... Тогда, к примеру температуру в помещении, можно удержать на уровне +-0.1 C.

Для наблюдения за температурой и влажностью купите более дешевый вариант и наблюдайте :)
А для авто-управления домом требуется совсем другое...

@Shestoperd
Copy link

Для наблюдения за температурой и влажностью купите более дешевый вариант и наблюдайте :)

Так эти датчики как раз для наблюдения, а не управления, не?

А для авто-управления домом требуется совсем другое...

Как бы в помещении в разных местах температура будет изменяться по разному. Если поставить датчик под струю кондиционера, то наверное температура будет скакать как заяц, при включении/выключении, но если расположить за пределами воздушного потока, то уже будет заметный лаг.
Впрочем я просто спросил, точность этих датчиков не сказать чтобы высокая, потому мне показалась странной такая частота опроса.

@pvvx
Copy link
Owner

pvvx commented Feb 7, 2024

Даже если используется масляный обогреватель с простым вкл/выкл, то его инерция:
image

Управление (датчик температуры) находится в 3-х метрах от обогревателя. При меньшем расстоянии - будет отрабатывать чаще. Но в HA итак интервалы затянуты... А чем быстрее вкл/выкл и при коммутации мощности, тем больше экономия электроэнергии. На мощном эл. обогревателе (от 1 кВт) в среднем 3% уходит на нагрев проводки к нему. А если провода по участку длинные (как у меня, хотя сечения проводов увеличены несоразмерно), то потери будут в десятки % на нагрев улицы.
И да, это весь обогрев дома-мастерской 6x6 м при -15С на улице... Днем хватает включенного компьютера и вентиляции...

На Xiaomi Aqara Zigbee уже ничего не сделать - он тупит хуже даже такого обогревателя...

Как бы в помещении в разных местах температура будет изменяться по разному.

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

Уменьшить частоту точек измерений можно на приемной стороне и заодно усреднить.
Но BLE всё равно надо передавать каждые 10 сек (по стандарту до 10 сек). Иначе его никто не примет. А реальный интервал, к примеру у Linux ещё меньше - 4 сек.

@pvvx
Copy link
Owner

pvvx commented Feb 7, 2024

Так эти датчики как раз для наблюдения, а не управления, не?

CHT8310 и другие устанавливаемые датчики сами измеряют с интервалом 1 сек. И так их програмно перестраиваю на 5 сек.

Т.е. TH05 по Вашему нельзя использовать для управления?
Или частота передачи мешает наблюдению?

Мне просто интересно - какова причина требований у некоторых передачи замеров раз в час?
По аналогии с привычкой?

В PHY62x2BTHome.html устанавливается период измерений.
Существенной экономии батарейки на этом не получите - жалкие пару %.

@Shestoperd
Copy link

Мне просто интересно - какова причина требований у некоторых передачи замеров раз в час?

Да нет никаких требований, я просто спросил почему выбран именно такой интервал, и все. Я не прошу что-то переделывать или добавлять.

Существенной экономии батарейки на этом не получите - жалкие пару %.

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

@pvvx
Copy link
Owner

pvvx commented Feb 7, 2024

У GNV1792S

Аналог в некоторых Xiaomi - BU9792FUV
MJWSD05MMC , CGDK2, варианты LYWSD03MMC, ...

Я изначально прочитал это, т.к. там указан CHT8310, то думаю и S-8310 сгодится.

А по внутреннему ID сенсор говорит, что он 0x8215

@almirus
Copy link

almirus commented Feb 7, 2024

Версия 0.8 ещё не поддерживала нормальный OTA. Придется проводами прошить Boot версию от 1.0+.

Все получилось, спасибо

@Shestoperd
Copy link

Попытался считать родную прошивку, получаю ошибку:

PHY62x2 - Error Reset!
Check connection TX->RX, RX<-TX and Chip Power!

Адаптер на PL-2303HX, сигналы RTS и DTR не выведены на гребенку, но я подпаялся к нужной ноге и через резистор 39 Ом подключил его к Reset. Адаптер точно рабочий, во первых, я им без проблема прошиваю ESP8266 и другие аналогичные платы, а также подключаюсь к различным одноплатникам. Во вторых, я в терминале вижу то, что передает датчик по UART.
2024-02-07_215659

Сигнал RTS тоже рабочий, посмотрел осциллографом, при старте считывания низкий уровень держится 316мс, чего должно быть достаточно для сброса.
Может кто-то уже сталкивался с таким, что это может быть?
Под рукой еще есть программатор на CH341A, который также может работать в режиме serial, в нем тоже RTS не выведен, хотя вроде как есть.

@pvvx
Copy link
Owner

pvvx commented Feb 8, 2024

В boot-loader-е, который в ROM данного чипа, есть защита от чтения прошивки.
Но тогда rdwr_phy62x2.py напишет "PHY62x2 in FCT mode!". В этом режиме работают только команды стирания всей Flash.
Jtag-SWD тоже может быть отключен программно.

Может кто-то уже сталкивался с таким, что это может быть?

Пока ни разу с разными PHY62x2 такого не было.
А защиту включал сам, ради проверки утилит.

Пробуйте программу от PHY - https://github.com/pvvx/PHY62x2/tree/master/PhyPlusKit
Она не управляет RTS или DTS. Всё в ручную...

@CMY-Reader
Copy link

CMY-Reader commented Feb 8, 2024

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

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

Прошивка версии 1.1 работает на

  • TH05_V1.5 2023-05-23 с BL55028 и ATH20
  • TH05_V1.6 2023-06-02 с BL55028 и ATH20

Очень странно что сохранение прошивки идет очень медленно. Около !!30!! минут. А прошивка через тот же адаптер происходит за 1 минуту. По воздуху 2мин.

P.S. Большое Спасибо за прошивку.

@Shestoperd
Copy link

Shestoperd commented Feb 8, 2024

Пробуйте программу от PHY -

Не подключается. Делал по инструкции отсюда, т.к. китайскую ниасилил.
Получил бесконечное ожидание:

Current port: COM41
Current baudrate: 9600
Current stopBits: 1
Current parity: No
Serial opened!! 
*******************************
UART TX ASCII: UXTDWU
........
UART TX ASCII: UXTDWU
Serial port COM41 closed!!
*******************************

Но резет тем не менее работает, если подключиться на скорости 115200, и нажать резет, то видно что при старте выводятся основные параметры:

Current port: COM41
Current baudrate: 115200
Current stopBits: 1
Current parity: No
Serial opened!! 
*******************************
UART RX : DEVICE_NAME = THWL
DEVICE_VERSION = 1.5
PID = iv7hudlj
MAC = DC2....7FF4
DID = uuid291....111
KEY = QvYPcN.....C8RxHRTibOG
Device_authentication = 1
user_dt.ty_dt.updata_cnt = 0 
....................begin = 1
flash_dt.ty_fdt.unit = 0
flash_dt.ty_fdt.status1 = 3
power on status 1 = 2
vid = 8215 mid = 5959
Smaple_data: 258, 798, 798, 798, 798, 
Temperature: 243 Humidity: 38 Battery: 100
temp_alert: 2 hum_alert: 2
Serial port COM41 closed!!
*******************************

Пробовал по китайским картинкам провести автоматический подбор битрейта, но не дождался его окончания.
В общем, никак не получается ввести загрузчик чипа в режим программирования :( Или я что-то упускаю.

@pvvx
Copy link
Owner

pvvx commented Feb 19, 2024

Вообще кто ни будь читает FW Boot и OTA и т.д. ?

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

Ссылка уже есть. Wiki писать некогда - лучше доделать что...
Приглашаются желающие создать Wiki, а так-же раскрасить и допиливать PHY62x2BTHome.html .

галки не влияют ни на что.

Т.е. после указания ссылки всё равно не прочитать?

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

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

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

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

Возможно, в первый раз залил некорректную прошивку. теперь залил совершенно точно TH05V13_v13.bin. Ничего не поменялось.

Что "залили", куда "залили" ?
Для этого есть функция OTA в PHY62x2BTHome.html

@pvvx
Copy link
Owner

pvvx commented Feb 19, 2024

Найдена ещё беда у TH05-v1.3. При рестарте кнопка читается как нажатая и boot не загружает App. Видимо фича такая у данного вывода (возможно ROM так настраивает P2 - SWD_IO). А его надо читать до старта, чтобы сразу переходить к App...
Обновлено...
Ещё сегменты батарейки неверные, напряжение тоже неправильно измеряет... По этому данная версия, и все версии 1.3 ещё beta версии.

@dallaskassel - пишите конкретнее, если что не работает, чтобы не гадать... Надо было написать - "не запускается App. Стартует только boot".

У меня в "поддержке" 24 типа устройств только китайских термометров и плюс к ним ещё разные версии BLE, Zigbee, BLE+Zigbee…
Так что гадать и вспоминать где и что - некогда.

@dallaskassel
Copy link

с 50-й попытки прошил ЕЩЁ РАЗ TH05V13_v13.bin. Через OTA. до этого всё время было так:

21:34:45: Старт программирования...
21:35:17: OTA: NotSupportedError: GATT operation failed for unknown reason.
21:35:17: Устройство отключено.
21:37:18: Переподключение

При первом включении показывает "bot13". app не видел ни разу, даже если зажать кнопку при вставке батареи.
кнопки "Показывать время | Отображать смайлик | Отображать триггер | Отключить дисплей" не влияют ни на что. даже если нажать на "записать". если поменять конфигурацию галочек и нажать "прочитать" - конфигурация меняется на ранее записанную. т.е. настройки сохраняются, но смайлика всё равно нет.

@Shestoperd
Copy link

При первом включении показывает "bot13". app не видел ни разу, даже если зажать кнопку при вставке батареи.

Выше уже было ответ.

Найдена ещё беда у TH05-v1.3. При рестарте кнопка читается как нажатая и boot не загружает App. Видимо фича такая у данного вывода (возможно ROM так настраивает P2 - SWD_IO). А его надо читать до старта, чтобы сразу переходить к App...

@pvvx
Copy link
Owner

pvvx commented Feb 20, 2024

с 50-й попытки прошил ЕЩЁ РАЗ TH05V13_v13.bin. Через OTA. до этого всё время было так:

Вам надо запрограммировать новый вариант boot прошивки.

Через 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

Проблема со стабильной работой соединения на напряжении более 2.5В на чипах с маркировкой "PHY6222" без букв "QC" ещё не решена. Проверка показывает, что это актуально во всех имеющихся официальных SDK от PHY. Пока найдена только зависимость от типа подключения питания к чипу - вариант с DC-DC (используется дроссель) и без дросселя - только LDO. C только LDO всё работает...

@Shestoperd
Copy link

на чипах с маркировкой "PHY6222" без букв "QC" ещё не решена.

Если верить даташиту, то QC это тип корпуса QFN32 (4x4). Но есть два варианта маркировки, тот в котором тип корпуса идет во второй строке AAQCxxxxxx,
2024-02-21_035251
и тот в котором сразу после PHY6222
2024-02-21_035622
2024-02-21_040159

Может первые партии были с аппаратным багом, следующие уже без.
В общем мне кажется стоит смотреть не на QC, а на internal settings & internal version, хотя во втором типе маркировки этого уже нет, но дата выпуска точно есть, можно посмотреть с какого момента был введен второй тип маркировки.
Впрочем, это ничего не меняет и не объясняет почему у первого варианта маркировки нестабильная связь.

Пока найдена только зависимость от типа подключения питания к чипу - вариант с DC-DC (используется дроссель)

В даташите 1.3 есть интересная приписка * If RF TX output power > 5dBm, C2=4.7uF
С2 это конденсатор подключенный к VDD RF( нога 23, между резетом и антенной), по умолчанию он 2.2uF, может в этом дело, китайцы ставят 2.2, там где надо 4.7?

@pvvx
Copy link
Owner

pvvx commented Feb 21, 2024

  1. Уже давно конденсаторы шунтировал 220 мкФ - ничего.
  2. Изменение разных внутренних настроек таймингов и напряжений так-же ничего не дало
  3. Анализ работы DC-DC тоже ничего не дал, как и замена индуктивности.
    Разные PHY6222QC/PHY6222
    image
    image
    Это переход из sleep к активности. Событие рекламы.
    Осциллограммы немного разные от случая к случаю (зависит от нагрузки), но выходное напряжение и время его восстановления одинаково.
    Как и частота DC-DC.
    И вторая диаграмма - это совсем ужасный PHY6222, на котором вообще не получить соединение, если напряжение не в диапазоне 2.05..2.15В. И у него самая мелкая по размеру индуктивность.
    Другие PHY6222 как-то более стабильны - 1.9..2.5В

Tuya прошивка работает. Но там стоит программный тайм-аут соединения. Значит бага в чипе нет. Нужно что-то изменить в SDK. Имеющиеся SDK (Keil варианты) все дают нестабильное соединение...
Сбой происходит либо от ухода частот или от нарушения BLE тайминга.

@Shestoperd
Copy link

Shestoperd commented Feb 21, 2024

Значит бага в чипе нет. Нужно что-то изменить в SDK. Имеющиеся SDK (Keil варианты) все дают нестабильное

Но не на всех чипах.
Сейчас наблюдаю странность, не уверен что это связано именно с проблемой нестабильности при высоком питающем напряжении, но..
В общем график напряжения батареи похож на заборчик, это прекращается при снижении напряжения иже некоторого уровня. Т.е. измеренное напряжение скачет в пределах 0.05 вольта, а потом почти прекращаются такие прыжки.
2024-02-21_204055

@pvvx
Copy link
Owner

pvvx commented Feb 21, 2024

Это нормально для CR2032. У неё большое внутреннее сопротивление и под разной нагрузкой разное напряжение...
Так же скачет напряжение CR2032 от температуры.

image

Почему так быстро падает напряжение батареи на вашем графике?

THB1, но я его мучаю тестами прошивок и там дырки, подключения к другому источнику:
image
Но напряжение батарейки не падает. И она из другого термометра, отработавшего уже пол года, по причине того, что сбоит этот THB1 на новой батарее...

@pvvx
Copy link
Owner

pvvx commented Feb 22, 2024

Проблема со стабильной работой соединения на напряжении более 2.5В на чипах с маркировкой "PHY6222" без букв "QC" решена в ver 1.4. Пока в статусе Beta - надо докинуть следующую функцию...

@pvvx
Copy link
Owner

pvvx commented Feb 28, 2024

У кого какая статистика по реальному потреблению от батареек?
Поведение батареек, особенно CR2032, при импульсной нагрузке непредсказуемо. По этому желательно иметь реальные показания. Но у меня все PHY были в частых тестах и пока накопилось только это:
image
Среди них 4 разных с LCD и один THB2 специально с дохлыми батарейками AAA (вынуты из клавиатуры, т.к. там уже не работают) для проверки - как ему оно, посмотреть что будет когда совсем закончатся...

@Shestoperd
Copy link

Почему так быстро падает напряжение батареи на вашем графике?

Сори что так долго не отвечал. На том участке это я экспериментировал, собрал прошивку которая измеряла напряжение на Р11 причем без пулап, на этом экземпляре нет перемычки на пять вольт хотя R3 удален, потому там такой большой провал.

У кого какая статистика по реальному потреблению от батареек?

2024-02-29_150548
Поначалу казалось что все плохо, очень быстро разряжается, но потом устаканилось и график почти ровный. На обоих родные китайские батарейки, но на верхнем не юзаная, а на нижнем некоторое время работала с родной прошивкой. Также я период опроса датчика поставил 1мин, не уверен что это как-то ощутимо может повлиять на потребление, но более частый опрос мне не нужен. На верхнем видны частые подъемы и спуски, это меняется температура окружающей среды, потому так. Почему на одном есть "забор", а на втором нет, не очень понятно.

@pvvx
Copy link
Owner

pvvx commented Mar 1, 2024

Замер напряжения происходит в конце цикла активности. Влияет какой был ток на батарею до этого. Напряжение батареи не сразу восстанавливается после пика тока.
В итоге после разных предыдущих действий разное напряжение.
И ADC всего 12 бит.
В других устройствах я вписываю усреднение по нескольким замерам напряжения батареи - от 128. Тогда график выходит более ровный.
Для версий PHY пока не стал вставлять усреднение - надо посмотреть реальность. В более новых версиях прошивки вставлю усреднение....

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

Но должно было установиться в пределах 2.85..2.95В для CR2032. Это как бы номинальное напряжение батареи при нагрузке во время измерения напряжения (3..5 мА) на батарее при её остаточной емкости в диапазоне 90..30% +25С
Это на основе большой статистики по CR2032 в разных BLE термометрах с примерно схожими токами потребления. Но исключения тоже бывают. Много зависимостей от температуры эксплуатации и производителя батареи.

Для других типов батареек - будут другие графики. Даже для CR2025/CR2016 и т.д..

Для дешевых AAA батареек - падение напряжения практически линейное. Но все равно в самом начале разряда немного быстрее.

@Shestoperd
Copy link

В итоге после разных предыдущих действий разное напряжение.
И ADC всего 12 бит.

12 бит это разрешение менее 0.001 вольт, более чем достаточно. Вопрос вызывает то, что на одной батарее скачки при изменениях 0.05вольт и эта дельта почти не меняется, а на второй батарее 0.005вольт. Вот это несколько удивляет.

Но должно было установиться в пределах 2.85..2.95В для CR2032. Это как бы номинальное напряжение батареи при нагрузке во время измерения напряжения (3..5 мА) на батарее при её остаточной емкости в диапазоне 90..30% +25С

Вроде для этой батареи нормальный ток разряда 0.2мА, а вот 3.5мА это сильно завышенный, потому просадка должна быть ощутимее. На китайских батареях так тем более, емкость у них тоже наверняка раза в два ниже, чем должна быть.

Для версий PHY пока не стал вставлять усреднение - надо посмотреть реальность. В более новых версиях прошивки вставлю усреднение....

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

@pvvx
Copy link
Owner

pvvx commented Mar 1, 2024

Вроде для этой батареи нормальный ток разряда 0.2мА, а вот 3.5мА это сильно завышенный, потому просадка должна быть ощутимее.

Это вроде. Никто не запрещает и 50 мА. Просто быстрее сядет.

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

А как определить процент заряда? Этого для CR2032 типов батарей пока нигде не встречалось. Может Вы придумаете алгоритм определения заряда батарей типа CR2032? :)

Просто странно, почему именно так, у одних есть забор, у других нету.

Разные емкости в цепях питания, разные броски тока до измерения, разные внутренние сопротивления у батарей, ...
Да и ADC может халтурить. Задается цикл в 32 замера до прерывания, но выходит 30. Потом сумма этих 30-ти... Досконально изучать данный ADC нет желания. Усреднение спасет это дело на 100%.
Без усреднения множественных замеров на всех BLE устройствах с разными чипами выходят волосатые измерения.

@Shestoperd - Какой уровень напряжения будем принимать за верный?

image

image

Это несколько тактов с BTH01 с подключенной батареей CR2032. Клетка 100 мВ 1 мс. Некоторые значения указаны в низу картинки...
Замер ADC производит примерно в середине и/или ближе к спаду тока (восстановления напряжения).

Батарейка севшая, но ещё поработает. Без нагрузки выдает более 3-х Вольт.
BTH01 в это время показывает:
image

@pvvx
Copy link
Owner

pvvx commented Mar 2, 2024

Небольшое усреднение и всё стало ровнее:
image
TH05/TH05D/TH05F/THB1
image

@Shestoperd
Copy link

Это вроде. Никто не запрещает и 50 мА. Просто быстрее сядет.

Не только быстрее сядет, но и не отдаст положенной емкости.

А как определить процент заряда? Этого для CR2032 типов батарей пока нигде не встречалось. Может Вы придумаете алгоритм определения заряда батарей типа CR2032? :)

Никто не заморачивается подсчетом точного процента для подобных устройств, нужно всего лишь предупредить что скоро пора будет менять батарею, а то что последних 20% улетят за пару дней никого не удивит.
ИМХО, сильно заморачиваться этим нет смысла, просто забавный эффект наблюдается, интересно почему именно так - высота забора практически всегда одинаковая, хотя по логике значения должны быть не только в верхней и нижней части, но и в середине, но пытаться исправить или замаскировать лишняя трата времени.

@pvvx
Copy link
Owner

pvvx commented Mar 2, 2024

интересно почему именно так - высота забора практически всегда одинаковая

Вы читали и смотрели что я писал? На осциллограмме прослеживается два типа активного режима, в конце которых осуществляется измерение напряжения. И это отображено и в программе...

Не только быстрее сядет, но и не отдаст положенной емкости.

Да? А мужики то не знают!

Никто не заморачивается подсчетом точного процента для подобных устройств, нужно всего лишь предупредить что скоро пора будет менять батарею, а то что последних 20% улетят за пару дней никого не удивит.

Жду от вас описания алгоритма определения остатка в 20% у CR2032.

но пытаться исправить или замаскировать лишняя трата времени.

Заодно график корреляции напряжения батареи от температуры и прочего на новой версии, c лишней тратой времени на исправление или маскирование... :)

image

Можно и задержку прогрева батареи подсчитать, если увеличить дельту температуры :)

@Shestoperd
Copy link

Вы читали и смотрели что я писал? На осциллограмме прослеживается два типа активного режима, в конце которых осуществляется измерение напряжения.

Это несколько тактов с BTH01 с подключенной батареей CR2032. Клетка 100 мВ 1 мс. Некоторые значения указаны в низу картинки...
Замер ADC производит примерно в середине и/или ближе к спаду тока (восстановления напряжения).

Т.е. должен получиться забор высотой 0.4 вольта, но наблюдается высотой 0.05вольта.

Жду от вас описания алгоритма определения остатка в 20% у CR2032.

Использовать обычную линейную зависимость. Да при разряде номинальным постоянным током график разряда сначала почти прямой и в конце резкий спад по напряжению, но это для разряда постоянным током. Для импульсной нагрузки все будет не так. Вероятно не будет и линейной зависимости, но стоит ли тратить время на изобретения более сложного, хотя и более точного алгоритма?
Ну вот к примеру, в принципе мы можем измерить/рассчитать потребляемую мощность для конкретного устройства в разных режимах его работы. Грубо: есть режим передачи, режим измерения T&H и есть режим ожидания. Т.о. можно получить потребленную энергию в мкВтч. Перевести емкость батареи в те же мкВтч, и смотреть остаток.
Работать будет при условии, что батарея ставится один раз и абсолютно новая.
Еще вариант: пробовать рассчитать внутренне сопротивление источника тока.
2024-03-02_210005
Если верить даташиту, то после 200мАч у батарейки энерждайзер резко начинает возрастать внутреннее сопротивление, при этом заявляется емкость 230мАч, т.е. это как раз искомые оставшиеся 20% емкости. Измеряем напряжение, до начала передачи, потом во время мередачи, ток мы примерно знаем и считаем что он постоянный, и рассчитываем внутреннее сопротивление источника тока, когда сопротивление начнет резко возрастать значит скоро придется менять батарею.

Можно и задержку прогрева батареи подсчитать, если увеличить дельту температуры :)

В НА это относительно наглядно можно посмотреть, совместить оба графика не получится, но расположить один под другим вполне. Та что в принципе уже сделано :)

@Shestoperd
Copy link

Вот что нашел случайно на просторах алиэкспресса :)
Screenshot_2024-03-02-05-32-20-720_com alibaba aliexpresshd

@pvvx
Copy link
Owner

pvvx commented Mar 3, 2024

Если верить даташиту, то после 200мАч у батарейки энерждайзер резко начинает возрастать внутреннее сопротивление, при этом заявляется емкость 230мАч, т.е. это как раз искомые оставшиеся 20% емкости.

У нас ток нагрузки при TX за 7 мА. Это до 150 Ом внутреннего сопротивления батареи при +25С. Далее PHY сбросится от BOR.
Градусы пишу не случайно. Т.к. у разных производителей CR2032 разная дельта напряжения от температуры и плюс её зависимость нелинейная.
За 4-ре года с этими термометрами я изучил все документы и сторонние исследования по CR2032, а так-же свою и чужую статистику на BLE устройствах.
Ничего нового вы не написали и не представили подходящего решения. Описанные варианты годятся для анализа заряда у CR2032 до точности +-60% :)


THB3 давно заказаны:
image
Покинуло страну отправления
27 февраля 2024 в 14:32

Т.е. должен получиться забор высотой 0.4 вольта, но наблюдается высотой 0.05вольта.

Примерные точки замера ADC:
image
Процесс замера ADC происходит асинхронно от циклов рекламы и по осциллограмме не узнать где он вообще есть, а где нет. Известно что перед спадом тока - в конце цикла активности. А дальше это ток заряда конденсатора в питании. По этому никаких 0.4В.
Сильно варьировать током потребления нет возможности и появляется ещё масса неизвестных - ток при передаче имеет зависимость от согласования антенны и т.д. И для каждой частоты передачи и её длительности разный. Плюс зависимость от экземпляра чипа и элементов на тракте антенны...
Но самая большая зависимость будет от емкости конденсатора установленного в питании и эффективности DC-DC, зависящей от дросселя.
Только по этим причинам ни одно ваше предложение не годится.
В итоге есть только один вариант - усреднение замеров напряжения, т.к. среднее потребление известно и имеет расхождение не более +-10% для каждого конкретного устройства при конкретных функциональных установках.
Пользователь по своей статистике и определит примерное время работы для своих батареек, настроек и условий эксплуатации устройства :)
Другого не дано.

Несколько раз встречалось, что у долго лежавшей батареи CR2032 при включении наблюдалось повышение напряжения (уменьшение внутреннего сопротивления) в течении нескольких дней.
Установка конденсатора с большой емкостью в питание дает показания 3В практически все 99% жизни батареи. Но свалится при каком длительном цикле активности до перезагрузки... А конденсатор с большой емкостью обычно имеет больший ток утечки. Хороший будет стоить как сам термометр.

И на вашем графике враньё про поводу внутреннего сопротивления CR2032. Смотрите независимые тесты...

@HumbleDeer
Copy link

HumbleDeer commented Mar 9, 2024

Hello, TH05 arrived, but with an unknown LCD driver and CHT8305. Is the TH05 firmware now adapted specifically for the AHT20?

IMG_8174

The hardware has "TH05Y_V1.2" written on the LCD side with the tx/rx pins. My module reads 2023-12-06 as a date code as well. The LCD driver seems likely to be a copy of another item or chip. I'll try and dump this firmware and see what comes out of it / what the bootloader and startup read as for information about the LCD.

Edit: the one I have does match what's described in #14, as expected.

@zipfo TH05F_v14.bin should be the one for you.

@pvvx
Copy link
Owner

pvvx commented Mar 23, 2024

Установленные батарейки, отказавшиеся работать в других устройствах, продолжают работать... Одна AAA батарейка уже потекла. Пока никак не дождаться отключения :`(
Все тестируемые Tuya:
image

image


Вроде процесс пошел...

image

Светло зеленый - это новый THB3 с новой батареей, а 8EC4 - THB2 как раз с потекшей батарейкой...
Температуру при 2.4В вроде показывает ещё нормально...

image

@pvvx
Copy link
Owner

pvvx commented Apr 2, 2024

THB2 с потекшими батарейками отработал до 1.73В без каких либо влияний на показания датчика при таких низких напряжениях:

image

@g6094199
Copy link

g6094199 commented Jun 28, 2024

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

IMG_8174

This seems to be similar hw as TH05Y

I have the same TH05 with CHT8305 but it has a sightly different display (same as the TH05_V1.4):

image

image

So which image to flash?!

@pvvx
Copy link
Owner

pvvx commented Jun 28, 2024

All firmware supports any of the sensors: CHT8215 (CHT8310), CHT8305, AHT20..30.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

9 participants