From 179ac9c5409ffb8ec07af3f6554bedb9888d5ad1 Mon Sep 17 00:00:00 2001 From: Jimmy Date: Mon, 25 May 2026 22:00:14 +1200 Subject: [PATCH] feat(cli): add --serial-baudrate for bridge uart uplink Co-authored-by: Cursor --- cli.py | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/cli.py b/cli.py index e7691ec..761235e 100755 --- a/cli.py +++ b/cli.py @@ -150,7 +150,8 @@ _FLAGS_WITH_VALUE = frozenset({ '-p', '--port', '-n', '--name', '--pin', '-b', '--brightness', '-l', '--leds', '-d', '-debug', '--debug', '-o', '--order', '--preset', '--pattern', '--default', '--transport', '--ssid', - '--wifi-password', '--wifi-channel', '--src', '--lib', '--patterns', '--paterns', + '--wifi-password', '--wifi-channel', '--serial-baudrate', + '--src', '--lib', '--patterns', '--paterns', }) @@ -321,6 +322,9 @@ Examples: # Reset logical device name to firmware default (STA MAC based) %(prog)s --reset-device-name + + # ESP-NOW bridge: Pi on GPIO UART1 (USB-serial adapter) + %(prog)s -p /dev/ttyUSB0 --serial-baudrate 921600 """ ) @@ -413,6 +417,13 @@ Examples: help="led-driver transport_type", ) + parser.add_argument( + "--serial-baudrate", + type=int, + metavar="BAUD", + help="bridge: UART1 baud for Pi serial link (default 921600)", + ) + parser.add_argument( "--ssid", help="led-driver ssid (Wi-Fi network in wifi mode)", @@ -747,6 +758,18 @@ Examples: if args.transport is not None: edits["transport_type"] = args.transport + if args.serial_baudrate is not None: + edits["uplink_transport"] = "serial" + edits["serial_usb"] = False + edits["serial_uart_id"] = 1 + edits["serial_tx_pin"] = 2 + edits["serial_rx_pin"] = 3 + baud = int(args.serial_baudrate) + if baud < 9600 or baud > 3000000: + print("Error: --serial-baudrate must be 9600–3000000", file=sys.stderr) + sys.exit(1) + edits["serial_baudrate"] = baud + if args.ssid is not None: edits["ssid"] = args.ssid