tuning-studio 0.1.0

Live variable inspection, tuning and telemetry for embedded firmware
docs.rs failed to build tuning-studio-0.1.0
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.

Tuning Studio

Live embedded variable inspection, tuning, telemetry and task timelines in a desktop app. Connect to running firmware over SWD, or to a compatible firmware server over USB serial. The application shares its Rust backend with the Tuning Studio VS Code extension.

Install

For a published release:

cargo binstall tuning-studio
# Or build the published source package:
cargo install tuning-studio --locked

Launch with tuning-studio. Native installers are distributed through GitHub Releases: Linux x86-64 (deb/AppImage), Windows x86-64 (NSIS), and macOS Apple Silicon/Intel (DMG). Initial bundles are unsigned; signing and notarization are not configured.

Published source packages contain prebuilt frontend assets, so end users do not need Node.js. Source builds require Rust and the Tauri platform prerequisites, plus libudev development headers on Linux. Binary installs still need the platform webview runtime: WebKitGTK 4.1 on Linux, WebView2 on Windows, or system WebKit on macOS. Probe/serial devices may need platform-specific permissions or drivers.

First use

  1. Open the unstripped ELF matching the flashed firmware.
  2. Select the debug probe and chip in Connection settings…, then connect.
  3. Browse Variables → Live Watch, expand fields and pointers, and plot fixed-address numeric values.
  4. Use Tune for firmware-declared parameters, Tasks for Embassy task inspection, and recording to capture plotted samples as MCAP or CSV.

For USB, select the serial port instead. Firmware must implement the tuning-studio-api server; its catalog works without an ELF. Ordinary SWD inspection needs no API integration. Execution timelines require the optional tuning-studio-trace recorder in firmware.

Live reads do not halt/reset the target and are not atomic snapshots. Live Watch is SWD-only; pointer-derived fields are not plottable yet. Traces use a bounded ring and can lose events if the host reads too slowly. The UI reports detected loss. USB exposes only firmware-declared values.

Develop from source

From the repository root:

npm ci
npm run tauri dev
# Build frontend assets before direct Cargo builds:
npm run build
cargo build -p tuning-studio

The desktop uses Rust/Tauri 2 and React/TypeScript. Its package includes a host library for Tauri wiring; reusable integrations should depend on tuning-studio-app instead.

Project and crate map · User guide · Release procedure

MIT licensed.