How issuiuc/midas-base works
MIDAS-BASE is documented as a combined avionics ground-station repository; the sampled implementation here is its GSS Combiner. Its main workflow selects booster, sustainer, and relay serial sources, reads and processes telemetry, filters and combines packets, and publishes stage data through MQTT. MQTT control messages can be forwarded to telemetry devices, while the GUI provides device selection and session controls. A separate standalone mode and an MQTT-driven GPS map are also present. The root README gives little architecture detail, and several source excerpts are partial, so uncertain wiring is omitted.
Main entry points: main.py Combiner Entrypoint · mqtt.py Serial Telemetry Threads · combiner.py Stage Combiners · standalone.py Standalone Mode
Components 12
Telemetry Ingest
- Serial Telemetry Threads
gss_combiner/util/mqtt.py
Combining & Publish
- Stage Combiners
gss_combiner/util/combiner.py - MQTT Transport
gss_combiner/util/mqtt.py
Ground Station Control
- Combiner Entrypoint
gss_combiner/main.py - Device GUI
gss_combiner/gui_main.py - Standalone Mode
gss_combiner/standalone.py
Monitoring & Map
- Logging & Health
gss_combiner/util/logger.py - GPS Map Subscriber
gss_combiner/util/mappy.py - Map Output
gss_combiner/util/mappy.py
Other components
- Operator
- Serial Devices
- MQTT Broker
Connections 21
- Operator → Device GUI: operates
- Device GUI → Combiner Entrypoint: launches session
- Operator → Combiner Entrypoint: configures sources
- Combiner Entrypoint → Serial Telemetry Threads: creates threads
- Combiner Entrypoint → Stage Combiners: creates stage filters
- Combiner Entrypoint → MQTT Transport: starts transport
- Combiner Entrypoint → Logging & Health: creates streams
- Serial Devices → Serial Telemetry Threads: serial packets
- Serial Telemetry Threads → Stage Combiners: enqueues processed packets
- Stage Combiners → MQTT Transport: publishes filtered packets
- MQTT Transport → MQTT Broker: publishes and subscribes
- MQTT Broker → MQTT Transport: control messages
- MQTT Transport → Serial Telemetry Threads: forwards device commands
- Serial Telemetry Threads → Serial Devices: writes commands
- Serial Telemetry Threads → Logging & Health: records packet activity
- Stage Combiners → Logging & Health: records filter activity
- Operator → Standalone Mode: starts single-port mode
- Standalone Mode → Serial Devices: reads and writes
- Standalone Mode → MQTT Broker: publishes and subscribes
- MQTT Broker → GPS Map Subscriber: GPS telemetry
- GPS Map Subscriber → Map Output: adds markers