
Ground Station and Telemetry System for Model Satellite Competition
This project is a comprehensive ground station and telemetry system designed for the Teknofest 2024 Model Satellite Competition. It features a ground station GUI developed with PySide6 for real-time data visualization and a Raspberry Pi-based satellite system for collecting and transmitting telemetry data. The system monitors crucial flight data, including altitude, pressure, temperature, and GPS coordinates, while also providing a 3D visualization of the satellite's orientation.
Key Features:
Real-time Data Visualization: The ground station displays live telemetry data through various graphs and line edits, allowing for immediate analysis of the satellite's performance.
Interactive Map: A Folium-powered map tracks the satellite's GPS location in real-time, plotting its trajectory with a polyline.
3D Orientation Display: A VTK-based widget provides a 3D visualization of the satellite's orientation (roll, pitch, and yaw), offering a more intuitive understanding of its behavior.
CSV Data Simulation: A separate GUI tool allows for simulating telemetry data from a CSV file, enabling thorough testing of the ground station's functionality without a live satellite connection.
Data Logging: All incoming telemetry data is logged to a CSV file for post-flight analysis and blackbox purposes.
Websocket Communication: The ground station and Raspberry Pi communicate via websockets, ensuring a reliable and real-time data link.
Technologies Used
Backend:
Python: The core language for both the ground station and the Raspberry Pi.
Raspberry Pi: The main computer of the science payload, handling sensor data acquisition and telemetry transmission.
Websockets: Used for real-time, bidirectional communication between the Raspberry Pi and the ground station.
Asyncio: Utilized for concurrent operations in the backend, particularly for handling websocket connections and sensor data streams.
Flask: Used to create a simple web server on the Raspberry Pi for streaming logs and media files.
Adafruit CircuitPython Libraries: Used for interfacing with various sensors like BMP390, TMP117, and BNO055.
Frontend (Ground Station):
PySide6: The core GUI framework used to build the ground station application.
Folium: Used for creating the interactive map visualization.
VTK (Visualization Toolkit): Employed for the 3D rendering of the satellite's orientation.
PyQtGraph: Used for plotting the real-time telemetry data in various graphs.