How asserthq/lorasat works
This workspace implements embedded satellite communications and control software, with MCU firmware, client and ground-station applications, reusable protocol layers, and hardware drivers. A principal workflow is a client communicating over LoRa through link/transport layers to satellite software, which supports command handling, ADCS, telemetry/beacons, and logging. The sampled entry points confirm radio/link/transport construction and several application roles; deeper dispatch and subsystem wiring is not shown, so uncertain calls are omitted. The supplied README describes an unrelated embedded app template and does not document these capabilities.
Main entry points: link/mod.rs Link protocol · transport/mod.rs Transport protocol · src/main.rs Satellite firmware · satellite/main.rs Satellite sandbox
Components 24
Applications
- MCU client
sandbox-mcu/src/bin/client/main.rs - Client device
client/src/main.rs - Ground station
sandbox-mcu/src/bin/gs/main.rs - PC simulator
sandbox-pc/src/bin/sat/main.rs - Satellite firmware
firmware/src/main.rs - Satellite sandbox
sandbox-mcu/src/bin/satellite/main.rs - Client behavior
sandbox-mcu/src/bin/client/client_device.rs - Ground task
sandbox-mcu/src/bin/gs/task.rs
Protocol and Domain
- Comm abstractions
core/src/comm/mod.rs - Link protocol
drivers/src/proto_impl/link/mod.rs - Transport protocol
drivers/src/proto_impl/transport/mod.rs - Messages and telemetry
core/src/entity/mod.rs - ADCS domain
core/src/adcs/mod.rs
Hardware Drivers
- LoRa radio
drivers/src/lora/mod.rs - Flash ring
drivers/src/flash/ring.rs - SD logger
drivers/src/sd/sdcard_logger.rs
Satellite Subsystems
- Comm subsystem
subsystems/src/comm/comm.rs - ADCS subsystem
subsystems/src/adcs/adcs.rs - Firmware ADCS
firmware/src/adcs.rs - Satellite orchestration
firmware/src/sat.rs - Satellite tasks
sandbox-mcu/src/bin/satellite/task.rs - Core logger
core/src/storage/logger.rs
Other components
- Client user
- Ground operator
Connections 37
- Client user → MCU client: uses
- Ground operator → Ground station: operates
- MCU client → LoRa radio: initializes
- MCU client → Link protocol: constructs
- MCU client → Transport protocol: constructs
- MCU client → Client behavior: runs
- Client behavior → Transport protocol: communicates through
- Client device → LoRa radio: initializes
- Client device → Link protocol: constructs
- Ground station → Link protocol: constructs
- Ground station → Transport protocol: constructs
- Ground station → Ground task: runs
- Ground task → Transport protocol: communicates through
- PC simulator → Comm subsystem: runs
- Satellite firmware → LoRa radio: initializes
- Satellite firmware → Link protocol: constructs
- Satellite firmware → Transport protocol: constructs
- Satellite firmware → Satellite orchestration: constructs
- Satellite firmware → Firmware ADCS: declares
- Satellite sandbox → LoRa radio: initializes
- Satellite sandbox → Link protocol: constructs
- Satellite sandbox → Transport protocol: constructs
- Satellite sandbox → SD logger: initializes
- Satellite sandbox → Satellite tasks: runs
- Link protocol → Comm abstractions: implements
- Transport protocol → Link protocol: wraps
- LoRa radio → Comm abstractions: implements PHY
- Comm subsystem → Comm abstractions: uses
- Satellite orchestration → Comm subsystem: uses
- Satellite orchestration → ADCS subsystem: uses
- Satellite orchestration → Messages and telemetry: handles
- ADCS subsystem → ADCS domain: uses
- Firmware ADCS → ADCS domain: uses
- Satellite tasks → Messages and telemetry: handles
- Satellite tasks → Core logger: logs through
- Core logger → Flash ring: stores via
- Core logger → SD logger: stores via