tpt-basestation
RustLocal-first mission control for ESP32 & embedded IoT development — serial console, flash/OTA, BLE Wi-Fi provisioning, LittleFS browser, Matter/Thread mesh visualization, and energy monitoring. Built with Rust + Tauri + React. No cloud, no accounts.
Languages
TPT BaseStation
A local-first desktop "mission control" for wireless IoT and embedded development — starting with the ESP32 ecosystem, built to extend to Nordic/RISC-V and beyond.
TPT BaseStation consolidates the tools an embedded/IoT developer normally juggles separately — a serial monitor, a flasher, a BLE provisioning app, a packet sniffer — into one Tauri desktop app with a modular dashboard of "Cards." Everything runs locally: no cloud accounts, no telemetry, works air-gapped.
See spec.txt for the full design/vision doc and TODO.md for the up-to-date milestone log, including which features are mock-only vs. verified against real hardware.
Features
- Serial Console — real-time streaming console with sparkline graphing
- Hardware Discovery (HAL) — capability-based device detection (VID/PID → manifest → firmware handshake → boot-text fingerprint)
- Wi-Fi Provisioning — send credentials to devices over BLE
- Flash & OTA Manager — flash firmware over serial, or serve it via a local OTA HTTP server
- On-Device Filesystem — browse/pull/push a LittleFS partition (read path only — see caveats in
TODO.md) - Radio Coexistence Visualizer — Wi-Fi/BLE timeslicing graph (mock-only, pending TPT Probe hardware)
- Matter/Thread Topology Mapper + Mesh Doctor — mesh visualization, weak-link diagnosis, PDF reports (mock-only, pending real Border Router integration)
- Matter/Thread Commissioning — one-click local commissioning flow (simulated handshake)
- Local Energy Visualizer — MQTT/Modbus energy flow dashboard
Design principles: local-first (no cloud), hardware-agnostic core, mock-first development (every hardware-facing subsystem ships a mock alongside the real implementation), and no unverified device-mutating writes.
Project layout
Cargo workspace + pnpm workspace:
core(tpt-core) — transport-agnostic hardware logic: serial/BLE transports, flashing, OTA server, filesystem/LittleFS, mesh/probe/energy data modelshal(tpt-hal) — capability-based device discovery and manifestscli(tpt) — command-line interface overcore/halgui— Tauri v2 + React + TypeScript + Tailwind desktop app
See CLAUDE.md for a deeper architectural walkthrough.
Getting started
Requires Rust (stable) and Node/pnpm.
# Rust workspace
cargo build --workspace
cargo test --workspace
# CLI
cargo run -p tpt-cli -- serial --mock
# GUI
pnpm install
pnpm gui:dev # launch the Tauri dev app
pnpm gui:build # production build
Most subsystems have a --mock/mock-source path (CLI flags, or mock data sources in the GUI) so you can exercise the app without real hardware attached.
Status
Pre-1.0, actively developed. Track progress and open items in TODO.md.