summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoriabdalkader <i.abdalkader@gmail.com>2025-10-12 20:53:46 +0200
committerDamien George <damien@micropython.org>2025-10-24 17:31:51 +1100
commit15401a3ae83c5e5652d30544eeaf189585066f52 (patch)
treec320dbbf77d73fdaec222ea183ca86184907e94d
parent28919abb17fb645c9c5e89af44f9df85b8635e86 (diff)
tools/mpremote: Fix exception when using pts.
Setting RTS/DTR raises "Inappropriate ioctl for device" for pts devices. Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
-rw-r--r--tools/mpremote/mpremote/transport_serial.py13
1 files changed, 10 insertions, 3 deletions
diff --git a/tools/mpremote/mpremote/transport_serial.py b/tools/mpremote/mpremote/transport_serial.py
index eccdd4c1e..b3584945b 100644
--- a/tools/mpremote/mpremote/transport_serial.py
+++ b/tools/mpremote/mpremote/transport_serial.py
@@ -38,7 +38,7 @@
import ast, io, os, re, struct, sys, time
import serial
import serial.tools.list_ports
-from errno import EPERM
+from errno import EPERM, ENOTTY
from .console import VT_ENABLED
from .transport import TransportError, TransportExecError, Transport
@@ -107,8 +107,15 @@ class SerialTransport(Transport):
def close(self):
# ESP Windows quirk: Prevent target from resetting when Windows clears DTR before RTS
- self.serial.rts = False
- self.serial.dtr = False
+ try:
+ self.serial.rts = False
+ self.serial.dtr = False
+ except OSError as er:
+ if er.errno == ENOTTY:
+ # Some devices (like QEMU pts) don't support RTS/DTR control
+ pass
+ else:
+ raise er
self.serial.close()
def read_until(