Skip to content

tpt-solutions/tpt-basestation

Repository files navigation

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, plus create/edit/delete/rename files (root and subdirectories, inline and large/CTZ-encoded) — real-hardware-verified; see TODO.md for exact scope (e.g. no mkdir yet)
  • Community Manifest Sync — pull device manifests from a self-hosted registry (plain HTTPS + TOML) and merge them into your local manifest set, opt-in via the registry cargo feature
  • 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 models
  • hal (tpt-hal) — capability-based device discovery and manifests
  • cli (tpt) — command-line interface over core/hal
  • gui — 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.

About

Local-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.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages