Friday, December 4, 2009

SPOC-1 (Space Payload Onboard Camera)

Don't want all the technical details? Jump to photo albums:
SPOC-1 : The Photos from Space
SPOC-1 : The Build and Retrieval Photos

On August 23, 2009 we released a 1500g weather balloon tethered to a digital camera into the stratosphere from Vulcan, Alberta.
Our goal was to see if a camera could be hoisted up into the air.

It all started 8 months before…

Weather and sounding balloons are capable of reaching incredible heights, more than 3 times higher than commercial jets. At that height, the black of space, the thin blue layer of the atmosphere, and curve of the Earth are all clearly visible. As well, sounding balloons have the lift potential to hoist up a payload of a few pounds. However I discovered I wasn’t the only person to dream this idea up and a few others around the world have been taking high altitude photos of various qualities over the years. It appeared to be a budding hobby and it was decided that we would join other pioneers in space-photography. Our mission became not only to retrieve the payload and photos successfully but we wanted to document the information we learned and build a site to help others achieve their own high altitude photos.

Actual photo taken more than 100,000 feet above Vulcan, Alberta

Within days, we began receiving kits and various pieces of hardware in the mail. The first of which was an Arduino, still one of the coolest gadget-toys I’ve ever played with. The arduino is a microcontroller with several analog and digital pins that can be used to connect almost anything to anything. It took less than a month to build the Arduino kit with it’s protoshield, attach it to my old Canon Powershot A80 camera, control the shutter to take a photo every 20 seconds, work a cheap $10 servo motor to tilt the camera, constantly read the current GPS coordinates from an old Garmin eMap of mine, and push updates through a 900mhz radio modem to a receiving laptop up to 64km away.

Camera and Tilt System

The camera was my first digital camera I bought way back in the early 2000’s… a Canon Powershot A80. Using old equipment reduced my anxiety of losing the whole thing. The old Powershot had several advantages:

1) It holds 4xAA batteries so it can take a great deal of photos and be powered on for a lengthy amount of time.

2) The LCD (which consumes a lot of battery power) can be flipped around and turned off thereby greatly extending the battery life.

3) The flash on the camera is broken which didn’t matter since you don’t want to use the flash on this type of photo.

4) There were detailed photos on the web demonstrating how to gracefully take this camera apart.

5) It was old (free) equipment!

2 tiny wrapping wires were soldered to the shutter button. The next challenge was getting the wires into the arduino breadboard so it could be controlled automatically. Not only had I never really soldered before but I also didn’t know the difference between a resistor and a transistor.The camera would need to be controlled with both which would close an external circuit when a small voltage is applied to the base pin of the transistor. It took a few nights of experimenting but eventually figured it out (and fried a couple transistors in the process). The arduino was now an amateur photographer and could take photos at will.

While browsing one day, I came across a $10 servo in a sale bin. This enabled the camera to be tilted, ensuring we got photos of the ground, the horizon, and the sky above. A camera harness was built from some steel wrap used to hold home duct vents and conduits in place. Getting the arduino to control the servo motor was a piece of cake and it worked great while testing it in the comfort of home. Later I wondered if this harness and servo and the tiny wrapping wires could entangle or snag or fail by some other means while in transit through the winds and frigid temperatures of the tropopause. Eventually the servo was removed to simplify the system and reduce the chances of something going wrong.

Tracking System #1

The second mission objective was to take photos of the Earth from the stratosphere. The primary mission objective, however, was to retrieve the payload. After all, what good are the photos if we never got to see them? I had an old gps I could stand to lose but needed a way to communicate with it while it was a fair distance away. I knew a fellow scout leader by the name of Ian Purdy worked in the field connecting various equipment to monitoring stations… at the next cub meeting he surprised me with a “sure, I have some 900mhz radio modems you could use”. 900mhz! That is within the ISM band which does not require a license to operate within. Ha, we’re in business. Or so I thought…

With the radio modem and GPS in hand, I began the task of connecting it to the arduino. It was an interesting moment when I went to cut the GPS serial cable to expose its wires. I reflected on the fact that hundreds of bike trips, kayak & canoe trips, hiking trips, and many family vacations had been recorded by this GPS and transmitted in millions of 1’s and 0’s across this cable to my PC in the past 10 years. Oh well, enough sentiments, I snipped the cable, stripped back the housing, and bagan hooking it all up..

First challenge was the arduino uses TTL voltages and both the GPS and modem use RS-232 voltages. Connecting them directly would fry the arduino. A MAX232 chip was needed to interface all 3. I uncased some old electronic equipment until I found one. It was de-soldered from an old satellite receiver and popped into the arduino’s breadboard. It needed a few capacitors to work properly but got it all working that afternoon. The arduino could now see the NMEA sentences being spit out from the GPS! An arduino library (tinyGPS) was used to parse the NMEA sentences to determine current altitude, latitude, and longitude. The GPS was another big unknown. Most GPS units are programmed to stop reporting positions when they exceed 60,000 feet. This is an export regulation that is sometimes required. However a few GPS units are known to still function above these altitudes. The Garmin eMap was an unknown as one never been to that altitude before. However it seemed to be closely based on the same chips that ran the eTrex units which were known to function well at any altitude. Plus it was the only working GPS unit I had on hand. It was worth a shot.

After thinking about this tracking system for awhile I realized there were several potential problems. Could the radio modem function well over the required distances? Will the GPS function over 60,000 feet? If it stops functioning at that altitude, what will happen when it drops back down to Earth? When it does, will we just happen to be close enough to pick up the signal? What if the arduino encounters a condition it doesn’t understand and stops processing? This would not only stop taking photos it would lose the payload too. I couldn’t risk all the mission objectives with this system and again scaled it back. The gps and radio modem were removed from the arduino and connected directly together. Then at least if the arduino stops working, we can retrieve the payload and try again. And if the GPS stops working, it won’t cause the arduino to stop its photography experiment. Plus this had the added benefit of the system transmitting raw NMEA data to Earth so we could use any of dozens of great Windows GPS apps to track the balloon. But obviously a second tracking system was still required.

Where to launch?  There was no better place for SPOC-1 than Vulcan, Alberta.

Tracking System #2

With so many of my friends thinking this project was impossible I truly didn’t expect the response I got from George Baumer of I had sent GPSCity a note requesting a loan of equipment to help track the location of the balloon for this project. His reply was not only encouraging, he sounded downright enthusiastic about it. Within a few days of our initial discussions he had appropriated a Spot Messenger, created an online account for me to track its location, and had the device transferred to the Calgary office of for me to pick up. This device is really cool because it not only calculates its position based on the GPS satellite network, it also transmits this position to the GlobarStar satellite network which is linked into the more terrestrial Internet. What this means is it can relay its position almost anywhere in the world and doesn’t rely on the cell phone network which is susceptible to poor or no reception. With the Spot Messenger, you simply go to a website and view the device’s location on a map which is updated every 10 minutes. Couldn’t be simpler! However the question of whether this device would work above 60,000 feet was still an unknown. So onto Tracking System #3.

Tracking System #3

Having just bought a new Android-based HTC phone, I experimented with phone-tracking apps. They tended to work well but was unsure about sending my brand new phone into space. A chat later that week with a guy from work led to him lending me his older Windows Mobile-based HTC TyTn-2 phone. That would certainly do the trick! I installed several GPS tracking apps on it; 4 to be exact. Google Latitude, Trackme, and 3dtracker. Plus a cool open-source app called RemoteTracker that also allows you to perform remote diagnostics and functions on the phone via simple text messaging. It worked great – I could reboot the phone, check the battery status, get the current GPS location, and even query what cell phone tower it was utilizing at the moment.

Payload Capsule System

As with many other high altitude balloon projects extruded polystyrene was used. It’s the same stuff that’s used as pink insulation board. My wife and I hot glued a box together, built little compartments for all the devices, and lined the layers with cuttings from a foam camping mattress. It was light, tight, and compact. But not airtight, and that was on purpose. At high altitude the low air pressure of the stratosphere would blow the thing apart if it was airtight. We encircled it with reflective tape to hopefully catch the glint of the suns rays making it easier to spot. A hole was cut for the camera and its focusing beam, and another hole for the 900mhz radio modem antenna. Nylon cord was used to angle the box downwards at about a 15 or 20 degree tilt so we would get photos of the horizon, not just the sky or the Earth. These shroud lines were then tied to a round metal key ring. The key ring was tied with about 20 feet of more cord to the parachutes shroud lines. The parachute had a nifty loop on top that my wife Natalie sewed on and that was strung with another 20 feet of nylon cord that would eventually be attached to the balloon itself.

Ascent System

The ascent system was simply a 1500g sounding balloon from Kaymont. We significantly exceeded the recommended payload which was recommended to be 1050g. Our payload (including cord, parachute, payload, and batteries - everything right down to the key ring) was 2086g. As well it was rated for 1280g of free lift. I accidentally over inflated the balloon so it had about 1580g of free lift. Total lift including the payload, free, and balloon weight was about 5200g. Knowing that 1m^3 of helium can lift approx 1kg, we must have used over 5m^3 of helium.

Descent System

The descent system was a 48” bright red parachute with a little nylon loop sewn into the very top pinch of the parachute material (one of Natalie’s many great contributions to the project). When the balloon popped it would stop pulling the payload train upward and begin falling back to Earth. As it fell, the parachute would inflate as it reached the denser parts of the atmosphere.

Payload Cutdown System

The balloon latex weighs over 3 lbs and would prefer not to drag it’s remnants down after it pops. The weight is more that the 48” parachute is rated for. Furthermore, the burst balloon and its cord will tend to wrap in the parachute on descent causing the entire thing to tumble and twist through the air. If this happens impact could be closer to 60 km/h instead of the 20 km/h I was hoping for.

So I took apart an old flashlight, a bit of wire, a bic pen I sawed in half, some big ball bearings that fell out of a tool, and short bit of nichrome wire (similar to the wire in your toaster) and MacGyver’d up a circuit that would make the nichrome wire red hot when it was flipped upside down. This was intended to burn through the nylon cord and detach the balloon remnants once it popped and dropped upside down. Unfortunately it worked only half the time so after spending the entire day on it, it was removed and we decided to hope for the best. I also had visions of this thing remaining red hot and torching some farmer’s field. (And am I ever glad we removed it… while searching for the payload in a field we came across a fire truck that was responding to a report of smoke in the area… I would have panicked and assumed we had caused it.)

Temperature Logging System

At the last second I threw in --literally-- a small National Geographic digital temperature gauge from Wal-Mart. It was tiny and had a max/min button so we could see how cold it eventually got inside the payload capsule. Not fancy but it worked and was cheap.

Power System

All devices, with the exception of the cellphone and temperature monitor, were powered by Energizer Lithium Advanced AA batteries -- 14 in total. This lithium composition has the best power-weight ratio of any battery type. Most power, least weight, smooth power curve (doesn’t peak and degrade), and functions well in extreme cold. The Energizer Lithium Ultimates would have been even better but they were way more expensive. The arduino and radio modem were both powered from a single 8xAA battery holder I picked up the weekend before the launch. The cellphone relied on its own lithium-polymer rechargeable battery which worked great. The temperature sensor has its own tiny lithium coin-style battery.

Inflation System

We got very lucky with the helium. The Friday evening before the launch I drove to Superior Gases and Supplies of Calgary, Alberta to rent a tank of helium for about $200. I had no idea these tanks were so huge. Anyway I was chatting with the staff describing the project and asked if they could do a better discount. Turns out they had a returned tank that had 1800 PSI of helium pressure left. We calculated that to be almost 6 m^3 which should be enough. Still I worried it wouldn’t be quite enough due to miscalculation and everything would have to be aborted at the launch site. But it was free and I couldn't resist, especially with the amount already invested in this project. I rented a high pressure regulator (the standard rubber balloon inflator thingy would have taken hours to siphon off that amount of helium). They also provided a high pressure hose complete with the proper nut to attach it to the regulator. I stopped by home depot on the way home and scavenged a $2 piece of PVC conduit. I then inserted the flexible pressure hose about 7 inches into the PVC tube and sealed it in there with kitchen silicone. It needed a round piece of cardboard stuck in there too to keep the silicone from running down the inside. The next day the silicone “plug” could slide back and forth – which was no good. So I got out a few tubes of epoxy glue, mixed them all together, and filled up the top 1” of the tube with epoxy. By the time of the launch it was solid. The hose did not move within the tube and it appeared air-tight. The PVC tube could be inserted into the balloon neck, zip tied, and used to inflate the balloon.


After putting all these devices together and spending many weeks designing and building it all I needed to know how well it would work. It was as cold as -90c up there. UV blasting away at the payload. Extremely low air pressure (less than 99.9% of sea level atmospheric pressure). High altitude turbulent winds. Most GPS’s are programmed not to work at those altitudes. So many things to think about and very few we could actually test on the ground. Most of this was going to happen through the “by gosh, by golly” method. I did however send my son out on several excursions around the neighborhood with various devices and components while I tracked him from home. One day my wife came home asking why so much food had been taken out of the deep freeze in the garage. I said it was because there wasn’t enough space in there for all the cellphones and gps’s and other equipment. At that moment I wonder what she thought of this project. What I was attempting to do was test how the devices work in the coldest temperatures I could subject them to. The thermometer only went to -25c but all the devices worked ok in there for 4 hours. When I brought them out they immediately began transmitting location information. This kind of testing went on for a couple weeks as the launch date grew closer.

The Launch

As we arrived at the Vulcan tourist center and began our quest for a launch location (it had been a couple years since I've been in Vulcan), we ended up chatting with an event coordinator from She was covering a rodeo in the area in that day but we filled her in on our project anyway. Her comments made us all laugh - she said "I suddenly feel like I'm not doing anything with my life when other people are out launching cameras into space!"

The actual preparation and launch went fairly smooth. Natalie was totally on the ball and was glueing and organizing like crazy. Jesy's brother Dave showed up and may have saved the day.

He had several helpful tips that made sure we got the balloon off the ground. At one point he advised me to double-zip-tie the last loop on the balloon neck. Just as he said that, the first zip tie unexpectedly popped off and we could have lost the entire balloon.

As our preparations continued, the wind nicely quieted down as it was quite a concern at first. By the time we launched it was nearly completely calm. Each of the kids present got the chance to hold the balloon payload train and feel the balloon lift their arm up. Finally it was time to let go so we counted down 3, 2, 1 and we let go. It rose quickly and instantly.

The payload capsule swung in wide arcs and made huge circles as the balloon quickly pulled it up. The location data was flowing nicely to the laptop attached to the other 900mhz radio modem and the balloon was ascending very quickly at 1200 feet per minute. Previous balloon launches rose anywhere from 500 to 1000 feet per minute, this was the fastest I'd heard of due to my accidently over filling the balloon with too much helium. Overfilling could cause the balloon to stretch quicker and pop at a lower altitude. But much to our amazement the altitude we achieved was pretty good.

Since the balloon ascended so quickly, it spent a shorter amount of time in the freezing cold and turbulent tropopause. This may have extended the life of the latex the balloon was comprised of. Several calculations of the onboard GPS data also confirmed the ascent rate was between 1182 and 1200 feet per minute. Other balloon launches have shown that the ascent rate is more or less linear throughout the flight.

Once we realized how fast the balloon was drifting away and rising up we suddenly realized we had alot of equipment including this gigantic helium tank sitting in the middle of the high school football field. All hands on deck! We rounded everything up as quickly as possible and jumped into our vehicles when our first failure occurred.

The Chase (and Goose-chase)

Suddenly the primary tracking system had gone dead. My wiring was inferior and the power leads accidently pulled out while the Yagi antenna was being adjusted. They touched and shorted the fuse coming from the cars 12v DC adapter. Next time it will be built and secured much better. The live tracking system was down and we reverted to checking the website for 10 minute updates from the Spot Messenger. Thats where we learned something else - the Spot Messenger does not relay altitude information only latitude and longitude. The altitude reported on the website was as if the balloon was clamped to the ground. We didn't know how high it was at the time but at least we knew where it was. It was quickly heading NE towards Milo, then past it to Gleichen. We were on the highway only a few minutes when my Mom called who was also monitoring the website. It was moving quicker and was now near Bassano. We stepped on the gas and tried to catch up. For an unknown reason the updates stopped. We decided to break for sandwiches and water at the gas station in Bassano. As time went on we all started wondering what happened... and what to do. Suddenly an update came in - it was very close to Hanna, Alberta which was almost an hour north of where we were! This balloon could win races at the speed it was travelling. We jumped in the 3 chase cars and sped off.

Another update followed and then nothing. Now the 2nd tracking system had either failed or for whatever reason stopped sending updates. We would discover why later on. We also had a coordinate from the gps cellphone. Things were looking up (no pun intended)! Since the Spot Messenger appeared to have stopped sending updates on the way down, and the cellphone coordinates were more recent, I decided to fire up Google Latitude on Natalie's phone and searched for myself since it was my phone that was up in the balloon. It showed a location strangely away from the last Spot Messenger coordinate. Something about this situation seemed wrong. At the time we didn't have much to go on so Jesy and Deb (and families) started driving around the service roads in the area scanning the fields for the parachute and payload. Dylan and I crawled under a barbed wire fence and went off in search of the marker on the phone indicating where my balloon-phone should be. For an hour we trudged through cacti and thorns. We stepped over cattle skulls and vertebrae. Up and down steep hills slipping into the cacti. After such a long time we were only 1/2 the way to the point we were looking for. I lined up Google Maps, the electronic compass on the phone, and brought the binoculars up to my eyes. There, straight ahead, at approximately the distance we were expecting was... nothing more than a cell phone tower. I actually think I started to shake at the moment. The payload was lost, the coordinates were wrong. The phone couldn't get a GPS lock and so Google Latitude has sent us the coordinates of the cell tower instead of the phone itself. A valiant attempt, as it was the best it could do, but it wasn't close enough. At least one mystery solved but several more were preventing us from getting our payload back. We headed back in despair. I began rehearsing how I was going to tell people the payload was lost. At that moment, the overwhelming feeling of failure literally chilled me.

An hour of hiking through this mess and I began wondering how so much could have gone wrong in not 1, not 2, but 3 tracking systems! Then it hit me – if Google Latitude knew the nearest cell tower to the phone , there must be some cell signal to the payload capsule! I quickly sent a packet to the payload phone requesting it’s battery life. It responded and reported the battery was down to 20%! I started sprinting back to the chase vehicles. I sent another packet requesting gps coordinates from the phone. Dead silence. I remotely instructed the phone to reboot itself and then waited patiently for several minutes.

The Retrieval

Finally I sent another gps coordinate request. Silence. Another request. Silence. Another request – beep, buzz, incoming message on Natalie's phone. 51° 8'50.50"N and 111°46'46.18"W. We plotted the coordinates on her HTC Dream phone and used the Google Maps application to route us to it. Microsoft Streets & Trips 2009 (thanks Microsoft for the trial version) confirmed the touchdown site and even displayed the roads leading up to it. We simply followed the arrows through fields of cows and grass, many km’s from the first search location. There, in the distance, and spotted easily using binoculars, was the pink payload capsule laying in the green grass of a pasture.

We approached the payload and waited for the rest of the chase crews to arrive. But as I neared the payload capsule I heard a click and high pitched beep. The arduino-cam was still taking photos! I quickly dug my Olympus point 'n shoot out of my pocket and video'd it clicking happily away in the deep grass. Euphoria.

The payload capsule was cut open and the contents were inspected. The rubber whip antenna for the radio modem looked kinda crooked. The payload must have impacted it. The eMap GPS recorded the first part of the journey and then suddenly skewed off across the US border. We are hundreds of kilometers from there so it looks like we didn't track the entire flight after all. In addition the cellphone put it's gps to sleep shortly into the flight as we knew it would. The most damaged component was the 900mhz radio modem. The battery pack had been knocked loose, probably on impact and it knocked a chip right out of the solder on the board. It may or may not be repairable. The payload compartment only chilled to -9c according the minimum recorded temp on the little temperature gauge.

Interested in what happened to the Spot Messenger? It was completely powered off. Attempting to power it on had no effect as the buttons wouldn’t even push down. For a while I assumed the impact crushed the innards of the Spot device. I attempted to take out the batteries but the battery compartment was mysteriously sealed and would not open even with the screws fully loosened. What the heck was going on? Much later it suddenly came to me. The device is built to be waterproof and we just launched it to the stratosphere where it would have retained internal pressure exerted outwards in the very low pressure of the stratosphere.  We were above 99.9% of Earth's atmosphere. I now suspect the air eventually found a way to leak out of the Sport Messenger on it's way up (almost 2 hours) and it eventually equalized with the outside low pressure. On rapid descent (20 minutes), the atmospheric pressure grew, pressing inwards on the device, sucking all the buttons inward and sealing the battery compartment.

I started laughing, pulled over, grabbed a screwdriver, broke the seal on the battery compartment by popping it up a bit with a screwdriver and air rushed into the device. The buttons popped out to their normal size and everything was fine. Like a jar of popcorn it had been vacuum sealed by the stratosphere!

By looking at the photos it was easy to tell the point at which the balloon burst. They were all fairly horizon oriented with incredible views of dark sky until suddenly the photos were all over the place. Sky, ground, sky, ground, horizon, sky, ground. Knowing the ascent rate, the number of photos to peak altitude, and the fact a photo was taken every 20 seconds I was able to calculate the peak altitude at around 100,000 feet.

SPOC-1 had been successfully retrieved and was mostly intact.

Jump to photo albums:

SPOC-1 : The Photos from Space
SPOC-1 : The Build and Retrieval Photos


  1. Hey John,

    Thanks so much for detailing your experiences with this. A group of us are trying to do the same thing in Ireland and have a few questions!

    How far away from launch did your balloon end up?

    Do you have readings for what the weather was like that day?

    Do you think it might be possible to just throw up a gps tracker and hope it begins working again upon reentry, for those of us not blessed with any electrical skills/radio modems/arduino?

    It seems like you weren't using the arduino at all by the end?

    Have you come up with any new ways to make sure the balloon does not disrupt the parachute upon reentry?

    THANKS again, was incredibly informative!


  2. The balloon travelled 150km directly NW of the launch site but it was about 250km of driving to get there. However we launched near the foothills of the Rocky Mountains where there is significant wind higher up (tropopause). Other groups have had launches land as little as 4km away. Try monitoring this balloon trajectory website. Every day it predicts a new landing spot so you can use it to "get a feel" for where it would land most days.

    I would highly recommend spending the $60usd or so and getting a gps that is known to work at altitude. Don't risk losing everything over an unknown gps!

    The arduino was scaled back so that it simply triggered the camera shutter every 20 seconds. Which is fine if you have an arduino and an old camera. If not, I would recommend you pick up a new canon point 'n shoot compatible with the chdk software. CHDK allows your camera to run preprogrammed scripts so you can mix and match video and photos and timed shutter releases without any external hardware. Cheapest one I saw was about $95usd. Chdk is at

    let me know how your planning is going, and we'll all be looking forward to seeing your photos from near-space!

  3. Hi John,

    I'm also planning to do one of these launches next weekend. I'm glad I read your story because we were planning on using a SPOT gps as our main tracking device (we are college students limited by budget.) In your opinion, if the SPOT's water-sealing components were removed, would it function adequately to track a balloon by itself?

    Thanks for your reply!

  4. Hi Cedric, best of luck on your launch! You might be able to get away with just leaving the battery cover off as that seemed to bring the device back to life for us. The other option, to be extra sure, might be to poke a small hole in the rubber buttons but you'd be ruining the waterproofness of the device in the future. Maybe you could reseal them with silicone? Anyway, be sure to let us know how your launch goes - have fun!