Files
ESP32_Serial_Swiss_Army_Knife/docs/command_reference.md
T

10 KiB
Raw Blame History

Command reference

Use these commands from the UART0 serial-tool> administration console. Run help for the available root commands and <group> help for a group summary. Configuration changes are RAM-only unless explicitly saved.

System

Command Description
memory Show free memory, minimum free memory, and largest blocks for internal RAM, DMA-capable RAM, and PSRAM.
reboot Drain console output briefly and restart the ESP32.
status Show quick MAX3243 signal state.

Local display

Command Description
display status Show the runtime aging settings and OLED service state.
display set dim-seconds <0..86400> Set the RAM inactivity delay before contrast drops to 1; 0 disables dimming.
display set off-seconds <0..86400> Set the RAM inactivity delay before the OLED switches off; 0 disables automatic off.
display save / display load Save the working aging settings to NVS or load them.
display defaults / display reset Apply 300/600-second defaults in RAM, or apply and persist them.

When both transitions are enabled, off-seconds must be greater than dim-seconds. Applying settings counts as local UI activity. A missing OLED remains nonfatal; after reconnecting it safely, one new button press requests a bounded reprobe and is consumed without navigating.

Serial service

Command Description
serial status Show UART1 state, configuration, modem signals, and ownership.
serial start / serial stop Start or release the physical UART1 service.
`serial set <baud data-bits
serial save / serial load Save the working configuration to NVS or load it.
serial defaults / serial reset Apply defaults in RAM, or apply and persist them.
serial counters / serial clear-counters Show or clear serial counters.

Defaults are 115200 baud, 8 data bits, no parity, one stop bit, no flow control, and inactive DTR. Supported values: baud 1101000000; data bits 7 or 8; parity none, even, or odd; stop bits 1 or 2; flow none or rts-cts; DTR inactive, active, or on-connect; and RTS threshold 1127 bytes. The broker exclusively owns serial data access.

Session broker

Command Description
broker status / broker clients Show broker state or connected clients.
broker counters / broker clear-counters Show or clear broker counters.
broker connect <name> / broker disconnect <client-id> Create or remove a console test client.
broker request-writer <client-id> / broker release-writer <client-id> Request or relinquish the single writer lease.
`broker force-writer <client-id none>`
broker send-hex <client-id> <hex-bytes> Send hexadecimal bytes through a writer client.
broker read <client-id> [maximum-bytes] Read queued serial output for a client.
broker events <client-id> Show ownership and connection events for a client.

Each client has a generation-safe ID. There can be one writer and multiple observers; a slow observer loses only its own queued output.

Native USB CDC-ACM

Command Description
usb / usb help Show USB command usage.
usb status Show CDC connection, broker role, and runtime state.
usb counters / usb clear-counters Show or clear USB counters.
usb request-writer / usb release-writer Request or release USB writer ownership.

Opening /dev/ttyACM* with DTR asserted creates the usb-cdc broker client, starts UART1 if needed, and requests writer ownership. It becomes an observer if another client is writer. USB data is binary-transparent. Supported host line coding is 1101000000 baud, 7/8 data bits, none/odd/even parity, and 1/2 stop bits; settings apply only while USB owns the writer lease and are not saved automatically.

Wi-Fi

Command Description
wifi status / wifi profiles Show Wi-Fi state or configured station profiles.
wifi start / wifi stop / wifi reconnect Start, stop, or reconnect Wi-Fi.
wifi next-profile Queue a switch to the enabled station profile after the currently active profile in priority order; wraps safely.
`wifi profile set <mixed wpa3> `
wifi profile secret <slot> Set a profile password through a no-echo prompt.
`wifi profile enable disable
`wifi ap policy <off fallback
wifi ap ssid <ssid> / wifi ap channel <1..11> Set the AP name or channel.
wifi ap secret / wifi ap show-secret Set or reveal the AP password.
`wifi save load
`wifi counters clear-counters`
wifi ping <host> [count] Send 120 IPv4 or IPv6 ICMP probes.
wifi nslookup <host> Resolve and display unique IPv4/IPv6 addresses.
wifi traceroute <host> [max-hops] Run IPv4 ICMP traceroute with up to 30 hops.

ping, nslookup, and traceroute are root aliases. The four station-profile slots use lower priority values first. Passwords are not displayed by ordinary status output.

HTTPS web terminal

Command Description
web / web help Show web-service command usage.
web status Show HTTPS and WebSocket state.
web start / web stop Start or stop HTTPS service.
web counters / web clear-counters Show or clear web counters.
web credentials show Display the physical-console-only shared admin credentials.
web credentials rotate --force Replace credentials and disconnect web and SSH sessions.
web certificate info Display certificate identity and fingerprint.
web certificate rotate --force Replace the HTTPS certificate and private key.
web reset --force Explicitly replace missing, incompatible, or damaged web material.

HTTPS listens on port 443 only. Authenticate to https://<device-address>/ as admin with the credential shown on UART0. The device serves its vendored xterm.js terminal without Internet access. Browser sessions use binary WebSocket frames and follow the broker's one-writer rule.

SSH serial transport

Command Description
ssh / ssh help Show SSH command usage.
ssh status Show service state and resource information.
ssh start / ssh stop Start or stop the SSH server.
ssh sessions List active SSH sessions and broker roles.
ssh disconnect <session-id> Disconnect one SSH session.
ssh counters / ssh clear-counters Show or clear SSH counters.
ssh host-key info Display the OpenSSH host-key fingerprint.
ssh host-key rotate --force Replace the persistent SSH host key.
ssh reset --force Explicitly replace invalid or missing SSH material.

SSH listens on port 22 and uses the same admin credentials as HTTPS, but a separate host key. It accepts password-authenticated interactive shell/PTY sessions only; it does not provide public-key authentication, exec, SFTP, SCP, forwarding, or subsystems. Verify the fingerprint from ssh host-key info before accepting an SSH host key.

Hardware diagnostics

Command Description
`debug transceiver <enable disable>`
`debug drivers <tx 0 1> <dtr 0
debug loopback-a / debug loopback-b Test MAX3243 driver/receiver loopback configurations.
debug valid-test Verify valid RS-232 voltage detection.
`debug uart-loopback [8N1 8E1
debug uart-suite Test supported baud rates and frame formats.
debug cts-flow-test / debug rts-flow-test Verify hardware transmit gating or receive backpressure.
debug display status Show the current display diagnostic state.
debug display probe Probe the expected OLED addresses 7-bit 0x3c and 0x3d, initially using 100 kHz I²C. The tested module responds at 0x3c.
debug display scan --force Scan usable 7-bit addresses 0x080x77 at 100 kHz; use only on this dedicated local-UI bus.
debug display init [address] Initialize the OLED at 7-bit 0x3c/0x3d, or their 8-bit write/read aliases: 0x78/0x79 and 0x7a/0x7b.
debug display off Turn off the initialized OLED.
`debug display pattern <clear fill
debug display row <0..63> Draw the selected one-pixel display row for addressing and color-boundary checks.
debug display contrast <0..255> Set the OLED contrast to the specified bounded value.
`debug display invert <on off>`
debug buttons status Show the current active-low state of previous/back GPIO10, select/confirm GPIO13, and next GPIO14.
debug buttons test [seconds] Run the bounded button event test for 130 seconds; the default is 10 seconds.

Follow the exact wiring in Electrical tests before invoking diagnostics. The OLED must be powered from 3.3 V because module I²C pull-ups may connect to VCC; verify that all external pull-ups also terminate at 3.3 V. Display diagnostics probe the standard SSD1315-compatible 7-bit 0x3c/0x3d addresses. The currently tested module acknowledges at 0x3c, whose 8-bit write/read forms are 0x78/0x79; an explicit scan --force is available only for the dedicated local-UI bus. Diagnostics initially run at 100 kHz and treat an absent display as nonfatal. RS-232 diagnostics that require UART1 refuse to use it until serial stop releases it. The RGB LED shows test state: blue idle, yellow/orange running, green passed, red failed.