Launch number two was mostly successful. The video is interesting!
Files available from – http://shrumfamily.org/balloon2/
FILE0001.MOV – The launch and first hour of flight.
FI010001.MOV – The balloon pops at 43 minutes 15 seconds. The free fall begins!
FI030001.MOV – This video is from the top of a tree and includes video
of me pulling my ice chest down with a big yellow pole
It’s
probably not worth downloading.
Lessons learned -
Do get a backup GPS! My primary GPS failed at launch and the only reason I got my payload back was because of the Cell / GPS. I got a text with the location on the ground
Do put some sort of swivel between the parachute and the payload! That should help with the spinning. Rather than post on my rigging I’ll just say; it did not work well. That is evident from the video of a free fall from altitude. The balloon fragments were tangled in the parachute. We need a better way to separate the balloon from the parachute.
My camera was angled down just a bit too far. I suspect about 12 degrees down from level would be ideal.
I placed a small back warmer in the can with the batteries. This extended battery life!
Detail on the build are below.
These instructions detail the construction of a high altitude balloon that can be released, tracked while in flight and later retrieved.
The major components are
- balloon
- payload container
- flight computer, GPS, radio that make up the telemetry system
- camera (or other ‘payload’)
- parachute
- cut down system
- power systems (batteries)
The flight computer will read data from the attached GPS, periodically parse the data for telemetry information that includes altitude, speed, direction (heading) and vertical speed; and then relay that data over a voice radio for you to receive on the ground. The communications are one way and for telemetry data only.
The cut down system will drop the payload from the balloon in the event the flight exceeds a certain amount of time.
Why not support two way communications?
- It’s more complicated and it’s expensive
Keep in mind that the balloon may travel at speeds in excess of 100MPH in the jet stream and will climb to altitudes well above 100,000Feet. As a result the balloon will be more than 50 miles away at times. A radio modem would need to be omni-directional (the payload swings around as its traveling) and capable of sending data as far as 50 to 100 miles. One way voice communications can be maintained with radios from Walmart and for far less money, weight and power required for a radio modem. In addition, people are quite capable of error correcting audio/verbal communications that are garbled or partial.
FAQ
- Is this safe, will my balloon run into an airplane?
Yes is it safe! The chances of your balloon hitting an aircraft are astronomically low. And even if it did I suspect it would do less damage than a goose
- How much does this cost?
$1,250 to $1,500 It depends on the size balloon you get and your soldering skills.
- Is this legal?
Yes – See http://rgl.faa.gov/Regulatory_and_Guidance_Library%5CrgFAR.nsf/0/4D5DB7354C4541EE86256EEC004EC67A?OpenDocument and use common sense. If you expect to have a payload in excess of the 4 and 6 pound limitations you’ll need to follow some other rules. This tutorial results in a payload of approximately 2 pounds.
- How far will the balloon travel?
It depends on the wind. Between 50 miles and several hundred!
You can predict the path of the balloon – Be sure to convert the lat / long to decimal
My starting location may be here -> 30.462753 -84.267625
Note
You need basic Linux skills to do this. For example, you should probably know what Perl or crontab refer to and you’ll need to be able to manage simple edits using vi.
I am not particularly good with electronics. For example, I needed the wikipedia article on transistors to understand what they do. In building the circutry for this project I generally built one small piece at a time and tested each piece as I went along. If you’ve got expertise in electronics and you feel compelled to correct any of this or provide a better description feel free to send it over!
Parts list
Gumstix Computer
http://gumstix.com/store/catalog/product_info.php?cPath=27&products_id=210 ($170)
GPS / Audio board for computer –
http://gumstix.com/store/catalog/product_info.php?cPath=31&products_id=157 ($130)
An antenna for the GPS – I *think* this is the one I purchased. – http://www.sparkfun.com/commerce/product_info.php?products_id=177 ($10)
Tweener (lets you configure the gumstix but is not used during the flight)
http://gumstix.com/store/catalog/product_info.php?cPath=31&products_id=106 ($20)
Accessories
http://gumstix.com/store/catalog/index.php?cPath=28 ($20)
You’ll need a power adapter, serial null modem cable, and a screws and spacers kit
Unless you have a serial port on your desktop, you’ll need one of these – http://www.radioshack.com/product/index.jsp?productId=3120513 ($40)
One Micro SD card (You will need at LEAST 1GB and I might go for a 4GB card) ($20)
Sounding balloon
http://kaymont.com/pages/sounding-balloons.cfm ($150 – $300)
I’d recommend the KCI1500 or bigger
4 Batteries and a charger
http://www.all-battery.com/4tenergyli-ion1865037v2600mahrechargeablebatterieswithinternalpcb.aspx ($30)
http://www.all-battery.com/universalsmarttlp2000chargerforli-ionpolymerbatterypack37v-148v1-4cellswith2-6celllipopackbalancer.aspx ($50)
Radio
http://www.newegg.com/Product/Product.aspx?Item=N82E16872007062 ($50)
The longer the range is the better. Keep in mind you need a license to use GMRS
http://wireless.fcc.gov/services/index.htm?job=service_home&id=general_mobile ($80)
Camera
I purchased one of these – http://www.aiptek.com/Merchant2/merchant.mvc?Screen=PROD&Product_Code=ZHD11X&Category_Code=HDC&Store_Code=AS ($200)
You could also consider a Canon camera with something like CHDK –
http://chdk.setepontos.com/index.php/topic,2877.0.html This was from a previous launch.
Circuitry parts -
You need ONE opto-isolator and TWO relays. Unless you have excellent soldering skills I’d order extra!
One 5 volt regulator is needed and hookup wire is needed as well. I’d recommend getting at least two colors of hookup wire.
I’d also recommend getting male to female clips that allow you to connect and disconnect two wires
http://www.sparkfun.com/commerce/product_info.php?products_id=9118 ($5)
http://www.sparkfun.com/commerce/product_info.php?products_id=524 ($4)
http://www.sparkfun.com/commerce/product_info.php?products_id=107 ($2)
http://www.sparkfun.com/commerce/product_info.php?products_id=8866 ($5)
http://www.radioshack.com/product/index.jsp?productId=2104016 ($5)
Construction Equipment
Soldering iron (with a fine tip!)
Wire cutter
Wire stripper and a knife
Hot glue gun
This really helps – http://www.sparkfun.com/commerce/product_info.php?products_id=9317
Volt / Amp meter
An old audio cable (from a set of ear phones for example)
Instructions are below
Setting up the Gumstix computer
Plug your serial cable (or serial to USB cable + serial cable into a desktop or laptop)
Attach the Verdex Pro to the Twener and GPSStix; it’s pretty obvious how to do this when you have the parts in front of you.
I’d suggest using putty.exe for the serial connection on your desktop to the gumstix computer
http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
Open a serial connection COMX at 15200baud to your serial port.
Plug the serial cable into the tweener and the power to the Gumstix to power up. You should see the gumstix booting up on your desktop.
Log in with root and Gumstix.
Hopefully your microSD card will auto mount to /media/card when you plug it in. If not; join the gumstix mailing list and good luck! Mine auto-mounted
Reference – http://www.gumstix.net/Software/cat/Getting-started/111.html
You will need to install perl and aplay.
The gumstix comes with a package manager called ipkg. I could not get my gumstix on a network so I downloaded all the ipkg files and stuck them on my microSD card.
I downloaded them from here. http://www.gumstix.net/feeds/current/glibc/ipk/armv5te/
Here is a brief list of what I ran to install perl, aplay and gpsd:
gpsd / gpspipe
ipkg install /media/card/armv5te/gpsd_2.34-r5_armv5te.ipk
ipkg install /media/card/armv5te/libstdc++6_4.1.2-r10_armv5te.ipk
ipkg install /media/card/armv5te/libgps16_2.34-r5_armv5te.ipk
ipkg install /media/card/armv5te/libdbus-glib-1-2_0.74-r0_armv5te.ipk
Alsa play
ipkg install /media/card/armv5te/alsa-utils-aplay_1.0.14-r1_armv5te.ipk
note – For my first launch I used a program called espeak to convert text to speech and transmit it over the radio.
I couldn’t get espeak working on the gumstix so I prerecord the few phrases I would need and digits 0 – 9.
More on this solution will come later.
Perl
ipkg install libc6_2.5-r7_armv5te.ipk
ipkg install libgcc-s-dev_4.1.2-r10_armv5te.ipk
ipkg install perl_5.8.8-r25_armv5te.ipk
I should note that a quick perl script ran just fine, GPSD comes up on its own at startup and recognizes the GPS; gpspipe works as well.
Perhaps I just got lucky here; hopefully its always this easy
The gumstix was set to runlevel 5 I created a file in /etc/rc5.d named S99flightsystem
#! /bin/sh
#
case “$1″ in
start)
/usr/bin/gpspipe -t -w >> /media/card/gpsnative.txt &
;;
stop)
echo “stopping gps logging” >> /media/card/newgpslog.txt
;;
restart)
echo “restarting gps logging” >> /media/card/newgpslog.txt
;;
*)
echo “invalid command” >&2
exit 1
;;
esac
exit 0
This starts up gpspipe for logging and plays a startup sound over the radio so I know the computer booted up.
You don’t need the startup wav and we haven’t yet set up the radio so you might just remove that line at this point.
Testing
At this point its a good idea to run some tests.
You should be able to boot the gumstix up and log in via a session over the com port.
You should see gpsd running.
Its a good idea to take the gumstix outside, with antenna plugged in and run gpspipe.
gpspipe -w should show how many satellites are available.
http://gpsd.berlios.de/NMEA.txt can be used to decode gpspipe -w sentences.
Assuming you have some satellites in view, gpspipe -r should output coordinates.
Perl should be installed and working. A hello world Perl script is always a good test:
#!/usr/bin/perl
print “Hello World\n”;
aplay should be working as well. Copy a .wav file to your micro SD card, plug a set of speakers or headphones into the Gumstix audio out and ‘/usr/bin/aplay /media/card/sounds/mywavfile.wav‘ ought to play mywavfile.wav
Power adapter and battery
The Gumstix needs a 5 volt power supply. The radio needs 7.4 volts. Each of the Tenergy batteries is 3.7 volts.
This step is to create a single 7.4 volt battery from two of the Tenergy batteries. To do that we will wire two of them in series.
If fully charged you should see a little more than 8 volts total. When soldering the batteries ruff each end with a bit of sandpaper. Be careful, these batteries have a small circuit at each end to prevent over discharge and you don’t want to damage it. Its a good idea to put female ends on the wires for later. The final product looks like this.
The next step is to wire the 5 volt voltage regulator to the power adapted for the Gumstix. A wire will go from the input on the 5 volt regulator to the positive lead on the battery.
There is a 5 volt output on the voltage regulator that will go to the Gumstix. Both the negative from the battery and the negative from the 5 volt power supply go to the same peg on the voltage regulator.
I cut the wire, plugged in the power supply and checked with a volt meter to be sure I knew which wire on the power supply is positive.
The final result looks like this. Notice I added some hot glue to my solder joints. The black wire with the 5V has the power adapter on the end for the Gumstix.
This might be a good time to make wires for plugging things in to the battery. Notice I can plug into my battery and then easily plug multiple wires into each terminal.
Radio
The Gumstix is running gpsd with gpspipe sending data to a text file. Ultimately a perl script will read that text file, pull out the telemetry data. A .wav file will be constructed.
The perl script will then set the GPIO port to on (“GPIO out set”) which will set the radio to transmit. Next the perl script will use aplay to play the constructed .wav file which will go from the audio out on the gumstix to the audio in on the radio. Finally, the perl script will clear the GPIO port which will stop the radio from transmitting. Note that when the radio is transmitting you will likely jam the incoming GPS signal for a few minutes and you will be using a fair amount of power. My radio is a 5 watt transmitter.
There are two main objectives in this part. The first is to wire the power for the radio. The second is to put the relay in line in the audio chord.
For my particular radio, there is a chord for an external mic. These directions apply to my radio.
Take the radio apart such that you are left with just a circuit board.
Next, add wires that will run from the power input (where the battery went on the back) to the 7.4V battery we just made. I soldered the wires on and used hot glue to secure them.
I looked to the battery to make sure I knew which lead was the positive on the radio.
Take the wire for the external mic and cut it. You will also need an audio out cable. I used an old paid of earphones. For this radio, if you take the external mic wire and wire it to an audio out jack you will find that the radio will always transmit if there is ANY current going over the mic in wire. That would drain our battery pretty fast, so a relay will go in line on the POWER or positive line. Thus, when the relay closes the audio circuit is complete and the radio transmits. I tested my audio wiring by first building the cable without the relay. I plugged the audio out jack into my desktop, turned some music on and plugged the mic in chord into the radio. The radio began transmitting and I could verify that by listening on the second radio I have.
It would be possible to wire the audio cable as an uninterrupted circuit and use the relay to open and close the push to talk circuit if using a different radio. For my radio, any power over the audio cable resulted in the radio going into transmit mode. I think this is somewhat common. The Gumstix audio out puts out enough power to trigger the transmit so even when not playing any audio, the radio transmits and thus the circuit can be used as a push to talk.
A Note on how the relay works
The Gumstix has GPIO ports. There are a fair number of ports on the back and along the edge of the gpsstix.
Here is a chart that relates pinouts on the back of the board to GPIO ports – http://docwiki.gumstix.com/index.php/Verdex_60pin_connector_chart
To understand how the port works – place a volt meter on a GPIO port, lets use UCB1 / UCB1400-0-1 as an example.
Ground to any of the grounds on the back. You should see 0 volts.
The command ‘echo “GPIO out clear” > /proc/gpio/UCB1400-0-1′ will set the voltage to 0.
The command ‘echo “GPIO out set” > /proc/gpio/UCB1400-0-1′ will set the voltage to about 3.7 with about 80 milliamps.
This seems to work on any of the ports.
Connecting the relay directly to the GPIO seemed like a good way to fry the Gumstix so there is an opto-isolator in between and I’ll have detail on wiring that up later on.
Given the ability to toggle that voltage we can close the relay, which can set the radio to transmit (or do anything really) and then open the relay when done.
An important note – I originally wired this to use /proc/gpio/GPIO63 which relates to pin-out LDD05 on the back of the GPSStix.
On boot up the Gumstix will scan some of these ports for an LCD device (that’s the intended use for the LDD pin outs) and as a result, the voltage on those pin outs will rapidly fluctuate which could be bad depending on what you intend to do with the relay.
Relay for the radio
I would suggest creating a small battery to simulate the GPIO port on the Gumstix computer. I took two watch batteries wired in series and used electrical tape to make a 3.7V / 50milliamp power source.

Using the watch battery you should be able to touch each wire to the two contacts on the relay and hear a click. That means the relay works.
The diode should be soldered on next. I then soldered two power leads onto the diode and the two wires that are closed by the relay to the pins on the relay.
The circuit closed by the relay goes from the audio out on the Gumstix (the old earphone cable) to the audio in on the radio.
The final product looks like this and simply combines the audio cable from the previous step with the relay. Notice the liberal use of hot glue to compensate for poor soldering skills.
Testing
You should be able to power up the radio using the battery used to power the Gumstix.
You should be able to plug the audio cable into anything with a speaker out (my desktop computer worked fine) and into the radio and verify the radio transmits.
The relay should be in line at this point; using the watch battery you should verify that you can toggle the radio to transmit and off using the relay.
Wiring the opto-isolator
I’ve made a wiring diagram using Gimp. It’s awful an it is below. You can see the the Gumstix GPIO ports are connected to IN1 and IN2 on the opto isolator and the GND is connected to the Gumstix ground. Setting the GPIO ports to “out set” flips the voltage on, that drives OUT1 or OUT2 on the other side which flips the transistor that drives the relay. I did in fact try this without the transistor but found there is not enough power coming from OUT1 or OUT2 to drive the relay. I’ve included a picture of the optoisolator below as well. Again, note the liberal use of hot glue to compensate for poor soldering skills. The second circuit shown is for the cutdown system. In my case, I simply added in a script that lights the igniter after 3 hours. If for some reason the balloon failed to pop; after 3 hours the igniter would be used to break the string holding the payload to the balloon. As the balloon has a large neck that might interfere with the parachute; once a descent is detected I will burn the igniter in the hopes of separating the large rubber neck on the balloon from the parachute.
Optoisolator
Diagram
Gumstix
Transistor
Testing
To test my wiring I put everything together one piece at a time. I connected my watch battery to IN1 / IN2 and GND and checked the voltages on the opposite side with only the HV and HVG connected to the 7.4 volt battery. Perhaps its obvious to others, but it took me some time to figure out OUT1 / OUT2 are the GND to the high voltage power. I then connected the transistors one at a time and checked the output voltages on the emitter using the watch battery to simulate the GPIO ports being connected to IN1 and IN2. Finally I connected the relays without any other circuitry to verify I could hear a click. Once all of this was working I booted up my Gumstix and replaced the watch battery with the GPIO ports.
Programming
This section has not been written. Copies of the crontab for the gumstix and all perl scripts are here.
Backup GPS
I used this device as a backup. Note that this will not track your payload in flight as there is no logging and no cell service at altitude. This sort of project has been done with only this kind of a tracker which, assuming you land some place with cell coverage, should be sufficient to recover the package. In my case, this was a backup tracking device in the case the primary radio failed.
Weights and Balloon Inflation
| 7.4V Battery | 3.25 |
| 3.7V Battery | 3.25 |
| 9V Battery | 1.75 |
| Camera | 5.25 |
| Transistors (2) | 0.50 |
| Cutdown Relay | 0.50 |
| Power Plugs | 1.00 |
| Radio Relay | 0.75 |
| Radio | 1.25 |
| Optoisolator | 0.50 |
| Gumstix | 2.75 |
| Parachute | 5.75 |
| Ice Chest | 3.25 |
| Cell GPS | 2.25 |
| Extras* | 3.28 |
| Total Ounces | 35.28 |
| Total Pounds | 2.20 |
| Total Grams | 1000.03 |
* These weights do not account for a bit of duct tape, some extra hot glue, and a few other extras involved in packing everything into a small ice chest. For my calculations I rounded the total weight to 1000 grams. It’s likely just under that but it is best to be conservative.
Lacking a better method; that would involve compensating for temperature and humidity as well as a much more accurate flow meter, I created a dummy weight and inflated the balloon until the dummy weight seemed neutrally buoyant.
* Average Weight: The weight of the balloon itself
* Gross Lift: The recommended amount of lift to inflate the balloon to (the negative weight of the helium in the balloon)
* Nozzle Lift: The Gross Lift minus the Average Weight of the balloon = The negative weight of the filled balloon
* Payload: The recommended payload weight
* Recommended Free Lift: The difference between the Nozzle Lift and the Payload weight. If the payload weight is increased, you should also increase the Gross Lift so you keep the Recommended Free Lift. With this Free Lift value you should achive the specified Rate of Ascent.”
I calculated the figures above using a program called liftwin 0.41 available here.
I’m using a KCI3000. Data on the balloon is available here and is pre-loaded in liftwin.
Balloon diameter at launch – 6.9 Feet
Diameter at burst – 50 feet
Gross lift – 4.66 pounds
Peak altitude – 130,000 feet
Radio range is over 500 miles.
Average ascent rate – 830 Feet per minute
Time to peak altitude – 2.5 hours
Descent time is estimated at 1 hour.
I validated this using a spreadsheet and web page I got from Francesco Bonomi.
You can view the spreadsheet here.
– Donny
If you would like to email me my user name is dcshrum and my email account is a gmail account.
























