Skip to content

Commit 9f5c97c

Browse files
committed
pyboard: Fix espxx boards hanging in bootloader after reset button.
Signed-off-by: Jos Verlinde <jos_verlinde@hotmail.com>
1 parent 05bb260 commit 9f5c97c

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

tools/pyboard.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -287,11 +287,15 @@ def __init__(
287287
for attempt in range(wait + 1):
288288
try:
289289
if os.name == "nt":
290-
# Windows does not set DTR or RTS by default
291290
self.serial = serial.Serial(**serial_kwargs)
292-
self.serial.dtr = True
293-
self.serial.rts = False
294291
self.serial.port = device
292+
portinfo = list(serial.tools.list_ports.grep(device)) # type: ignore
293+
if portinfo and portinfo[0].manufacturer != "Microsoft":
294+
# ESPxx boards and ESP32 boards use RTS/CTS for flashing and boot mode selection
295+
# DTR False, to avoid using the reset button will hang the MCU in bootloader mode
296+
# RTS False, to prevent pulses on rts on serial.close() that would POWERON_RESET an ESPxx
297+
self.serial.dtr = False # DTR False = gpio0 High = Normal boot
298+
self.serial.rts = False # RTS False = EN High = MCU enabled
295299
self.serial.open()
296300
else:
297301
self.serial = serial.Serial(device, **serial_kwargs)

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy