How issuiuc/midas-software works
MIDAS-Software is the Illinois Space Society’s rocket-avionics software: flight firmware gathers sensor data, runs flight-state and guidance logic, and supports actuation, logging, and telemetry. Ground-station software receives radio telemetry and exposes it to consumers while supporting command traffic; separate utilities simulate flight and retrieve onboard logs. The tree and excerpts support the main entry points and several subsystem capabilities, but not every internal call among flight modules, so those links are left out.
Main entry points: systems.cpp Flight systems · main.py Telemetry combiner · silsim/main.cpp Simulation entry · feather/main.cpp LoRa ground radio
Components 24
Flight avionics
- Flight startup
MIDAS/src/hardware/main.cpp - Flight systems
MIDAS/src/systems.cpp - Sensor drivers
MIDAS/src/hardware - Sensor data
MIDAS/src/sensor_data.h - Flight state logic
MIDAS/src/finite-state-machines/fsm.cpp - Guidance filters
MIDAS/src/gnc - Pyro control
MIDAS/src/hardware/Pyro.cpp - Flight log sink
MIDAS/src/hardware/SDLog.cpp - Telemetry packet
MIDAS/src/telemetry.cpp
Ground telemetry
- LoRa ground radio
ground/src/feather/main.cpp - Dual-radio station
ground/src/feather_duo/main.cpp - Telemetry combiner
ground/gss_combiner/main.py - Radio telemetry threads
ground/gss_combiner/util/mqtt.py - MQTT transport
ground/gss_combiner/util/mqtt.py
Flight simulation
- Simulation entry
MIDAS/src/silsim/main.cpp - Rocket simulation
MIDAS/src/silsim/simulation/simulation.cpp - Emulated sensors
MIDAS/src/silsim/emulated_sensors.cpp - Simulation log sink
MIDAS/src/silsim/FileSink.cpp - HIL serial stream
MIDAS/src/hilsim/stream/main.cpp
Log access
- eMMC log utility
eMMC/src/main.cpp
Other components
- Rocket sensors
- Ground serial client
- Telemetry consumers
- Onboard log files
Connections 25
- Rocket sensors → Sensor drivers: provides readings
- Flight startup → Flight systems: starts systems
- Flight systems → Sensor data: maintains state
- Flight systems → Flight state logic: runs state logic
- Flight systems → Guidance filters: runs filters
- Flight systems → Pyro control: controls pyros
- Flight systems → Flight log sink: writes flight logs
- Flight systems → Telemetry packet: produces telemetry
- Sensor drivers → Sensor data: fills readings
- Telemetry packet → LoRa ground radio: radio packets
- LoRa ground radio → Ground serial client: prints serial data
- Ground serial client → LoRa ground radio: sends commands
- Dual-radio station → Telemetry consumers: prints telemetry
- Telemetry combiner → Radio telemetry threads: creates threads
- Telemetry combiner → MQTT transport: creates transport
- Radio telemetry threads → Telemetry combiner: forwards packets
- Telemetry combiner → Telemetry consumers: broadcasts telemetry
- Telemetry consumers → Telemetry combiner: submits commands
- Simulation entry → Rocket simulation: steps simulation
- Simulation entry → Emulated sensors: attaches sensors
- Simulation entry → Flight systems: starts flight logic
- Flight systems → Simulation log sink: writes simulated logs
- HIL serial stream → Ground serial client: serial protocol
- Onboard log files → eMMC log utility: reads selected log
- eMMC log utility → Ground serial client: streams log bytes