Weather Balloon with Real-time Tracking and High-Altitude Image Capture.

While primarily a software company, occasionally we get the opportunity to work on the electronic side of a project and sometimes even get the chance to do a little fabrication. Such was the case for the Weather Balloon with Real-time Tracking project that was done for a local high school.

Building and launching the balloon

Building the weather balloon took a fair amount of effort, as it was built from scratch without a kit. We chose to build the balloon using an insulated Styrofoam box with a small window cut in it for the camera. Due to FAA regulations, we also had to attach a radar reflector which was made from cardboard and coated in aluminum foil. The entire balloon was built such that it would be easily broken apart if hit by aircraft, per FAA regulations.

On the internals side, we installed a 10 watt APRS radio beacon made by Byonics, which was attached to an array of 8 AAA lithium batteries, due to its high current pull while transmitting. The GPS module used was a special model acquired from Adafruit Industries that allowed usage over 60000 feet, as long as the speed was below 1000 knots (a DOD ballistic missiles restriction, AKA COCOM Limits, prevents GPS from working if both of these conditions are met, although many manufacturers switch on one or the other). The serial output from the GPS was split between the APRS beacon and a specially modified Raspberry Pi model A, that we installed a buck–boost converter on, in order to improve efficiency of the power supply and to work with its individual lithium ion battery pack.

The Raspberry Pi, programmed in Python, was hooked to a camera module over CSI (Camera Serial Interface) and mounted with a fish-eye lens to the window in the balloon. We used a 3D printer to make a number of different parts in order to mount the Raspberry Pi, the camera and the lens.  The Pi was also hooked up to a dangling temperature probe and a cutoff switch, allowing it to be safely shut down when recovered. The camera was programmed to take approximately one picture per minute and log the GPS location and outside temperature to the file as it flew.

Map of balloon's flight

The balloons flight was tracked by using the ham radio system called APRS (Automatic Packet Reporting System), and a website called, which takes information fed to a network of receivers and then plots the location information on a google earth map. You can see the balloons trajectory as well as altitude in the image below. The balloon flew much farther than was originally intended, but due to over spec’ing of the batteries, the transmitter continued to function for around 4 hours.

Images from the flight of the balloon

The balloon flew much higher and longer than initially intended partially due to the better-than-expected quality of the balloon and to the fact that the balloon got caught in the jet stream at one point, causing it to move at over 100 mph. Once we recovered the balloon, the pictures were retrieved from the internal camera. You can see when the balloon pops, at roughly 2:40 minutes, as the camera turns sideways as the balloon enters free fall. Due to the thin atmosphere at the burst point (94,000 feet), the parachute does not deploy until much later, when there is enough air to allow it to open and glide down to the ground.

Recovering the balloon

Recovering the balloon posed a challenge as the battery died due to its long flight, roughly a mile above the ground. However, by extrapolating from the balloon's last known position, its flight path and the weather conditions, we were able to pinpoint its landing location (33.793659, -105.179001, the only square of public land in 400 sq. miles of ranches!) and recover the balloon (only an 8-9 hour round trip!). The balloon remained air and water tight through its landing and all components were functional, short of half of the antenna which pulled away on landing from its strain relief.