@@ -355,6 +355,7 @@ def run(self):
355
355
self .serial .rts = True # Force an RTS reset on open
356
356
self .serial .open ()
357
357
self .serial .rts = False
358
+ self .serial .dtr = self .serial .dtr # usbser.sys workaround
358
359
try :
359
360
while self .alive :
360
361
data = self .serial .read (self .serial .in_waiting or 1 )
@@ -741,8 +742,10 @@ def handle_commands(self, cmd):
741
742
self .serial_reader .stop ()
742
743
elif cmd == CMD_RESET :
743
744
self .serial .setRTS (True )
745
+ self .serial .setDTR (self .serial .dtr ) # usbser.sys workaround
744
746
time .sleep (0.2 )
745
747
self .serial .setRTS (False )
748
+ self .serial .setDTR (self .serial .dtr ) # usbser.sys workaround
746
749
self .output_enable (True )
747
750
elif cmd == CMD_MAKE :
748
751
self .run_make ("flash" )
@@ -755,9 +758,11 @@ def handle_commands(self, cmd):
755
758
elif cmd == CMD_ENTER_BOOT :
756
759
self .serial .setDTR (False ) # IO0=HIGH
757
760
self .serial .setRTS (True ) # EN=LOW, chip in reset
761
+ self .serial .setDTR (self .serial .dtr ) # usbser.sys workaround
758
762
time .sleep (1.3 ) # timeouts taken from esptool.py, includes esp32r0 workaround. defaults: 0.1
759
763
self .serial .setDTR (True ) # IO0=LOW
760
764
self .serial .setRTS (False ) # EN=HIGH, chip out of reset
765
+ self .serial .setDTR (self .serial .dtr ) # usbser.sys workaround
761
766
time .sleep (0.45 ) # timeouts taken from esptool.py, includes esp32r0 workaround. defaults: 0.05
762
767
self .serial .setDTR (False ) # IO0=HIGH, done
763
768
else :
0 commit comments