The Challenge
When you send a payload to 30km altitude in a stratospheric balloon, you can’t physically touch it. You need to know in real time what’s happening — temperature, pressure, GPS coordinates, sensor readings — all transmitted back to the ground while the balloon is drifting over who-knows-where.
This is the core challenge we tackled in the ANCO-project and soffione-project.
The System Design
Our telemetry system has three main components:
- Onboard module: Raspberry Pi Zero with sensors (BMP280 for pressure/altitude, GPS module, IMU). Data serialized and transmitted via LoRa radio.
- Ground station: LoRa receiver connected to a laptop.
- GUI dashboard: Python + PyQt5 real-time dashboard displaying live sensor data, GPS track on a map, and altitude graph.
Key Technical Decisions
LoRa over 4G: We chose LoRa (Long Range) radio because it works at altitude where cellular coverage is unreliable. Trade-off: lower bandwidth, but we don’t need high bandwidth for telemetry.
Python for the GUI: Fast prototyping was essential. PyQt5 gave us a native-feeling GUI with matplotlib embedded for live plots.
Data logging: All data is simultaneously logged to CSV so we have a complete record even if the GUI crashes.
Lessons Learned
- Always add a heartbeat indicator — knowing the link is alive is as important as the data itself.
- GPS cold starts at altitude can be slow. Initialize the GPS before launch.
- Temperature extremes at stratospheric altitudes (-50°C) will kill lithium batteries. Thermal insulation is not optional.
Results
Both missions were successful. The soffione project achieved a maximum altitude of approximately 27km and the telemetry system maintained contact throughout the flight.