# led-tool CLI helpers for MicroPython LED devices: **`settings.json`** download/upload via **mpremote**, resets, follow/tail, recursive uploads, optional firmware flash, and **led-driver**-oriented flags (presets, transport, Wi-Fi fields). Connection is always via **`-p` / `--port`** (default `/dev/ttyACM0`). There is **no** separate “server IP” flag; the Pi or PC address is configured on the device in **`settings.json`** when using Wi-Fi mode. ## Common flags | Flag | Purpose | |------|--------| | `-p`, `--port` | Serial device (default `/dev/ttyACM0`) | | `-s`, `--show` | Print current settings from the device | | `-n`, `--name` | Device **name** | | `--reset-device-name` | Set **name** to firmware default (`led-` + STA MAC hex, same as `Settings.set_defaults` on led-driver) | | `--id` | Numeric device id (ESP-NOW, 0–255) | | `--pin` | LED GPIO (`led_pin`) | | `-b`, `--brightness` | Brightness 0–255 | | `-l`, `--leds` | LED count (`num_leds`) | | `-d`, `--debug` | Debug 0 or 1 | | `-o`, `--order` | LED colour order (`rgb`, `grb`, …) | | `--preset` / `--pattern` | Create or replace a named preset in **led-driver** `presets.json` | | `--default` | Startup preset name | | `--transport` | `espnow` or `wifi` (`transport_type` on device) | | `--ssid`, `--wifi-password`, `--wifi-channel` | Wi-Fi / channel fields for the driver | | `-r`, `--reset` | Reset the device | | `-f`, `--follow` | Follow serial output (optional timeout seconds) | | `--pause` | Sleep N seconds (for chained actions) | | `-u`, `--upload` | Recursive upload: `-u SRC [DEST]` | | `--src`, `--lib` | Upload `src/` or a tree to `/lib` | | `-e` | Erase device code (keeps `settings.json`) | | `--rm` | Remove a path on the device | | `--flash` | Flash a firmware binary (uses **esptool** on the host) | **Default behaviour:** the tool always downloads `settings.json`, prints the merged view, and uploads again **only** when you pass setting edits (`--name`, `--leds`, …), **`--preset`**, or the relevant upload/flash/erase actions in order. Run **`python cli.py -h`** for the full epilog and argument list. ## License See **LICENSE** in this directory.