update utils, README.md

This commit is contained in:
pvvx 2024-01-25 15:56:40 +03:00
parent 5a9c850be4
commit 55ba963efe
5 changed files with 3092 additions and 5 deletions

3056
BOOT_TH05_v07.hex Normal file

File diff suppressed because it is too large Load diff

View file

@ -26,7 +26,7 @@ Custom firmware for Tuya [THB2](https://pvvx.github.io/THB2), [BTH01](https://pv
* Опрос датчика влажности и температуры производится каждый второй интервал BLE рекламы - период 10 секунд.
* Измерение напряжения батареи производится каждую минуту.
* Кнопка используется для быстрого подключения к старым BT-адаптерам. Нажатие кнопки переключает интервал BLE рекламы на более короткий период. Действие продолжится 60 секунд, затем интервал восстановится.
* Измеренное среднее потребление от источника в 3.3В при сканировании термометров THB2 и BTH01 в пассивном режиме составляет до 7.9 мкА. Для TH-05 среднее потребление около 21 мкА - таков ток установленных компонентов. Но это меньше, чем потребление только в спящем режиме у оригинальной прошивки от Tuya (23 мкА)(!).
* Измеренное среднее потребление от источника в 3.3В при сканировании термометров THB2 и BTH01 в пассивном режиме составляет до 7.9 мкА. Для TH-05 среднее потребление около 21 мкА - [таков ток установленных компонентов](https://github.com/pvvx/THB2/issues/8#issuecomment-1908982171). Но это меньше, чем потребление только в спящем режиме у оригинальной прошивки от Tuya (23 мкА)(!).
## Прошивка:

View file

@ -24,7 +24,7 @@ PHY_WR_BLK_SIZE = 0x2000
__progname__ = 'PHY62x2 Utility'
__filename__ = 'rdwr_phy62x2.py'
__version__ = "11.01.24"
__version__ = "25.01.24"
def ParseHexFile(hexfile):
try:
@ -166,12 +166,16 @@ class phyflasher:
self._port.setRTS(False) #RSTN (hi)
self._port.timeout = 0.04
ttcl = 50;
fct_mode = False
pkt = 'UXTDWU' # UXTL16 UDLL48 UXTDWU
while ttcl > 0:
sent = self._port.write(pkt.encode());
read = self._port.read(6);
if read == b'cmd>>:' :
break
if read == b'fct>>:' :
fct_mode = True
break
ttcl = ttcl - 1
if ttcl < 1:
print('PHY62x2 - Error Reset!')
@ -183,6 +187,9 @@ class phyflasher:
self._port.baudrate = DEF_RUN_BAUD
self._port.open();
self._port.timeout = 0.2
if fct_mode:
print('PHY62x2 in FCT mode!')
return False
if not self.ReadRevision():
self._port.close()
exit(4)
@ -498,7 +505,15 @@ def main():
phy = phyflasher(args.port)
print ('Connecting...')
#--------------------------------
phy.Connect(args.baud)
if not phy.Connect(args.baud):
if args.operation == 'ea':
if not phy.cmd_er512():
print ('Error: Erase All Flash!')
sys.exit(3)
exit(0)
else:
print ("Use the 'Erase All Flash' (ea) command to exit FCT mode!")
exit(2)
if args.operation == 'rc':
#filename = "r%08x-%08x.bin" % (addr, length)
if args.size == 0:

View file

@ -24,7 +24,7 @@ PHY_WR_BLK_SIZE = 0x2000
__progname__ = 'PHY62x2 Utility'
__filename__ = 'rdwr_phy62x2.py'
__version__ = "11.01.24"
__version__ = "25.01.24"
def ParseHexFile(hexfile):
try:
@ -166,12 +166,16 @@ class phyflasher:
self._port.setRTS(False) #RSTN (hi)
self._port.timeout = 0.04
ttcl = 50;
fct_mode = False
pkt = 'UXTDWU' # UXTL16 UDLL48 UXTDWU
while ttcl > 0:
sent = self._port.write(pkt.encode());
read = self._port.read(6);
if read == b'cmd>>:' :
break
if read == b'fct>>:' :
fct_mode = True
break
ttcl = ttcl - 1
if ttcl < 1:
print('PHY62x2 - Error Reset!')
@ -183,6 +187,9 @@ class phyflasher:
self._port.baudrate = DEF_RUN_BAUD
self._port.open();
self._port.timeout = 0.2
if fct_mode:
print('PHY62x2 in FCT mode!')
return False
if not self.ReadRevision():
self._port.close()
exit(4)
@ -498,7 +505,15 @@ def main():
phy = phyflasher(args.port)
print ('Connecting...')
#--------------------------------
phy.Connect(args.baud)
if not phy.Connect(args.baud):
if args.operation == 'ea':
if not phy.cmd_er512():
print ('Error: Erase All Flash!')
sys.exit(3)
exit(0)
else:
print ("Use the 'Erase All Flash' (ea) command to exit FCT mode!")
exit(2)
if args.operation == 'rc':
#filename = "r%08x-%08x.bin" % (addr, length)
if args.size == 0:

1
wr_th05.cmd Normal file
View file

@ -0,0 +1 @@
python3 rdwr_phy62x2.py -p COM11 -e -r wh BOOT_TH05_v07.hex