Weather balloons might seem like a simple and fun project, but to build one that can be easily located after landing can be more challenging than expected. Many weather balloon projects use two meter radios and APRS (Automatic Packet Reporting Systems) for in-flight tracking and recovery, requiring specialized equipment on the ground. Even with this equipment, the signal can be lost as the payload descends below line-of-sight.
Our solution was to build a weather balloon payload using GSM (Global System for Mobile Communications) for localization and recovery after landing when the payload is below line-of-sight but within cellular range. When the payload is above cellular range but within line-of-sight a 915mhz LoRa transceiver will be used for in-flight communication. The utilization of the GSM tower network also makes it possible to recover the data and some imagery from the flight before the payload is recovered so that even if the payload is inaccessible, the data can still be downloaded and published.
Initially, the idea was to use the Soracom IOT Starter kit for the GSM side of the project as well as two Moteino LoRa Arduino Transceiver boards for communication high altitude communication. This was later upgraded to two Feather M0 LoRa transceiver boards as the 32-bit processors provided more capability with minimal power consumption cost.
The Soracom IOT Kit comes with a USB Dongle, however this would make the Raspberry Pi Zero completely responsible for providing the GSM data, which means it would need to receive the GPS data from the Feather M0, meaning the Feather M0 would be a single point of failure. The goal of this project was to make a payload that was redundant and had the highest possible chance of recovery. For this reason it made more sense to use an on board Android phone for GSM communication. An old google phone such as a Nexus 4 or in our case a Nexus 5x can in some cases be purchased on ebay for as low as $20. The Android phone provided a complete set of sensors (Gyro, accelerometer, magnetometer, barometric pressure, temperature and GPS), an HD camera, as well as its own built-in battery allowing it to be completely independent of the rest of the weather balloon if everything else fails.
The android phone is programmed using Android Automate which is a block based scripting tool developed for the Android OS that allows you to automate just about anything within android without having to write an app from scratch. Multiple automate scripts can be enabled on one phone to provide multiple layers of functionality for the payload. In our case all we wanted to do was have the phone capture its current GPS location and transmit a SMS message to the Soracom Harvest API to be viewed by the ground station. We eventually put together a Soracom Lagoon dashboard to display the current location of the payload as well as its path over time.
Soracom Lagoon High Altitude Balloon dashboard displaying a live visualization on top and raw data below
Given that the android phone can operate completely independently, and we connected a gps module to the Feather M0 as well, this meant the only thing the Pi Zero had to deal with was capturing photos or videos using the Pi Camera. Rather than messing with a python script or some fancy nodejs solution, we decided to go with a simpler approach and wrote a 6 line bash script to do the one task we really cared about, taking videos. The script captures 5 minute video segments and stores them in a folder with a unix timestamp in the name for analysis later.
With the Pi Zero, Feather M0 and Nexus 5X android phone, the payload electronics are complete. On the ground station we plan to use another Feather M0 to receive LoRa data from the payload. The Feather M0 on the ground would be connected to a second android phone which would share any data it receives from the LoRa transceiver to the Soracom Harvest API, allowing Soracom Lagoon to be a central source of data for both payload provided data as well as ground station provided data.
The project addresses two UN SDGs (Sustainable Development Goals), in alignment with AMROC Fab Lab in which we're working:
- SDG 4 - Quality Education, providing an engaging educational platform to utilize the Soracom IOT Kit and related technologies to teach everything from weather related citizen science to data collection and management, and
- SDG 9 - Industry, innovation and infrastructure, providing an affordable, sustainable format for making this type of data acquisition and research affordable and accessible for more companies and organizations.