Skip to content

Commit ce7af82

Browse files
committed
Merge branch 'bugfix/idf_monitor_usbser_sys' into 'master'
tools: work around usbser.sys bug in IDF monitor Closes IDFGH-2592 See merge request espressif/esp-idf!7460
2 parents f5b82c5 + af6541e commit ce7af82

File tree

1 file changed

+5
-0
lines changed

1 file changed

+5
-0
lines changed

tools/idf_monitor.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -355,6 +355,7 @@ def run(self):
355355
self.serial.rts = True # Force an RTS reset on open
356356
self.serial.open()
357357
self.serial.rts = False
358+
self.serial.dtr = self.serial.dtr # usbser.sys workaround
358359
try:
359360
while self.alive:
360361
data = self.serial.read(self.serial.in_waiting or 1)
@@ -741,8 +742,10 @@ def handle_commands(self, cmd):
741742
self.serial_reader.stop()
742743
elif cmd == CMD_RESET:
743744
self.serial.setRTS(True)
745+
self.serial.setDTR(self.serial.dtr) # usbser.sys workaround
744746
time.sleep(0.2)
745747
self.serial.setRTS(False)
748+
self.serial.setDTR(self.serial.dtr) # usbser.sys workaround
746749
self.output_enable(True)
747750
elif cmd == CMD_MAKE:
748751
self.run_make("flash")
@@ -755,9 +758,11 @@ def handle_commands(self, cmd):
755758
elif cmd == CMD_ENTER_BOOT:
756759
self.serial.setDTR(False) # IO0=HIGH
757760
self.serial.setRTS(True) # EN=LOW, chip in reset
761+
self.serial.setDTR(self.serial.dtr) # usbser.sys workaround
758762
time.sleep(1.3) # timeouts taken from esptool.py, includes esp32r0 workaround. defaults: 0.1
759763
self.serial.setDTR(True) # IO0=LOW
760764
self.serial.setRTS(False) # EN=HIGH, chip out of reset
765+
self.serial.setDTR(self.serial.dtr) # usbser.sys workaround
761766
time.sleep(0.45) # timeouts taken from esptool.py, includes esp32r0 workaround. defaults: 0.05
762767
self.serial.setDTR(False) # IO0=HIGH, done
763768
else:

0 commit comments

Comments
 (0)