Sending a camera to the edge of space and recovering the wreckage from the children who found it
Send a digital camera as high as possible, have it take photos (and collect atmospheric data), and retrieve everything after it parachutes back down to earth.
With digital cameras and smartphones being ubiquitous, sending and retrieving a camera from space is a fairly common hobbyist project. This means there was plenty of useful reference material and planning software I could take advantage of.
My process was:
I wanted to achieve two goals: capture photographs, and collect atmospheric data. A maximum altitude of 90,000ft was my target, which guided much of the design.
I needed a compact digital camera with intervalometer functionality for taking photos at regular intervals. Thanks to the open-source CHDK (Canon Hack Development Kit) project, any Canon digital camera could be modified to work.
I used an old Canon Powershot SD1100 IS, which had the added bonus of having built-in image stabilization.
Installing CHDK allowed me to use the KAP UAV Exposure Control script, designed specifically for this purpose. Beyond intervalometer functionality, it can intelligently control shutter speed, aperture, and ISO settings to ensure sharp images with consistent exposure.
Since size wasn’t a major consideration, an Arduino Uno R3 worked fine for the microcontroller:
For measuring barometric pressure and temperature, I used a BMP085:
For measuring humidity I used a DHT22:
For recording the direction the camera was facing, I used a HMC5883L magnetometer / compass module:
For detecting acceleration (g-force, orientation), I used an ADXL345:
For power I used two 3.7V Li-Po batteries in series:
For GPS location tracking I used an old iPhone. I set up a program which responds to an SMS query with its current GPS coordinates. It would lose service after a few thousand feet of altitude, but this was not a problem as I only needed to ping for the payload location during descent.
At the target altitude of 90,000ft, ambient temperature was expected to be approximately -50C - cold enough to cause problems with some of the electronics. The camera, batteries, and most of the electronics need to be kept warm in an isolated compartment. To accommodate this, I designed the enclosure using foam - separating any components whose performance may suffer at low temperatures in a foil-lined section.
Just prior to launch I would throw in some glove warmers to keep this compartment warm.
The sensor modules need to be exposed to atmosphere, so they were housed outside the isolated compartment. So was the phone which needs cell reception in order to provide GPS coordinates.
Everything together in the enclosure, which would be taped together tightly before launch:
With the payload completed, I shifted focus to getting everything up into the air and back down again safely.
A radar reflector was needed to ensure that the balloon and payload were visible to passing planes. To return the payload quickly but safely, I needed a properly sized parachute, stowed appropriately so that it did not deploy before the weather balloon burst. And lastly the balloon needed to be appropriately sized to lift all of this, ensuring it reached the target height before bursting.
The layout was the following:
I used bright orange Mil-Spec 550 paracord for the tether/suspension line:
I made a lightweight radar reflector using cardboard and foil tape, approximately as large as the enclosure.
Tallying up the weights so far:
I was already at 624.32g, and still needed to add a parachute which could be up to 100g. The standard weather balloon used for a payload of 1-2lbs is the Kaymont HAB-600:
It was ideal for this project:
Using a balloon burst calculator, I calculated how much helium was needed in order to achieve the desired height of 90,000ft. The balloon should reach its burst diameter as close to 90,000ft as possible.
With 90.3 ft^3 (2557L / 2.56m^3) of helium, the balloon should rise for 81 minutes with an ascent rate of 5.65m/s, before bursting at 90,000ft.
Helium canisters come with a regulator, so I designed an adapter for connecting the neck of the balloon for filling:
I used ripstop nylon to build the parachute. This is commonly done in the amateur rocket community, and a useful guide is available.
To keep the payload from drifting too far from the launch site, I needed the payload to return to the earth as quickly as possible. I also wanted it to land without suffering significant damage. NASA typically uses 5m/s as a descent rate for their payloads, but I figured I should be able to get away with a descent rate of 6m/s.
Tallying up the final weights:
This is a total of 1304.32g. Using a parachute descent rate calculator, the following parameters were chosen to achieve a descent rate of 6m/s:
From 90,000ft this should result in a descent duration of 4589s (76.5 minutes).
Knowing the ascent rate, descent rate, total weight, and helium volume, I used flightpath prediction software to identify the ideal location (and conditions) for launch.
For convenience, I was aiming for a landing site less than 125km from the launch site. For safety I avoided airports, highways, and large cities.
I played with launch times to achieve the ideal flightpath:
With a launch location and time determined, I was ready to send the balloon up.
The helium was picked up:
The payload was assembled:
The parachute was prepared:
The camera was tested:
The balloon was inflated:
Time to launch:
Liftoff:
After a 2 hour journey up and down, I pinged for a GPS location one last time. The payload’s final resting place was the backyard of a farmhouse:
After a long drive, I found it:
How it ended up in the backyard was a fun story: some kids saw the balloon coming in for a landing in a nearby forest, and chased it down on their ATVs. They took it home, tore it apart, and started looking at the photos, thinking it may be of military origin. They were disappointed to learn the truth.
The balloon reached a maximum altitude of 66,000ft (20,140m), taking 1h4m to ascend and 37m to descend. This was short of the design goal of 90,000ft, which means the balloon was overinflated at launch.
Photos:
Flight Path:
Looking at the final moments, it is clear where the payload initially landed before being brought into the backyard:
Data: