For brevity, the following acronyms will be used below:

<aside> 📢 For some reason, multi-line in mermaid inside Notion pages doesn’t work properly. Therefore “\n .” must be added at the end of each multi-line string.

</aside>

Main System

graph TB

start([GNC Startup])--"Wait 30 minutes [GNC-003]"-->subsys_start[DET, CTRL, NAV subsystems start]
subsys_start--"Startup DET subsystem"-->det[[DET Subsystem]]
subsys_start--"Startup CTRL subsystem"-->ctrl[[CTRL Subsystem]]
subsys_start--"Startup NAV subsystem"-->nav[[NAV Subsystem]]

DET Subsystem

graph

%% external to system]
sensors((Sensors))
sun_eph[(Sun Ephemeris)]

orb_pos[[Orbital Positioning Algs]]--"Computer orbital params [GNC-005]"-->orb_params[/Orbital Parameters/]
sensors-->orb_pos

att_det[[Attitude Determination Algs]]--"Estimate attitude [GNC-015]"-->est_att[/Attitude Est/]
att_det--"Estimate angular rates [GNC-016]"-->est_ang_rates[/Angular Rates Est/]
sun_eph-->att_det
sensors-->att_det

sens_fault_mntr[[Sensor Fault Monitor]]--"Notify of degraded \n capabilities [GNC-017] \n ."-->orb_pos & att_det
sensors-->sens_fault_mntr

sun_facing_alignment((Sun-Facing \n Alignment \n .))--"Allows calibration from the \n sun-facing mode [GNC-021] \n ."-->att_det

CTRL Subsystem

graph TB

actuators((Actuators))

%% entry points to detumbling
ctrl_start([CTRL Start])--"Detumbles from release [GNC-008]"-->detumb_ctrl
tumble_monitor[[Tumble Monitor]]--"Enables detumbling if angular \n rates exceed [GNC-WIP-001] \n ."-->detumb_ctrl

detumb_ctrl[Detumbling]

primary_ctrl[Primary CTRL]--"Reaches threshold accuracy \n to switch to secondary \n [GNC-WIP-003] \n ."-->secondary_ctrl
steve((STEVE))--"Provides attitude \n adjustments [GNC-012] \n ."-->secondary_ctrl[Secondary CTRL]

detumb_ctrl--"Angular rates drop below [GNC-WIP-001],\n go to idle attitude [GNC-022] \n ."-->idle_ctrl[Idle]

idle_ctrl--"Receives navigation directive"-->primary_ctrl & sun_facing_ctrl[Sun-Facing CTRL]
sun_eph[(Sun Ephemeris)]-->sun_facing_ctrl

reac_whl_desat[[Reaction Wheel Desat Algs]]--"Ensure reaction wheel momentum \n is within limits [GNC-WIP-002] \n ."-->actuators

actuators-->actuator_fault_mntr[[Actuator Fault Monitor]]
actuator_fault_mntr--"Notify of degraded \n capabilities [GNC-014] \n ."-->primary_ctrl & secondary_ctrl & sun_facing_ctrl

NAV Subsystem

graph TB

recv_comm([Receive Command])--"Ensure command is valid and reject \n unattainable commands [GNC-023] \n ."-->validate_comm[Validate Command]
orb_prop[Orbital Propagator] & att_calc[Attitude Calculator]--"Provide time and attitude \n needed for command \n ."-->validate_comm

validate_comm--"Sends command to control system"-->execute_comm[Execute Command]

execute_comm--"Acept cancellation [GNC-026]"-->cancel_comm([Cancelled])
execute_comm--"Notify of successful \n alignment [GNC-024] \n ."-->hold_comm([Hold Until Command Timeout])
execute_comm--"Notify of failure to align \n by timeframe [GNC-024] \n ."-->fail_comm([Failed])