How siddharthathula/cubesat-mission-control works
This repository is a CubeSat telemetry and mission-control system. Its main workflow acquires onboard sensor readings, sends them over 433 MHz LoRa, exposes received telemetry over HTTP, and renders it in browser dashboards; control commands travel back through the ground station. The README also documents OpenMCT visualization, ESP32-CAM video, GPS/globe views, diagnostics, exports, and propulsion controls. The graph uses the sampled receiver, dashboard, and OpenMCT plugin sources; unsampled firmware links are included only where the README documents them.
Main entry points: main.cpp HTTP API · main.js Dashboard Logic · cubesat_transmitter.ino CubeSat Transmitter · index.html Mission Dashboard
Components 13
Flight Segment
- Sensor Suite
firmware/cubesat_transmitter.ino - CubeSat Transmitter
firmware/cubesat_transmitter.ino - Servo / Propulsion
firmware/cubesat_transmitter.ino
Ground Station
- LoRa Receiver
firmware/ground_station_pio/src/main.cpp - Packet Parsing
firmware/ground_station_pio/src/main.cpp - Latest Telemetry
firmware/ground_station_pio/src/main.cpp - HTTP API
firmware/ground_station_pio/src/main.cpp
Mission Dashboards
- Mission Dashboard
custom_dashboard/index.html - Dashboard Logic
custom_dashboard/main.js - OpenMCT Plugin
ground_station/openmct_custom/cubesat-plugin.js
External Integrations
- NASA OpenMCT
- ESP32-CAM Stream
Other components
- Mission Operator
Connections 15
- Sensor Suite → CubeSat Transmitter: provides readings
- CubeSat Transmitter → LoRa Receiver: sends LoRa packets
- LoRa Receiver → Packet Parsing: dispatches packets
- Packet Parsing → Latest Telemetry: updates telemetry
- HTTP API → Latest Telemetry: reads telemetry
- Mission Operator → Mission Dashboard: opens dashboard
- Mission Dashboard → Dashboard Logic: loads interface
- Dashboard Logic → HTTP API: fetches telemetry
- Dashboard Logic → ESP32-CAM Stream: loads video stream
- Dashboard Logic → HTTP API: posts controls
- HTTP API → CubeSat Transmitter: sends LoRa uplink
- CubeSat Transmitter → Servo / Propulsion: applies commands
- NASA OpenMCT → OpenMCT Plugin: installs plugin
- OpenMCT Plugin → HTTP API: polls telemetry
- NASA OpenMCT → Mission Operator: shows telemetry