How ubcaerodesign/thrust-stand-v3 works
AeroThrust V3 is a desktop ground station for operating an electric propulsion test stand. Operators connect to a simulator or hardware, tare and calibrate sensors, control throttle manually or with automated sweeps, monitor live telemetry and safety status, and record runs for SQLite storage and CSV export. The graph follows the documented UI-to-API workflow into backend services and transport; sampled source supports key call paths, while several UI and router details are documented but not excerpted.
Main entry points: App.tsx Test stand workspace · main.py FastAPI application · api.ts HTTP API client · connection_manager.py Connection manager
Components 26
Operator desktop
- Test stand workspace
frontend/src/App.tsx - Telemetry stream hook
frontend/src/hooks/useTelemetryStream.ts - Connection and throttle controls
frontend/src/components/controls/ConnectionSlider.tsx - Load-cell calibration
frontend/src/components/controls/CalibrationModal.tsx - Current limits
frontend/src/components/controls/CurrentLimitsModal.tsx - Emergency stop UI
frontend/src/hooks/useKeyboardEStop.ts - Telemetry instruments
frontend/src/components/instruments - Telemetry plots
frontend/src/components/plots/TelemetryPlot.tsx - Sweep controller
frontend/src/components/controls/SequenceController.tsx - Session recorder
frontend/src/components/controls/SessionRecorder.tsx - HTTP API client
frontend/src/services/api.ts
Backend API
- FastAPI application
backend/app/main.py - Control endpoints
backend/app/routers/control.py - Telemetry endpoint
backend/app/routers/telemetry.py - Session endpoints
backend/app/routers/session.py - Sequence endpoints
backend/app/routers/sequence.py
Control and hardware
- Connection manager
backend/app/services/connection_manager.py - Safety watchdog
backend/app/services/safety_watchdog.py - Sweep execution
backend/app/services/sequence_service.py - Binary protocol
backend/app/core/protocol.py - Serial, TCP and virtual transports
backend/app/hal
Test runs and data
- Run storage and CSV export
backend/app/services/storage_service.py - SQLite run database
- CSV export files
Other components
- Operator
- Physics simulator
sim/virtual_stand.py
Connections 34
- Operator → Test stand workspace: operates
README.md - Test stand workspace → Telemetry stream hook: reads telemetry
frontend/src/App.tsx - Test stand workspace → Connection and throttle controls: renders controls
frontend/src/App.tsx - Test stand workspace → Emergency stop UI: registers hotkey
frontend/src/App.tsx - Test stand workspace → Telemetry instruments: renders readings
frontend/src/App.tsx - Test stand workspace → Telemetry plots: renders plots
frontend/src/App.tsx - Test stand workspace → Sweep controller: renders sweeps
frontend/src/App.tsx - Test stand workspace → Session recorder: renders recorder
frontend/src/App.tsx - Test stand workspace → Load-cell calibration: opens calibration
frontend/src/App.tsx - Test stand workspace → Current limits: opens limits
frontend/src/App.tsx - Telemetry stream hook → HTTP API client: fetches status
- Connection and throttle controls → HTTP API client: sends commands
- Load-cell calibration → HTTP API client: tares channels
- Current limits → HTTP API client: sets thresholds
- Emergency stop UI → HTTP API client: requests stop
- Telemetry plots → Telemetry stream hook: plots telemetry
- Sweep controller → HTTP API client: starts sweeps
frontend/src/components/controls/SequenceController.tsx - Session recorder → HTTP API client: manages runs
frontend/src/services/api.ts - HTTP API client → FastAPI application: HTTP requests
frontend/src/services/api.ts - Telemetry stream hook → FastAPI application: streams telemetry
- FastAPI application → Control endpoints: registers routes
backend/app/main.py - FastAPI application → Telemetry endpoint: registers routes
backend/app/main.py - FastAPI application → Session endpoints: registers routes
backend/app/main.py - FastAPI application → Sequence endpoints: registers routes
backend/app/main.py - FastAPI application → Connection manager: creates manager
backend/app/main.py - FastAPI application → Run storage and CSV export: starts storage
backend/app/main.py - Connection manager → Serial, TCP and virtual transports: selects transport
backend/app/services/connection_manager.py - Serial, TCP and virtual transports → Binary protocol: encodes frames
backend/app/hal/serial_transport.py - Connection manager → Safety watchdog: starts watchdog
backend/app/services/connection_manager.py - Connection manager → Sweep execution: creates sequencer
backend/app/services/connection_manager.py - Connection manager → Run storage and CSV export: records samples
backend/app/services/connection_manager.py - Connection manager → Physics simulator: connects TCP
- Run storage and CSV export → SQLite run database: writes runs
backend/app/services/storage_service.py - Run storage and CSV export → CSV export files: exports samples
backend/app/services/storage_service.py