diff --git a/tools/idf_monitor.py b/tools/idf_monitor.py index ff34019da..8fdcecd83 100755 --- a/tools/idf_monitor.py +++ b/tools/idf_monitor.py @@ -46,6 +46,7 @@ import shlex import time import sys import serial +import serial.tools.list_ports import serial.tools.miniterm as miniterm import threading import ctypes @@ -764,12 +765,24 @@ class Monitor(object): def main(): + + def _get_default_serial_port(): + """ + Same logic for detecting serial port as esptool.py and idf.py: reverse sort by name and choose the first port. + """ + + try: + ports = list(reversed(sorted(p.device for p in serial.tools.list_ports.comports()))) + return ports[0] + except Exception: + return '/dev/ttyUSB0' + parser = argparse.ArgumentParser("idf_monitor - a serial output monitor for esp-idf") parser.add_argument( '--port', '-p', help='Serial port device', - default=os.environ.get('ESPTOOL_PORT', '/dev/ttyUSB0') + default=os.environ.get('ESPTOOL_PORT', _get_default_serial_port()) ) parser.add_argument(