Photography from 100,000ft

I set out to take photographs at an altitude where I could see the curvature of the Earth.


The premise:

  • Float a balloon to an altitude where you can see Earth curvature
  • Have a camera rig suspended below it, taking pictures continuously
  • Computer system continuously radio transmits GPS location to ground
  • Balloon pops, camera rig parachutes down
  • Retrieve rig, retrieve photos


In my case, I was able to put a balloon at 101,331ft and took some great pictures.

I also learned a tremendous amount about wireless, modem design, PCB design, and other areas I’ve found very interesting.


Have to say that this is the new hardest thing I’ve ever done.

But worth it!  (See NYC!)


There are more photos and a highlights video at the end of the page.



This was a massive project and many details will get missed.

I’ll try to touch on the most interesting or difficult areas, but nearly all of it was deeply interesting and deserves a lot of coverage themselves.




Stats and Path

Launched in Hershey, landed in Princeton.



All of this was in-regulation, agreed and coordinated with the FAA and also Air Traffic Control the day-of.


Weather balloons of this size and larger are launched twice per-day, every day, all across the world, safely, by the government.


In short, I didn’t forget to be safe.  I’m 100% positive it’s all safe and ok because I double checked then asked the government to confirm it all.




Several tech areas:

  • Location Tracking and Transmission
  • Photography
  • Balloon Launch and Recovery


Each area is critical to success.


Additionally, I decided to go with a PCB fabrication this time to give stability to the components.



Location Tracking and Transmission

You need to track the location of the balloon/photo system or you’ll never find it when it lands.

This is known as a flight computer, or a tracker.



  • Microcontroller (Atmega328P)
  • GPS module
  • Temperature/Pressure sensor
  • Radio Transmitter module (144.390 MHz)
  • SD card telemetry logger
  • APRS packet modulation
  • Antennas
  • Software Defined Radios and SDR#



You don’t know what your payload will be looking at at any given moment.  So you want to have as many constantly running cameras as you want/can to catch all the good shots.

Conditions try to kill off your cameras though:

  • Unfortunately, it’s -50F at that altitude
  • It takes 1 hour 45 min to get to altitude



  • Actual camera system
    • NoPro video
    • Canon digital photo and video
      • CHDK custom scripts running
  • Insulation system
  • Heating system


Balloon Launch and Recovery


  • Weather balloon
  • Helium tank, regulator, and filling tube
  • Rigging system to suspend camera system
  • Parachute rigging
  • Launch path prediction





Research and Build

Location Tracking and Transmission

GPS module wasn’t too bad, wrote some libs to abstract and normalize the values.

Temperature/Pressure sensor wasn’t too bad, also another library job.

SD card telemetry logger pretty easy also.

APRS packet format

This was a complete nightmare.  It’s a format smeared across 2 or 3 layers of the OSI stack all the way down to actual physical modulation.

It’s all some 1980s technology where the documentation hasn’t been clarified over the years, and the various implementations don’t agree.

This was an area of major testing difficulty as getting a known-good receiver and known-good transmitter and being able to tweak them made knowing what wasn’t working nearly impossible.

Here is a site (link) I put together to clear up a number of specific details.  I hope I’m saving someone out there weeks/months of confusion on this.

Radio Transmitter module (144.390 MHz)

Wow, so complicated.

A modem is a MOdulator/DEModulator.  I had to make a MO in order to operate the transmitter.

Had to understand several radio modulation concepts, including AFSK (audio-frequency shift keying), which is what the modulation APRS demands.

Specifically, I had to use a Bell202 encoding scheme, which is NRZI digital encoding, where frequency modulations of 1200Hz and 2200Hz were used to indicate mark or space.

Again, getting a known-good decoder for this made testing nearly impossible.  I gave up for 6 months when I couldn’t get past this.

Later I broke through this after finding a demodulator design where I could modify the source code to sniff out what was going wrong.



This was actually a very interesting area to research.

In the end, I used a 1/4 wave ground plane antenna mounted on the bottom side of the camera rig.

(oriented upward in the photo, but oriented downward during flight)

Software Defined Radios and SDR#

Also very interesting.  There are software programs which can read raw data from general purpose RF receivers and do the demodulation themselves.

SDR# is a good example and was helpful in understanding signal strength and distortion while testing different antenna and hardware transmission mechanisms.



NoPro camera was set to record HD video continuously.

2 Canon Powershot SD 780 cameras took constant photo and video.

(CHDK custom scripts powered their logic and data logging of internal temperature)

Insulation / Heating system

The temperature at altitude is -50F and can shut down electronics and make batteries perform poorly.

The whole point is to get great photos, so weeks of trials of insulation and heating systems took place to keep the cameras alive.

In the end, a battery pack and heating fabric, per camera, was installed.

(insulated freezer duration tests)


Balloon Launch and Recovery

Weather balloon took some research to find out size appropriate for my altitude.

Helium tank, regulator, and filling tube were a bit challenging but ultimately found a nice hardware store owner who could get me the 99% pure helium I needed.

Rigging system to suspend camera system wasn’t too bad, had to watch some videos.

Parachute rigging basically covered by the above.




Main file here (link)

Supporting libraries under here (link)



Build Photos and Demo Video

Final Build


Camera freezing tests


Antenna making


PCB Making


Containment and Insulation Box



Parachute and Suspension from Balloon


Charge and Prep before Launch


Launch Prep










Radio Transmission Coverage

Over 400 mile coverage.  Pretty happy with that.


Highlights Video