update utils, README.md
This commit is contained in:
parent
5a9c850be4
commit
55ba963efe
5 changed files with 3092 additions and 5 deletions
3056
BOOT_TH05_v07.hex
Normal file
3056
BOOT_TH05_v07.hex
Normal file
File diff suppressed because it is too large
Load diff
|
|
@ -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 мкА)(!).
|
||||
|
||||
|
||||
## Прошивка:
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -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
1
wr_th05.cmd
Normal file
|
|
@ -0,0 +1 @@
|
|||
python3 rdwr_phy62x2.py -p COM11 -e -r wh BOOT_TH05_v07.hex
|
||||
Loading…
Add table
Add a link
Reference in a new issue