all projects
Ground Station and Telemetry System for Model Satellite Competition

Ground Station and Telemetry System for Model Satellite Competition

pythonrpiwebsocketsflaskpyside6foliompyqtgraph

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:

  1. 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.

  2. Interactive Map: A Folium-powered map tracks the satellite's GPS location in real-time, plotting its trajectory with a polyline.

  3. 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.

  4. 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.

  5. Data Logging: All incoming telemetry data is logged to a CSV file for post-flight analysis and blackbox purposes.

  6. Websocket Communication: The ground station and Raspberry Pi communicate via websockets, ensuring a reliable and real-time data link.

Technologies Used

  1. 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.

  2. 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.

Estimated reading time: 4 minutes