TEKNOFEST Model Satellite System
Raspberry Pi Zero 2W flight avionics and PyQt5 ground station orchestrating multi-sensor fusion, 3D attitude tracking, and live telemetry across TEKNOFEST 2024 finals.
This was the most complete hardware and software system I had built at the time.
I served as Lead Software Developer and Vice Captain of Team Dyaus for the TEKNOFEST 2024 Model Satellite Competition in Turkey. In a competition with over 100 international university teams, software reliability during launch and descent is mission critical: a dropped socket or frozen telemetry thread means losing the entire mission profile.
I designed and implemented both the flight avionics software running on the satellite payload and the operator ground station.
Flight payload architecture (Raspberry Pi Zero 2W)
The satellite payload was powered by a Raspberry Pi Zero 2W running Python and asyncio, coordinating sensor fusion, mechanical actuators, and video transmission:
1. Multi-sensor data fusion
The avionics stack integrated multiple I2C and serial sensors:
- Adafruit BMP390: high-precision barometric pressure sensor for real-time descent rate and altitude computation.
- Adafruit TMP117: precision digital temperature sensor monitoring payload thermal thresholds.
- Adafruit BNO055: 9-DOF absolute orientation sensor producing fused Euler angles (roll, pitch, yaw) and quaternions.
- DS3231 RTC: battery-backed real-time clock ensuring consistent timestamps across restarts.
- RP2040 coprocessor: secondary Raspberry Pi Pico connected via UART (
/dev/serial0) handling GPS coordinate parsing, secondary barometric redundancy, and battery voltage ADC monitoring.
2. Mechanical filter actuation
The payload included a motorized optical filter mechanism:
- Driven by a Parallax Feedback 360-degree High Speed Servo.
- Controlled via the
pigpiohardware PWM daemon on GPIO 13, with closed-loop angular position feedback read on GPIO 6.
3. Distributed WebSocket and streaming servers
To isolate high-bandwidth video from mission-critical telemetry, the payload separated networking into discrete services:
- Port 9001: high-frequency sensor telemetry stream.
- Port 9002: mechanical filter status and feedback.
- Port 9003: secondary transmitter channel.
- Port 9004: bidirectional command receiver for remote triggers (such as motor deployment and calibration commands).
- Port 8000: live MJPEG video stream captured from the Raspberry Pi Camera Module V2.
- Port 5000: Flask web dashboard exposing telemetry logs, packet counters, and backup CSV downloads.
Ground station and flight simulation
The ground station operator software visualized mission progress in real time:
- Built with Python and PySide6/VTK, featuring a 3D model that mirrored the satellite's physical roll, pitch, and yaw in flight.
- Plotted dynamic telemetry graphs: altitude curves, vertical descent velocity, thermal trends, and battery discharge rates.
- Integrated Folium mapping to track GPS coordinates against drop-zone boundaries.
- Tracked autonomous flight states: Ready to Flight, Ascent, Descent, Release, and Recovery, triggering auditory buzzer alarms on state transitions.
- Included a custom CSV flight simulator that played recorded test flights back through the network layer, allowing our team to stress-test UI performance and packet-drop handling before arriving at the launch site.
Why it stayed
Our team finished 9th out of 100+ international teams at TEKNOFEST 2024.
Beyond the ranking, this project shaped how I think about systems engineering. It combined embedded hardware interfaces, multi-threaded networking, telemetry logging, and human-facing operator tools under strict competition deadlines and physical constraints.