@@ -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+
613661def startUploaderGUI ():
614662 """Start the GUI"""
615663 from sys import exit as sysExit
0 commit comments