MeshTools is a Rich+Questionary interactive / Typer-scriptable toolkit for tuning a MeshCore mesh over a serial companion device, with SQLite-logged runs and Plotly visualizations. Includes the skeleton (trace, info, history), TX-power optimization, and a MockDevice simulator (--mock). Device discovery & selection: - core/discovery.py: enumerate serial ports (pyserial), flag/sort likely LoRa hardware by USB vendor id, stable_id for replug-safe identity. - core/device_store.py: remember the last successfully connected device in <config_dir>/devices.json (independent of --db). - core/selection.py: non-interactive resolver (--port > profile > remembered > sole device > guidance error) for the CLI. - ui/device_picker.py + menu startup: interactive picker preselecting the remembered default; banner reflects the choice. - tools/devices.py: `meshtools devices` lists/marks attached devices. - AppContext resolves the port and records last-known-good on connect success. Fixes: - theme.py: force UTF-8 on stdout/stderr so glyphs don't crash legacy consoles. - connection.py: friendly message when meshcore is missing; pin meshcore>=2.3. - trace/tx-optimize: fall back to free-text target entry when the device reports no contacts (autocomplete requires non-empty choices). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
32 lines
1011 B
TOML
32 lines
1011 B
TOML
# MeshTools configuration.
|
|
# Copy to ~/.config/meshtools/config.toml (or pass --db / --port on the CLI).
|
|
#
|
|
# Profiles are optional. With no profile and no --port, MeshTools discovers attached
|
|
# serial devices, lets you pick one (interactively) or uses the single one present, and
|
|
# remembers the last device that connected as the default for next time. Define profiles
|
|
# below only to give your hardware stable aliases (e.g. --profile yagi).
|
|
|
|
default_profile = "s3"
|
|
trace_cooldown_s = 1.0
|
|
# db_path = "C:/Users/you/meshtools/meshtools.db"
|
|
# output_dir = "C:/Users/you/meshtools/output"
|
|
|
|
# One [profiles.<name>] block per physical companion device.
|
|
[profiles.s3]
|
|
port = "COM5"
|
|
baudrate = 115200
|
|
default_tx_power = 20
|
|
description = "XIAO ESP32-S3 + Wio SX1262 serial companion"
|
|
|
|
[profiles.yagi]
|
|
port = "COM6"
|
|
description = "Yagi repeater (reaching the wider mesh)"
|
|
|
|
[profiles.local]
|
|
port = "COM7"
|
|
description = "Local-range repeater"
|
|
|
|
[profiles.observer]
|
|
port = "COM8"
|
|
description = "XIAO observer running a bot"
|