Open zipfo opened 10 months ago
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.
А где достать распиновку для th05 Куда подпаиваться для прошивки?
C другой стороны платы, там всё подписано - см. обновленный https://pvvx.github.io/TH-05/ | USB-UART | PCB |
---|---|---|
RX | TX1 | |
TX | RX1 | |
RTS | REST_N | |
GND | -Vbat | |
+3.3V | +Vbat |
И какая у вас версия - ZTH-05 или экран:
Работа-обсуждение о термометрах на PHY62x2 https://esp8266.ru/forum/threads/ble-soc-phy6202.4666/
у меня старая bl55028
Ужасная BL55028. Кушает много. "Power saving mode" не работает, хотя описан в PDF. Т.е. не приводит к уменьшению тока. Рассчитывать на работу TH-05 от средней CR2032 более полугода не стоит. На оф. прошивке потребление ещё больше... Всё у Tuya cделано плохо, чтобы только продать, а дальше - мучайтесь с батарейками...
@pvvx Уверен что ваша прошивка сделает намного лучше
Не смог оригинальную сохранить, для th05 другие адреса?
успех, при запуске показало "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: Устройство подключено.
успех, при запуске показало "07" несколько сек, это отладочное?
Это номер версии.
Не смог оригинальную сохранить, для th05 другие адреса?
Просто что-то не так с соединением - надо было пробовать несколько раз и/или поменять скорость COM порта. Адаптеры USB-COM у всех разные... И процесс чтения прошивки очень долгий - десятки минут - это практически хак и такого не было предусмотрено в программе ROM чипа чтобы не копировали... А писать свой специальный загрузчик для разовой функции лень.
Если надо восстановить в Tuya, то тут Full Flash TH-05 для заливки.
Уверен что ваша прошивка сделает намного лучше
Менее 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В:
При 3.3В:
В итоге расходовать батарейку до 0% не выйдет. А это сокращает время работы от батареи....
А при понижении ниже 2.5 можно программно вырубать экран?
Экран на данном чипе не отключается. Т.е. если давать команду сброса контроллеру, то он будет ещё больше жрать. А уменьшить менее чем при текущих настройках когда показывает - нет возможности. У контроллера LCD, с которого сделан этот кривой клон, есть команда сна. Но на BL55028 не работает. На нем вообще почти ничего не работает, даже часть описанная в его PDF (копированная прямо картинками от другого чипа, который пытались скопировать :) )...
И питание BL55028 подключено от вывода порта PHY6222, как и датчика, а это ещё дает падение напряжения... В текущей тестовой версии питание ему не отключаю, т.к. другая нога питания BL55028 всё равно соединена с питанием от батареи и если отключить вывод порта - то потребление ещё больше. :) Только если выломать BL55028 - тогда поможет. Под бренд Tuya выпускают и хуже варианты термометров - там CR2032 работает 1 месяц... Не связывайтесь с Tuya и всё будет значительно лучше в плане батареек, т.к. под данный бренд выпускают всякий отстой без каких либо гарантий и сделанный непонятно кем и где из устаревших компонентов, брака и т.д. имеющих отрицательную цену из-за срока хранения и подобное :)
У Tuya поделок даже FCC ID нет, никакого другого сертификата нет, никаких проверок и гарантий... Tuya это контора по сбыту хлама из Китая.
Успешно перешил на 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: Устройство отключено.
Подождите выхода первого релиза. Он скоро. В настоящий момент идет проверка всех функций... Будет в v1.0.
Чет не могу обновить 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: Устройство отключено.
Версия 0.8 ещё не поддерживала нормальный OTA. Придется проводами прошить Boot версию от 1.0+.
Версия Boot 1.0 имеет ошибку, если установить своё имя устройства. Остальное должно работать. Лучше прошивать последнюю версию - Boot версию 1.1. Boot далее не надо менять, т.к. его основная функция - OTA. Загружаемая версия по OTA не имеет OTA функции. В дальнейшем предполагается, если какие ошибки будут в Boot версии, то будет специальное обновление её по OTA,
Пришли два клона TH-05, вместо BL55028 стоит GNV1792S, сенсор S-8310. У GNV1792S напряжение питания 2.5-5.5 вольт, потребление среднее 7.5мкА, максимальное 20мкА, это если верить китайскому datasheet-у. Ток покоя при выключенном дисплее и генераторе 5мкА. Пока не пробовал прошивать, не очень понятно как быть с сигналом RST, которого у моего UART-а нет, нужно просто перед началом замкнуть на землю и отпустить?
Пришли два клона TH-05, вместо BL55028 стоит GNV1792S,
TH05 больше. Пока "освоена" только одна версия - на плате надпись TH05_V1.4. Поддерживаемые датчики описаны в README.
Другие варианты TH05 видимо имеют различие в разводке сегментов LCD. Заказал разные, пока идут по почте с али...
Вот ещё версия TH05_v1.3: Фото с али...
не очень понятно как быть с сигналом RST, которого у моего UART-а нет
Будет проблемно.
У GNV1792S напряжение питания 2.5-5.5 вольт, потребление среднее 7.5мкА, максимальное 20мкА, это если верить китайскому datasheet-у. Ток покоя при выключенном дисплее и генераторе 5мкА.
У BL55028 тоже много чего написано. но не работает
И ещё много проблем с самими кодами SDK от PHY (что нашлось и уже частично переделано) - там много чего не дописано и недоделано для полной функциональности дополнительных опций и т.д...
Datasheet на сами SoC PHY62x2 тоже кишат ошибками.
Поддерживаемые датчики описаны в README.
Я изначально прочитал это, т.к. там указан CHT8310, то думаю и S-8310 сгодится. Но вот что мне интересно, зачем передавать данные измерять температуру/влажность каждые 5-10 секунд, раз в минуту для комнатного датчика ИМХО достаточно.
У BL55028 тоже много чего написано. но не работает
Просто чуть выше было обсуждение потребления, потому сразу написал сколько заявляют китайцы.
Будет проблемно.
Я как нибудь попробую без RST, выйдет хорошо, не выйдет, буду искать другой адаптер.
Но вот что мне интересно, зачем передавать данные измерять температуру/влажность каждые 5-10 секунд, раз в минуту для комнатного датчика ИМХО достаточно.
А мне нет. Нагреватели и кондиционеры быстрее отрабатывают и при меньшей частоте передачи температура гуляет на несколько градусов, т.к. не отключаются нагреватели и прочее. Желательно ещё чаше. А для PID регулировки лучше ещё чаще... Тогда, к примеру температуру в помещении, можно удержать на уровне +-0.1 C.
Для наблюдения за температурой и влажностью купите более дешевый вариант и наблюдайте :) А для авто-управления домом требуется совсем другое...
Для наблюдения за температурой и влажностью купите более дешевый вариант и наблюдайте :)
Так эти датчики как раз для наблюдения, а не управления, не?
А для авто-управления домом требуется совсем другое...
Как бы в помещении в разных местах температура будет изменяться по разному. Если поставить датчик под струю кондиционера, то наверное температура будет скакать как заяц, при включении/выключении, но если расположить за пределами воздушного потока, то уже будет заметный лаг. Впрочем я просто спросил, точность этих датчиков не сказать чтобы высокая, потому мне показалась странной такая частота опроса.
Даже если используется масляный обогреватель с простым вкл/выкл, то его инерция:
Управление (датчик температуры) находится в 3-х метрах от обогревателя. При меньшем расстоянии - будет отрабатывать чаще. Но в HA итак интервалы затянуты... А чем быстрее вкл/выкл и при коммутации мощности, тем больше экономия электроэнергии. На мощном эл. обогревателе (от 1 кВт) в среднем 3% уходит на нагрев проводки к нему. А если провода по участку длинные (как у меня, хотя сечения проводов увеличены несоразмерно), то потери будут в десятки % на нагрев улицы. И да, это весь обогрев дома-мастерской 6x6 м при -15С на улице... Днем хватает включенного компьютера и вентиляции...
На Xiaomi Aqara Zigbee уже ничего не сделать - он тупит хуже даже такого обогревателя...
Как бы в помещении в разных местах температура будет изменяться по разному.
А есть обогрев пушкой при входе, когда открывается дверь... Там уже значатся доли секунд.
Уменьшить частоту точек измерений можно на приемной стороне и заодно усреднить. Но BLE всё равно надо передавать каждые 10 сек (по стандарту до 10 сек). Иначе его никто не примет. А реальный интервал, к примеру у Linux ещё меньше - 4 сек.
Так эти датчики как раз для наблюдения, а не управления, не?
CHT8310 и другие устанавливаемые датчики сами измеряют с интервалом 1 сек. И так их програмно перестраиваю на 5 сек.
Т.е. TH05 по Вашему нельзя использовать для управления? Или частота передачи мешает наблюдению?
Мне просто интересно - какова причина требований у некоторых передачи замеров раз в час? По аналогии с привычкой?
В PHY62x2BTHome.html устанавливается период измерений. Существенной экономии батарейки на этом не получите - жалкие пару %.
Мне просто интересно - какова причина требований у некоторых передачи замеров раз в час?
Да нет никаких требований, я просто спросил почему выбран именно такой интервал, и все. Я не прошу что-то переделывать или добавлять.
Существенной экономии батарейки на этом не получите - жалкие пару %.
Все, предлагаю на этом закончить обсуждение интервала обновлений.
У GNV1792S
Аналог в некоторых Xiaomi - BU9792FUV MJWSD05MMC , CGDK2, варианты LYWSD03MMC, ...
Я изначально прочитал это, т.к. там указан CHT8310, то думаю и S-8310 сгодится.
А по внутреннему ID сенсор говорит, что он 0x8215
Версия 0.8 ещё не поддерживала нормальный OTA. Придется проводами прошить Boot версию от 1.0+.
Все получилось, спасибо
Попытался считать родную прошивку, получаю ошибку:
PHY62x2 - Error Reset!
Check connection TX->RX, RX<-TX and Chip Power!
Адаптер на PL-2303HX, сигналы RTS и DTR не выведены на гребенку, но я подпаялся к нужной ноге и через резистор 39 Ом подключил его к Reset. Адаптер точно рабочий, во первых, я им без проблема прошиваю ESP8266 и другие аналогичные платы, а также подключаюсь к различным одноплатникам. Во вторых, я в терминале вижу то, что передает датчик по UART.
Сигнал RTS тоже рабочий, посмотрел осциллографом, при старте считывания низкий уровень держится 316мс, чего должно быть достаточно для сброса. Может кто-то уже сталкивался с таким, что это может быть? Под рукой еще есть программатор на CH341A, который также может работать в режиме serial, в нем тоже RTS не выведен, хотя вроде как есть.
В 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. Всё в ручную...
Пришли два клона TH-05, вместо BL55028 стоит GNV1792S,
TH05 больше. Пока "освоена" только одна версия - на плате надпись TH05_V1.4. Поддерживаемые датчики описаны в README.
Прошивка версии 1.1 работает на
Очень странно что сохранение прошивки идет очень медленно. Около !!30!! минут. А прошивка через тот же адаптер происходит за 1 минуту. По воздуху 2мин.
P.S. Большое Спасибо за прошивку.
Пробуйте программу от 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!!
*******************************
Пробовал по китайским картинкам провести автоматический подбор битрейта, но не дождался его окончания. В общем, никак не получается ввести загрузчик чипа в режим программирования :( Или я что-то упускаю.
Очень странно что сохранение прошивки идет очень медленно. Около !!30!! минут.
Это типа "хак" и в PHY не рассчитывали, что прошивку можно считать и записать полностью - т.е. сделать полную копию. Но большого смысла считывать нет, т.к. для TH05_V1.4 выложена уже считанная https://pvvx.github.io/TH-05/bin/fullFlashTuyaTH05.zip.
Но резет тем не менее работает, если подключиться на скорости 115200, и нажать резет, то видно что при старте выводятся основные параметры:
Это работает уже сама прошивка. Для Boot-ROM PHY6222 надо 9600 baud и после Reset посылать 'UXTDWU' до ответа 'cmd>>:' или 'fct>>:'. Другие варианты PHY6xxx чипов используют разные битрейты - 9600 и 115200 и при старте надо посылать одну из комбинаций: 'UXTL16', 'UDLL48', 'UXTDWU'
Пробуйте программу от PHY -
Не подключается. Делал по инструкции отсюда, т.к. китайскую ниасилил.
Мы (я и froloffw7) ушли от китайской версии. Она рассчитана на SDK для сборки на проприетарном Keil. И PhyPlusKit использует фиксированную разметку для прошивки, что уже не совместимо с версиями из данного репозитория. У них другой OTA.
Текущая SDK, из данного репозитория, переработана на gcc. Т.е. не используется никакого проприетарного программного обеспечения. Иначе никаких публикаций не было.
Это работает уже сама прошивка. Для Boot-ROM PHY6222 надо 9600 baud и после Reset посылать 'UXTDWU' до ответа 'cmd>>:' или 'fct>>:'.
Именно так я себе и представлял, после резета оригинальная прошивка сначала выдает информационные данные, а затем периодично посылает состояние датчиков. Решил все же попробовать CH341A в качестве USB->uart, и получилось подключиться, но я сразу попытался шить через PhyPlusKit и стер оригинальную прошивку :( При этом записать ничего не удалось, то писало что нет файла, то просто падало. После некоторых плясок с бубоном я наловчился нажимать ресет в нужный момент и все же смог залить BOOT_TH05_v11.hex :) Обновился по OTA, но к сожалению, ни S-8310, ни GNV1792S, не работают :( При этом очень быстро садится батарея.
У меня пока нет такого варианта Возможно https://pvvx.github.io/TH-05/bin/fullFlashTuyaTH05.zip распознает?
Возможно https://pvvx.github.io/TH-05/bin/fullFlashTuyaTH05.zip распознает?
Не завелась. Впрочем у меня есть второй экземпляр, с него могу сохранить прошивку, опыт уже есть, но пока записал BOOT_TH05_v11.hex, вдруг к Вам приедут такие же, или могу выступить тестером прошивок.
Выяснил что название модели моих неудачных HT-05 = UA660-WL-B0, по крайней мере так они видятся в туевском облаке:
"model": "UA660-WL-B0",
"name": "Bluetooth Temperature Humidity Sensor 3",
"product_id": "iv7hudlj",
"product_name": "卫力-温湿度传感器-UA660-WL-B0",
Решил прозвонить что куда подключено, для того чтобы сравнить с предыдущими версиями:
№ | Название | функции | куда соединен
2 | P1 | GPIO 1 | кнопка при нажатии замыкает на землю резистор r15 подключенный к VCC
7 | TM | test mode enable | TM
8 | P9 | GPIO 9 | TX
9 | P10 | GPIO 10 | RX
10 | P11/AIO_0 | GPIO 11/ADC input 0 | ADC, делитель напряжения R1, R3, R2
14 | VDD3 | 3.3V power supply | VCC
20 | P18/AIO_7 | GPIO 18 | CHT8310 SDA
21 | P20/AIO_9 | GPIO 20 | CHT8310 SCL
22 | RST_N | reset, active low | RESET
31 | P33 | GPIO 33 | GNV1792s SCL
32 | P34 | GPIO 34 | GNV1792s SDA
Странно что контроллер экрана и сенсор на разных портах, возможно это как-то влияет на потребление, в предыдущих версиях сделано так же? Мне казалось что на I2C можно вешать множество самых разных устройств, и они не будут друг другу мешать.
Менее 13 мкА в режиме сна у TH-05 не удалось выжать.
А Вы можете сделать возможность отключения использования BL55028 через web-конфигуратор ? Там BL55028 подключена напрямую к батарейке или питается от GPIO? Если напрямую то можно как-то BL55028 загнать в глубокий сон вместо физического отключения?
На BL55028 не работают команды сна. И он подключен к +Vbat одной ногой, а вторая через GPIO. Если опустить GPIO - потребление только увеличивается и сильно.
https://pvvx.github.io/TH-05/BL55028_V1.3_en.pdf Найдите там команду отключения :) Были проверены все комбинации, включая неописанные, по аналогии с чего был сделан этот клон, и выставлено самое минимальное потребление.
Tuya прошивка при спящем SoC имеет потребление за 23 мкА. Текущая прошивка, за счет других настроек BL55028 и SoC - 17 мкА. Менее не выходит.
Из них 3 мкА на SoC, что-то на датчик (они разные), остальное - BL55028
Дурная модель от подельщиков Tuya и с ней ничего не сделать, кроме как в помойку.
Есть ещё несколько моделей от Tuya, где всё кое-как - ставят резисторы в питание на всякую ерунду, добавляют второй TuyaMCU. Такие тоже можно сразу в помойку, т.к. добиться работы более 6 месяцев от CR2032 на них невозможно.
Это Tuya, а не Xiaomi...
Возьмите THB2 - там сон всего 3..4 мкА, а среднее потребление при работе - 7..8 мкА.
На BL55028 не работают команды сна.
https://pvvx.github.io/TH-05/BL55028_V1.3_en.pdf Найдите там команду отключения :) Были проверены все комбинации, включая неописанные, по аналогии с чего был сделан этот клон, и выставлено самое минимальное потребление.
Ну там в даташите ясно написано, чтобы включился power-saving mode нужно :
SDA and SCL must be connect to high level(by pull up resistor),otherwise the device maybe can not go into power saving mode
и
In power-saving mode, SCL frequency must be less than 21KHz
Т.е. никаких команд не нужно.
Это в вашей прошивке реализовано?
Вы схему то смотрели? Или пытаетесь отнять время у других на ваши причуды?
Вы схему то смотрели? Или пытаетесь отнять время у других на ваши причуды?
Я к чему это, я к тому, что если в phy6222 используется аппаратный I2C то вообще может так быть что меньше 40-100kHz не поставите, много таких микроконтроллеров я видел. Может придется делать software I2C (bitbang) чтобы уменьшить скорость.
Если опустить SCL или SDA то там резисторы на пару кОм включатся в питание :P Цель уменьшения скорости, если команды он воспринимает? В данном чипе стоит анализатор скорости фронтов? :) Уменьшение скорости (bitbang) приведет к большему потреблению, т.к. процессор жрет больше, а на вывод на низкой скорости надо время. И вместо того, чтобы сделать что-то ещё мы тут будем обсуждать ваши причуды... Исходные коды есть - кто вам мешает вписать (bitbang) и прочее? Есть кнопочка - клонировать репозиторий, а лицензия не требует даже упоминать источник... это не GPL.
Я к чему это, я к тому, что если в phy6222 используется аппаратный I2C то вообще может так быть что меньше 40-100kHz не поставите,
Данный SoC позволяет установить скорости I2C и меньше. Поправьте значения в исходных кодах и соберите себе прошивку...
Исходные коды есть - кто вам мешает вписать (bitbang) и прочее?
Для тех кто не особо в этом разбирается, чем собирать? Я посмотрел в mk_windows.cmd вроде нужно скачать Arm GNU Toolchain Version 13.2.Rel1, зашел на https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads ,но что именно надо скачать не разобрался. Который из тулчейнов надо скачать?
Который из тулчейнов надо скачать?
Последний: Arm GNU Toolchain Version 13.2.Rel1 Released: October 30, 2023 или любой старый. На 10-ом тоже собирается...
https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads
До изменения прошивки у меня показывал мой мультиметр 16мкА. Ну без аппаратной переделки я добился 11-12мкА (при этом индикация видна как при разряженной батарейки) и дело не в I2C тут уже максимум энергосбережение судя по даташиту это 9мкА самой BL55028 + 3мкА SoC:
diff --git a/bthome_phy6222/source/lcd_th05.c b/bthome_phy6222/source/lcd_th05.c
index 038e2e0..6dcad7b 100644
--- a/bthome_phy6222/source/lcd_th05.c
+++ b/bthome_phy6222/source/lcd_th05.c
@@ -63,7 +63,7 @@ uint8_t display_out_buff[LCD_BUF_SIZE+1];
const uint8_t lcd_init_cmd[] = {
// LCD controller initialize:
0xea, // Set IC Operation(ICSET): Software Reset, Internal oscillator circuit
- 0xC8, // Mode Set (MODE SET): Display enable, 1/3 Bias, power saving
+ 0xd8, // Mode Set (MODE SET): Display enable, 1/3 Bias, power saving
0xbc, // Display control (DISCTL): Power save mode 3, FRAME flip, Power save mode 1
0x80, // load data pointer
0xf0, // blink control 0xf2
diff --git a/bthome_phy6222/source/main.c b/bthome_phy6222/source/main.c
index 23469c0..b2056d9 100644
--- a/bthome_phy6222/source/main.c
+++ b/bthome_phy6222/source/main.c
@@ -176,7 +176,7 @@ const ioinit_cfg_t ioInit[] = {
#elif (DEVICE == DEVICE_TH05)
{ GPIO_P00, GPIO_PULL_UP }, // GPIO_SPWR Sensor Vdd
{ GPIO_P01, GPIO_PULL_DOWN },
- { GPIO_P02, GPIO_PULL_UP }, // GPIO_LPWR
+ { GPIO_P02, GPIO_INPUT }, // GPIO_LPWR
{ GPIO_P03, GPIO_PULL_DOWN },
{ GPIO_P07, GPIO_PULL_DOWN },
{ GPIO_P09, GPIO_PULL_UP }, // TX1
(т.е. если мы делаем GPIO_INPUT или еще можно GPIO_FLOATING(но тогда нужно еще отключить GPIO_LPWR в thb2_main.c ) - то микросхема питается только от SDА и SCL пинов, как-то так :) Vlcd у меня подключён к BAT-, а не к BAT+ (TH05 version V1.5) )
Пробовал еще команду 0xEC из того же семейства LCD драйверов микросхему BL55070/BL55077 в этих семействах оно в режиме sleep должно брать 2мкА:
Дисплей отключается, т.е. как-то реагирует на команду, но энергосбережение остается прежним.
Оно на все нестандартные команды отключается
В принципе можно было бы добавить кнопочку в web-конфигуратор для экономии 5мкА (это если существенно не нужен дисплей) по примеру патча выше, а может и не стоит того....
Ну без аппаратной переделки я добился 11-12мкА (при этом индикация видна как при разряженной батарейки)
Вы пробовали менять LCD Bias? Это по идее двухуровневая регулировка контрастности, снижая контрастность можно снизить потребление.
В принципе можно было бы добавить кнопочку в web-конфигуратор для экономии 5мкА (это если существенно не нужен дисплей) по примеру патча выше, а может и не стоит того....
Можно прицепить на кнопку, тогда не нужно будет менять конфигуратор.
Всё было опробовано. Там всего 2 байта влияющих на режимы, а в них всего 4 бита, которые что-то делают. 0xD8 уже было. Это отключение отображения, но не работы контроллера LCD :P Не забывайте сохранить совместимость с другими аналогами данного чипа. Народу попадется другой чип и будет толпа issue. Аналоги этого чипа потребляют менее 3..5 мкА при работе в вариантах Xiaomi. И имеют команду sleep. Купили ерунду от Tuya - выкиньте в помойку. Это отходы. А мы просто балуемся с PHY чипами - переводим SDK на gcc и без блоб-ов.
Собрал себе на пробу прошивку, без поддержки GNV1792s потребление 4мкА в простое. Это так просто к сведению. Еще пробовал включить GNV1792s, но без сенсора, экран показал галиматью, вероятно программно этот контроллер совместим с BL55028, но вот сегменты отличаются, хотя думаю не очень сильно.
Здравствуйте, приехал TH05, но с неизвестным LCD драйвером и CHT8305. Сейчас прошивка TH05 адаптирована конкретно под AHT20?