Skip to content

AT+PORT=? always returns port 2

Hello I have a problem with the usb-switch. When running "AT+PORT=?" I always get return "2\nOK". If I run "AT+PORT?" I get the actual descriptive state of the switch. Actual setting of ports works fine for all 7 configurations and the ports get enabled accordingly. This issue is present on Linux(Ubuntu24), MacOS and Win11. Here is an example:

./codethink_muxer "/dev/tty.usbmodem8D86559C52541" "AT+PORT=1" 
OK

./codethink_muxer "/dev/tty.usbmodem8D86559C52541" "AT+PORT?"
Bi-Dir A - C

./codethink_muxer "/dev/tty.usbmodem8D86559C52541" "AT+PORT=?" 
2
OK

./codethink_muxer "/dev/tty.usbmodem8D86559C52541" "AT+PORT=2" 
OK

./codethink_muxer "/dev/tty.usbmodem8D86559C52541" "AT+PORT?" 
Bi-Dir A - B

./codethink_muxer "/dev/tty.usbmodem8D86559C52541" "AT+PORT=?"
2
OK

The codethink_muxer script looks like this:


#!/usr/bin/env python3
import argparse
import serial

if __name__ == "__main__":
    parser = argparse.ArgumentParser(
        description="CLI tool to manage codethink usb C muxer"
    )
    parser.add_argument(
        "serial",
        type=str,
        help="Path to the serial port of the muxer",
    )

    parser.add_argument(
        "command",
        type=str,
        help="Command to execute",
    )

    args = parser.parse_args()


    ser = serial.Serial(f"{args.serial}", 115200, timeout=1)
    ser.write(bytes(f"{args.command}\r\n", "utf-8"))
    response = ser.read(ser.in_waiting or 64)
    print(response.decode())
    ser.close()
Edited by Tomaz Strus