Skip to content

Commit b7788e9

Browse files
committed
Add secondary TeraTerm-like reset
1 parent 80879fe commit b7788e9

File tree

1 file changed

+49
-1
lines changed

1 file changed

+49
-1
lines changed

RTK_Firmware_Uploader/RTK_Firmware_Uploader.py

Lines changed: 49 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ def __init__(self, parent: QWidget = None) -> None:
154154

155155
# Reset Button
156156
self.reset_btn = QPushButton(self.tr('Reset ESP32'))
157-
self.reset_btn.clicked.connect(self.on_reset_btn_pressed)
157+
self.reset_btn.clicked.connect(self.tera_term_reset)
158158

159159
# Baudrate Combobox
160160
self.baud_label = QLabel(self.tr('Baud Rate:'))
@@ -610,6 +610,54 @@ def on_reset_btn_pressed(self) -> None:
610610

611611
self.disable_interface(True)
612612

613+
def tera_term_reset(self) -> None:
614+
"""Reset the ESP32 the TeraTerm way"""
615+
portAvailable = False
616+
for desc, name, sys in gen_serial_ports():
617+
if (sys == self.port):
618+
portAvailable = True
619+
if (portAvailable == False):
620+
self.writeMessage("Port No Longer Available")
621+
return
622+
623+
try:
624+
self._save_settings() # Save the settings in case the command fails
625+
except:
626+
pass
627+
628+
self.writeMessage("Resetting ESP32\n")
629+
630+
# ---- The pySerial method -----
631+
632+
self.disable_interface(True)
633+
634+
sleep(0.1)
635+
636+
try:
637+
ser = serial.Serial()
638+
ser.port = self.port
639+
ser.setDTR(False) # DTR High
640+
ser.setRTS(False) # RTS High
641+
with ser as s:
642+
s.setRTS(True) # RTS Low - before DTR
643+
s.setDTR(True) # DTR Low - after RTS
644+
sleep(1.0)
645+
self.writeMessage("Waiting for reset to complete")
646+
sleep(1.0)
647+
self.writeMessage("Waiting for reset to complete")
648+
sleep(1.0)
649+
self.writeMessage("Waiting for reset to complete")
650+
sleep(1.0)
651+
self.writeMessage("Waiting for reset to complete\n")
652+
sleep(1.0)
653+
except:
654+
self.writeMessage("Could not open serial port\n")
655+
self.disable_interface(False)
656+
return
657+
658+
self.writeMessage("Reset complete...")
659+
self.disable_interface(False)
660+
613661
def startUploaderGUI():
614662
"""Start the GUI"""
615663
from sys import exit as sysExit

0 commit comments

Comments
 (0)