How to build a high altitude solar balloon

This balloon can deliver a 2 lb payload to 72,000 ft (22 km) and fly for as long as the sun shines.  It can be hand launched by two people without the aid of electricity and lift gas.  The envelope is built from cheap, easy to find materials.  Total construction time is 4-6 hours for a team of two.

It’s best to find a large area, such as a gym, for building the envelope.  Take care to not damage the plastic – I recommend taking your shoes off so that you can step on the balloon material without ripping it.  When it comes time to darken the envelope, I highly recommend *not* doing it somewhere where lots of charcoal dust will cause a problem.  We recently did it in a parking deck, which meant that spills were no big deal and also kept the wind from blowing the balloon around.

Materials:

-400 x 12 foot sheet of 0.33 mil plastic sheeting (sold as “light duty paint dropcloth” at hardware stores)

-Several rolls of heavy duty clear packing tape, such as these on Amazon.

-Scissors

-Permanent marker

-Tape measure

-Heavy duty string or cord (I use parachute cord)

-Air float charcoal, at least 1 lb

Building the envelope:

This is where you cut the plastic into the required shape, tape it together into a balloon, and check it for holes.  Click here to see a time lapse of this process.

Step 1: Cut the plastic sheeting into five 30 ft sections.  This is around the 10 second mark in the video above.

Step 2: Unfold them until you have five 30 x 12 rectangular sheets of plastic.  This is around the 15 second mark in the video above.

Step 3.  Fold each sheet once across the longer section and once across the shorter section.  Now you have five 15 x 6 ft sections.  This is between the 15 and 25 second mark in the video.

Step 4.  Lay the five sheets on top of each other, all facing the same way.  Find the corner that forms the center of the original sheet (this is where the fold seams all meet each other).  That corner is in the video around the 28 second mark, next to the guy in the blue shirt.  We spend

Step 5.  Consider the corner described in the previous point as the origin, the long part of the sheets as the X axis, and the short part of the sheets as the Y axis, draw the following points using a permanent marker (units in inches):

X Y

0 72

18 71

36 68

54 64

72 58

90 51

108 42

126 33

144 22

162 11

180 0

These points describe a half gore pattern, which is how we turn two dimensional objects (plastic sheets) into a 3 dimensional object (a spherical balloon).  Here, it happens to be a sine curve.  This is from the 40 to the 50 second mark in the time lapse.

Step 6:  Carefully insure that all sheets in the stack are lined up with each other (from about 28 to 40 seconds in the video).  Then, using a pair of scissors, carefully cut along the curved line defined by the points drawn on the top sheet (50-52 second mark).

Step 7: Unfold the sheets; you should have 5 diamond shaped ones.  These are gores, and they form the envelope of the balloon.  The other, roughly triangular pieces of plastic are trash (52-54 second mark).

Step 8:  Tape one edge of the first gore to one edge of the second gore using packing tape.  The seam should be centered in the tape, with no gaps between successive pieces of tape.  We have one person hold the two sheets together and the other tape them together, see photo below:

bowman_solarballoon_06.jpg

Taping the gores together.  If you have more people, you can have multiple teams going at once!  Photo by Mary Lide Parker, UNC Research Communications.

Step 9.  Add the next three gores successively, to make an ever larger sheet of plastic.  Finally, tape the two ends of the sheet together: you’ve now made a ball a little more than 19 feet across (the envelope of the balloon!)  This process takes up from the 1 minute to about the 2 minute mark in the video.

Step 10:  Find one of the two “poles” of the balloon (where the taped seams all meet).  Cut the pole off to make a hole about 5 feet across.  This will become the bottom of the balloon, and allow you to fill it with air.  We do this at 2:14 in the video.

Step 11:  Carefully tow the balloon back and forth, holding the hole open.  It will begin to fill with air.  This is from 2:15 to 2:17.

bowman_solarballoon_08.jpg

Filling the balloon with air prior to checking for holes.  Photo credit: Mary Lide Parker, UNC Research Communications.

Step 12:  At this point, it should be pretty clear whether or not you built the balloon correctly.  If everything looks good, send a brave soul inside to check the envelope for holes (gaps in seam tape are the most common culprits).  Someone on the outside can fix the holes as they are found.  Be careful, of course, since the air supply in there is finite.  This is from 2:18 to 2:36 in the video.

bowman_solarballoon_12.jpg

Checking each seam for holes.  Photo credit: Mary Lide Parker, UNC Research Communications.

Step 13:  Deflate and pack the balloon.  Start from the pole opposite the hole, and slowly push air towards the open end of the balloon.  Don’t go too fast or you’ll pop sections of the balloon.  It’s pretty simple to then stuff the balloon into a big garbage bag for storage.  This is from 2:37 to the end of the video.

Rigging the balloon:

The open hole on one side of the balloon is very weak and susceptible to tearing.  Also, it does not provide any means of attaching a payload.  Thus, we need to reinforce it and provide a way to attach our equipment.

A simple way to do this is to run some tape around the bottom, poke some holes in the tape, attach some string, and tie your payload on.  Our first versions had this system, but it was not ideal; in fact it is probably why we had an “unscheduled rapid disassembly” at 72,000 ft last May.

A much better way is to tie a length of strong cord (parachute cord, for example) into a loop slightly larger than the opening of the balloon.  Pull the opening through the loop, fold it around the loop, and tape the edge of the opening to the outer envelope of the balloon.  This provides a very strong lining system for the bottom.  A payload can be attached by tying guy lines onto the cord loop.  I believe the best place for these guy lines is right at each seam, since the seam tape provides a means of distributing the load along a relatively strong portion of the envelope.  The photo below shows one edge of the balloon with the parachute cord folded in, as well as one payload attachment string.

IMG_1001.JPG

Darkening the envelope:

This is the most fun part (besides launching).  Find a place that is protected from the wind but will allow you to make a big mess.  As mentioned earlier in the post, an indoor parking deck is ideal.

Unpack the balloon and lay it out on the ground. Throw a generous quantity of air float charcoal into the open end, and shake it all the way through the balloon.  The charcoal is so fine it will coat the interior of the balloon, changing it from white to dirty gray.

IMG_0871.JPG

Midway through darkening our solar balloon.

Then, wait for good weather conditions:

CkJ1x7MVAAEathy.jpg:large.jpeg

Two solar balloons and their payloads in storage.

Launching:

The launch procedure is simple: tow the balloon back and forth until it fills with air, attach the payload, let the whole thing heat up for a bit, and off it goes.   Here’s a video of us doing it.  Simple, right?  No.

Actually, launching solar balloons is hard.  It’s a lot harder than helium balloons, since ground conditions are much more restrictive.  With this in mind:

An ideal day for solar ballooning has clear skies and calm ground winds.  This is actually pretty rare, and you may have to wait several weeks for an opening.  If you start to get impatient, keep in mind that even winds barely strong enough to move leaves can make handling a 20 foot tall balloon very dicey.  Early mornings (just after dawn) are best.

An ideal site for a launch is a large open field, where slowly rising balloons will not get caught in trees, power lines, etc.  An alternative is a parking lot between tall buildings, since wind tends to go around them.  This is risky, though, since the balloon can still hit and potentially snag on them.

Finally, if you are planning on recovering your payload, realize that the balloon will fly until the sun sets.  This means that even a 10 mph wind can carry the balloon 120 miles, assuming 12 hours at float.  Many times, the winds in the upper troposphere/lower stratosphere are much stronger.  Careful consideration of the wind profile from 0 to 100,000 ft above sea level is thus imperative before attempting a full day flight with payload recovery.

Happy ballooning!

Predicting the Flight Path of a Solar Balloon

Balloons that fly on solar power – what could be better?  Unfortunately, the physics of these balloons is complex and reliable data on how they fly is hard to come by. On this blog, we’ve discussed our attempt to come up with a numerical model of solar balloon flight as well as the data set from our solar balloon that made it to 22 km (72,000 ft) last May.  In this post, we present an empirically-derived solar balloon flight model based on data we collected on the high altitude flight mentioned above.

First off: a disclaimer.  This model is generated from data collected by one flight of a specific design of solar balloon.  While we hope that it captures some general features of a solar balloon flight, we can’t be sure.  Furthermore, different balloon designs and atmospheric conditions will cause inevitable (and at this point, unpredictable) deviations from the model we describe.  Take it with a big grain of salt.

Ascent Rate

We smoothed the GPS altitude data from our high altitude launch and performed a 1st order Tikhonov regularization to derive an ascent rate versus altitude model for our solar balloon.  The plot is below, if you want the numbers click here.

Modeled ascent rate versus actual ascent rate for our high altitude solar balloon.

Modelled ascent rate versus actual ascent rate for our high altitude solar balloon.

The solar balloon initially ascends at about 1.5 meters per second, reaches a maximum of about 2.5 meters per second at around 15 km elevation (just below the tropopause), and rapidly decreases as the balloon approaches neutral buoyancy at 22 km elevation.  This is fortuitous, since the strongest winds in this elevation profile typically exist in the region where the balloon is ascending the fastest.  In contrast, the lower stratosphere (18-22 km) is usually calmer.  The exciting possibility in this trajectory data is that we may be able to park future balloons in this low wind “sweet spot”, and thus recover payloads relatively close to the launch site.

The modelled ascent rate lacks the vertical velocity oscillations in the real data; this is by design.  We suspect those oscillations are either due to gravity waves in the atmosphere or uneven heating of the balloon envelope.  In any case, we would not expect to see the exact same ones on future flights.   Furthermore, removing the oscillations has little effect on the accuracy of the ascent rate model, as the plot below shows.

Modeled elevation vs actual elevation for the May 29, 2015 high altitude solar balloon flight.

Modeled elevation vs actual elevation for the May 29, 2015 high altitude solar balloon flight.

However, a comparison between the actual ground track of the balloon versus one using horizontal winds calculated from archived weather forecast data shows a considerable deviation:

Modelled versus actual ground path of the high altitude solar balloon.

Modelled versus actual ground path of the high altitude solar balloon.

This may be because of the poor spatial resolution of the archived Global Forecast System model we used (1 x 1 degree) as well as the lack of a precise match between the prediction time and the flight time.  Although the two trajectories are rotated, their general form is similar.  While the forecast skill is not ideal, it still gives a reasonable approximation of what we could have expected on launch day.  To this end, we are utilizing the simple vertical velocity model derived above in combination with predicted wind speeds to generate potential flight paths.  Here’s an example from September 28, 2015:

Example of a modelled solar balloon flight path. The green diamond is the launch site, the red line is the ascent, the dashed line is 8 hours of drifting at neutral buoyancy, and the blue circle is the predicted balloon location around sunset.

Example of a modelled solar balloon flight path. The green diamond is the launch site, the red line is the ascent, the dashed line is 8 hours of drifting at neutral buoyancy, and the blue circle is the predicted balloon location around sunset.

It may not be perfect, but it sure beats what we used to use.

Stratospheric Solar Balloon Flight

It took three years and several false starts, but we finally got a solar balloon with a video camera on board to take off successfully.  Not only that, but the balloon reached an elevation of over 22,000 meters (72,000 feet), well into the stratosphere!  Then, it suffered what Elon Musk calls a “rapid unscheduled disassembly,” sending the payload into a 22 kilometre free fall that ended in the muddy banks of a cow pond.  Despite this, the photos, video, and GPS track were all recovered.  Here’s the flight video:

The balloon envelope consisted of a 19 foot diameter sphere of 0.31 mil clear plastic paint drop cloth.  Since the drop cloth comes in 12 x 400 foot sheets, we constructed the envelope from 5 gores that were 12 feet wide at the equator.  We attached the gores together using clear shipping tape and darkened the interior of the balloon with black paint pigment.  Each gore seam had a string attached to the bottom with black duct tape.  The opening at the bottom of the balloon is about 6 feet across, allowing two people to inflate it by hand (check out the full inflation and launch video).

The solar balloon in flight just after launch.  Image credit: Mary Lide Parker

The solar balloon in flight just after launch. Image credit: Mary Lide Parker

The payload consisted of a SPOT satellite tracker for recovery, an Arduino Uno with Adafruit High Altitude GPS Shield for trajectory determination, and a Raspberry Pi with camera module for video and stills.  The system was powered using a lithium battery pack meant for recharging cell phones (10 ampere hours).  All this was contained in a Tupperware box with a small hole to admit the camera lens.  We attached it to the balloon using four strings taped onto the box with white duct tape.  The four strings led to a fishing swivel to keep the payload from spinning too much.  We clipped it to the strings on the envelope using a black carabiner. Total payload weight was 800 grams (1.75 lbs).

payload

Payload with the lid off, showing flight instrumentation (left) and payload just before launch (right).

We kept an eye on the wind profiles for about 5 months, since most of the time winds in the troposphere blow out to sea.  Finally, we waterproofed the payload and decided to risk a flight even if some winds were going east.  On May 29, the winds in the troposphere were pretty low (max 10 m/s or so) and with varying azimuth.  The stratosphere had a steady breeze going west, so we figured if we made it that high, we’d head back over land.  However, we had a much faster ascent rate and reached a much higher altitude than we anticipated, so we ended up not flying very far from the launch site.  You can download the trajectory data in text format here or Google Earth KML here.

trajectory

Ground flight path (left), launch site is the origin. Altitude versus time (centre), local time was GMT – 4. Ascent rate versus time (right), local time was GMT – 4. I obtained the ascent rate by calculating a 1 minute moving average and dividing elevation by time.

The photos and video were very good quality considering that we were using the Raspberry Pi camera module (not the world’s most advanced camera).  The troposphere was pretty misty, and it seems like we even passed through a haze layer on the way up.  However, it could be that the lens fogged up temporarily.  Once we entered the stratosphere, the pictures are much better:

00670

The view from 22 kilometres in the sky.

You can watch a slide show of all the photos here, and all the video clips stitched together here.

Just as we approached neutral buoyancy, the payload unexpectedly separated from the envelope and fell back down to Earth.  We kept GPS tracking until about 18 kilometres elevation, and as far as I can tell the box was falling at about 320 km/hr (200 mph).  The Arduino kept track of time even after losing GPS fix, continuing to record until the moment of impact.  Thus, we know that the payload fell the remaining 18 km in about 12 minutes.  The impact speed was probably less than 100 km/hr (60 mph).  The Tupperware payload box was cracked, and everything except the SPOT tracker stopped working.  Had we landed 10 centimetres or so west, we would have splashed down in a pond.  Luckily, we hit the mud on the pond’s edge (and missed the cows that were in the area).

CGasLNHUQAAnDHG

The payload box at the impact site in Snow Camp, North Carolina.

We consider this flight mostly successful.  Our main objectives were to launch, recover, and extract data from an instrument package lifted with a solar balloon.  Furthermore, we wanted to inflate the solar balloon by hand.  Both of these objectives were reached. Our secondary goals were to fly until sunset, not land in the ocean, and make it to the stratosphere.  The flight was only about 2.5 hours, so we did not fly all day as we hoped.  However, we made it well into the stratosphere and were never in danger of ending up in the ocean.

We had a slightly tense launch when the payload got snagged on the eaves of a nearby building, but the balloon built up enough lift to detach itself in about 20 seconds.  The SPOT tracker did not record any positions during flight, so we did not know where the balloon was and were not even sure if the tracker was working.  In fact, it did not record positions until about an hour and a half after impact. The unexpected flight termination was upsetting as we did not anticipate having the payload detach from the envelope.  We assumed that either the envelope would rupture due to sun-induced heating at altitude or that it would deflate at sunset.  In either case, the payload would have had a large plastic streamer to slow it down to safe velocities.  Instead, it appears that the black duct tape we used to attach the payload strings to the envelope got too hot in the intense sunlight at 22 km.  This caused the payload to come loose from the balloon.  The lesson we learned from this is to never use dark coloured tape if there’s a chance the flight system will make it to extreme elevations.

How to install rNOMADS with GRIB file support on Windows

Two years ago, I wrote a software package for R called “rNOMADS” that interfaces with online weather and sea ice model repositories to gather data in real time, for free.  The data are delivered in two ways: a simple, pure R, cross platform interface using GrADS-DODS, and binary files in GRIB format.  The one issue with GRIB is that this format can’t be read directly into R; it requires the external program “wgrib2.”  Installing rNOMADS with GRIB support for Linux is covered in this post (Mac OS is probably similar).  I thought GRIB support for Windows was impossible until the guy who runs this blog casually told me he’d figured it out.  So, I finally got around to trying it myself, and I’m happy to say I got it to work!  Here’s how:

Step 1:

Download the most recent wgrib2.exe version and all DLL files from Wesley Ebisuzaki’s web site:  Click here.

Step 2:

Make a directory somewhere on your computer.   I chose:  C:\Program Files\wgrib2

Copy the .exe and the .dll files to this directory.

Step 3:

Append the directory path to the Windows PATH variable.  Find out how to do this here.

Edit: a user points out that sometimes this doesn’t work.  If not, change the path variable in R using Sys.setenv():

Sys.setenv("PATH" = "C:/Program Files/wgrib2")

 

Step 4:  If R is open, close and reopen it.  Then try the following command in the R interpreter:
system("wgrib2")

If you get a bunch of text that looks like the image below, you’ve succeeded.  You can start reading GRIB files with rNOMADS!

Output of wgrib2 call from R.

Output of wgrib2 call from R.

rNOMADS package has been published in the journal Computers & Geosciences

I’m happy to announce that my article “Near Real Time Weather and Ocean Model Data Access with rNOMADS” was recently accepted for publication in the journal Computers & Geosciences. The editor has kindly provided me with a link to the article that’s free until late April, check it out here.  I’m excited to have the package published somewhere official and I’m looking forward to seeing who ends up using it.

In other news, I’m still waiting for the tropospheric jet to point anywhere besides East so we can launch a tracked, camera bearing solar balloon from Chapel Hill.   I wrote an rNOMADS script that generates wind profiles from the 0600 GMT model run on today’s date out to three days from now, and put it on my computer’s crontab.  Every day, I look at the winds, and wait.  Here’s the profiles for today, let’s see if it updates daily on wordpress too:

Wind profiles above Chapel Hill, NC, USA

You can have a look at the script that generates this image here.

Note that the “montage” system command uses the Ubuntu imagemagick package to combine separate PNGs.  If you’re on windows or mac, this will not work for you.

New updates to the rNOMADS package and big changes in the GFS model

I rolled out a big update to the rNOMADS package in R about two weeks ago.  Now, the list of real time weather, ocean, and sea ice models available through rNOMADS updates automatically by scraping the NOMADS web site.  This way, changes in model inventories will be instantly reflected in rNOMADS without the need for a new version release.

Keep abreast of future updates to rNOMADS by subscribing to the mailing list here.  Feel free to ask for help or make comments on this list as well.

In other news, NOAA just updated the Global Forecast System to provide 0.25 x 0.25 degree output – doubling the resolution of the model!  Check out this crystal clear views of surface temperatures across the planet (source code below the image):

World temperature at 2 m above ground using the 0.25 x 0.25 degree output of the Global Forecast System model.

World temperature at 2 m above ground using the 0.25 x 0.25 degree output of the Global Forecast System model.

 


library(rNOMADS)
library(GEOmap)

#Get dates of model output
model.urls <- GetDODSDates(“gfs_0p25”)

#Find day of most recent model run
latest.model <- tail(model.urls$url, 1)

#Find most recent model run on that day
model.runs <- GetDODSModelRuns(latest.model)

#Get the most recent model (excluding analysis only)
latest.model.run <- tail(model.runs$model.run[which(grepl(“z$”, model.runs$model.run))], 1)

#Define model domain
time <- c(0,0) #Analysis model
lon <- c(0, 1439) #All longitude points
lat <- c(0, 720) #All latitude points
variables <- c(“tmp2m”) #Temperature 2 m above ground

#Get data from NOMADS real time server
tmp.data <- DODSGrab(latest.model, latest.model.run,
variables, time, lon, lat, display.url = FALSE)

#Reformat it
tmp.grid <- ModelGrid(tmp.data, c(0.25, 0.25))

#Define color scale
colormap <- rev(rainbow(500, start = 0 , end = 5/6))

#Plot it
image(x = tmp.grid$x, y = sort(tmp.grid$y), z = tmp.grid$z[1,1,,], col = colormap,
xlab = “Longitude”, ylab = “Latitude”,
main = paste(“World Temperature at Ground Level:”,
tmp.grid$fcst.date))

plotGEOmap(coastmap, border = “black”, add = TRUE,
MAPcol = NA)

Fall 2014 Solar Balloon Flights

We had a record number of successful solar balloon launches this fall:  a total of three!  Two of these balloons carried messages in bottles (in case they landed in water) and one just carried a handwritten note.  Unfortunately, no one has come across our messages as of now.  I suspect this means the bottles came down on land somewhere.  Probably some hunter will come across one two decades from now.

We’ve been using paint pigment to darken the balloons – it’s pretty labor intensive because you have to rub the powder into the plastic.  As a result, these balloons were not dark enough and so had pretty bad lift.  Our newest bag (currently under my desk in my graduate student office) is quite a bit darker, and I might give it a once over before I try and send it off.  It’ll be carrying a tracker and a camera, so we’re waiting on light winds before flying.

1.  The 7′ tetroon

Master solar balloon builder Mathew Lippincott sent me a 7′ tetroon to test out earlier last year.  I was pretty excited because I’ve never tried flying a tetroon.  We got it a little dark (but should have spent more time on it), and managed to get it to lift one bottle with a message inside.  Here it is orbiting a parking lot, bouncing off a tree, inching over a busy street at about 30′ elevation, and finally heading skyward:

Thankfully my friend didn’t film the street crossing, because I thought there was going to be a solar balloon/car collision for sure.  Students walking by were pointing and asking if it was a weather balloon.  Hardly!

2.  The 22′ tetroon fail

Not-so-master solar balloon builder glossarch (yours truly) tried to make a tetroon back in 2013.  I made a mistake somewhere down the line and it ended up looking like a giant pillowcase.  Nevertheless, I figured I could get it to fly…and I was right. A bystander thought it was a hang glider.  Come on!  A flying pillowcase holding a Trader Joe’s bag full of bottles resembles no hang glider I’ve ever seen.  To each their own, I guess…

The pillowcase being inflated using vacuum cleaner exhaust.

The pillowcase being inflated using vacuum cleaner exhaust.

3.  Halloween Solar Balloon!

What could be better than a paint dropcloth ghost hovering ominously over your town on Halloween?  I sealed the bag in record time (about 20 minutes) simply by unrolling a swath of paint dropcloth and ironing each edge together to make a cylinder.  Then we drew a scary ghost face on it, scrubbed some pigment on the plastic, and waited for Halloween.  Initially, we had a styrofoam tombstone as payload.  But the tombstone was too heavy, so we ended up just attaching a note and launching.  Because the bottom of the balloon was so poorly ballasted, the whole thing cavorted around in midair quite a bit, even turning sideways a couple of times.  Due to calm winds near the surface we had quite a few witnesses.

Inflating the beast.

Inflating the beast.

Haunting Chapel Hill on Halloween 2014.

Haunting Chapel Hill on Halloween 2014.

A big thanks to Xiao Yang for taking photos and video!  See his Flickr albums here.