Inspiration: One of my favorite fields of science is space science and engineering. I wanted to create a project that combines these two concepts while solving a real world problem. I did some research and read about CubeSats, and found that university students often do not have access to the software systems that come with these nanosatellites because of the price. This inspired me to create a cost-effective software system for monitoring CubeSats in low-Earth orbit.

What it does: It is an automated satellite health monitoring dashboard that simulates real-time telemetry for a CubeSat in low Earth orbit, and automatically watches that data for problems, without needing any manual checking.

How I built it: I built this in Python using Tkinter for the GUI, with a rule-based automated detection engine that checks six simulated telemetry metrics every cycle and classifies problems by severity. Custom visual assets and Pillow for image handling were layered on top of the core simulation logic to create a mission control dashboard.

Challenges I ran into: One significant challenge was getting manually-set values to stick. When I used the Set Value feature to set a metric to an exact number, the simulation's random fluctuation logic would immediately drift it away on the very next cycle, making precision a challenge. I solved this by adding a "skip_drift" system, which is a set of flags that tell the simulator to skip randomizing a specific metric just once, right after it's manually set, before returning to normal automatic drift afterward. This let me preserve both the automated feel of the simulation and the ability to precisely control values for demonstration and testing purposes.

Accomplishments that I'm proud of: I'm proud of getting a fully working automated pipeline (detection, scoring, logging, and reporting) running end-to-end with no manual data interpretation required. I'm also proud of the custom-designed interface, which made the project feel like a real mission control tool.

What we learned: I learned how much small implementation details matter in an automated system, like the "skip_drift" fix, where a minor timing issue could completely undermine the reliability of manual testing. I also learned a lot about structuring a Tkinter application with multiple screens and live-updating widgets working together smoothly.

What's next for CubeSat Telemetry Dashboard: Next steps would include replacing the simulated telemetry with real sensor data feeds, so the same automated detection and reporting pipeline could monitor an actual CubeSat rather than a simulation. I'd also like to expand the "auto root-cause hinting" idea I thought of early on, where the system explains why an anomaly likely occurred, not just that it happened.

Built With

  • gui
  • pillow
  • pip
  • python
  • tkinter
  • vscode
Share this project:

Updates