BalloonSat Stabilization With Compressed CO2




About: Hey I'm Marlin! I love designing and building new things, and I can't wait to share my ideas with you!

Hi! I'm Marlin with Team Airheads, a group of 7 college kids (Marlin, Griffin, Alexa, Alec, Chesney, James, and Quentin) at University of Colorado Boulder. We like space, and we like to build things. Team Airheads’ mission is to design, build, and launch BalloonSat TAFF-E to reach the near-space environment to determine the most efficient method of stabilization for the BalloonSat in the sky. Team airheads will accomplish this mission using compressed carbon dioxide to create torque, thereby stabilizing the BalloonSat and reducing spin around the vertical axis. As a result, this mission will help guide aerospace industries to design more cost, weight, and environmentally efficient methods of stabilization in the future.

We'd also like to give a shout out to COSGC for giving us this amazing opportunity!

Step 1: Wait... What's a BalloonSat? and Why This Mission?


  • A BalloonSat is a small, lightweight package used to carry and perform experiments at near-space altitudes. It's brought up to ~100K ft using a high-altitude weather balloon (in this case, it was filled with hydrogen).
  • Team Airheads wants to create a safe and more cost- and weight-efficient system for aircraft/spacecraft stabilization.
  • Hypothesis: we expect to discover a more efficient stabilization method that is also non-harmful to the environment.


  • Many past BalloonSat projects have been subject to uncontrollable spin during flight.
  • Many current stabilization systems are inefficient in cost and weight.
  • Many stabilization systems are harmful to the environment.

Step 2: Concept of Operations (CONOPS)

The CONOPS diagram provides a general mission overview. Prior to launch, all switches will be turned on and the power to internal components will be confirmed through LED’s on the exterior of the structure. Twenty minutes into flight, the BalloonSat will perform its stabilization cycle for approximately 1 minute. During ascent, the sensors within the structure will collect atmospheric data and the onboard GoPro camera will record the flight for as long as the battery and SD Card permit. The balloon will burst at approximately 100,000 ft. During descent, the BalloonSat will continue to collect atmospheric data and the parachute will be deployed for safe landing. Team Airheads will then track the BalloonSat using an attached GPS. Once the BalloonSat has been retrieved, all switches will be turned off and the SD cards will be retrieved to begin data analysis.

Step 3: Design


  • 140 mm x 140 mm x 190 mm foam core material lined with 9mm thick insulation.
  • BalloonSat secured to the flight-string using a system of bearings and a flight tube. The flight string, attached to the high altitude balloon, goes though the BalloonSat though a tubing system. It is connected to a bearing system, allowing the satellite to rotate independently of the sting for stabilization.


  • 2 Arduino Unos
  • heater
  • 20 g pressure regulator (we aimed to output 600 kPa)
  • threaded 20g CO2 cartridge
  • voltage regulator
  • 3 9V batteries
  • Turnigy Nano-Tech 370 mAh 3s Battery
  • 12V 370 mAh Lithium Polymer battery
  • 2 solenoid valves
  • 9 Degree-of-Freedom sensor
  • GoPro Session 4
  • 1/8th inch NPT tee connector
  • 1/8th inch I.D. hose barb tee connectors
  • 1/4th Inch O.D. tubing
  • insulation
  • accelerometer
  • temperature sensors (internal, external)
  • humidity sensor
  • pressure sensor
  • 2 OpenLogs
  • bearing system (bearing and 3D printed casing designed by us)
  • 3 MicroSD cards
  • foam core

*** Detailed parts list including cost and mass is attached***

Step 4: Arduinos: Control and Data Handling

Both Arduino Unos will collect and record data onto a 2GB MicroSD card interfaced through the OpenLogs. The footage captured by the GoPro Hero4 session will be saved to its own 32GB card. Power for project TAFF-E will be provided by three 9V batteries and one 12V 370 mAh Lithium Polymer battery.

Our complete functional block diagram above shows each Arduino Uno's responsibilities.


  • Responsible for the data collection from the temperature (internal and external), pressure, and humidity sensors.
  • The atmospheric data sensors are attached to our Balloon Shield (powered by a 9V battery), designed specifically for our BalloonSat, and this system is attached to Arduino #1.

ARDUINO #2 (code attached)

  • Responsible for the data collection from the gyroscope, accelerometer, and magnetometer components of the 9 DOF sensor.
  • If the 9-DOF sensor detects an angular velocity value greater than ±10 degrees/s about the z-axis, Arduino #2 will signal to fire a solenoid until the angular velocity is within ±10 degrees/s of 0.
    • Angular velocity values less than -10 degrees/s correspond to counterclockwise motion; when these values are read, Arduino #2 outputs HIGH on pin 3, thus energizing a transistor and allowing current to pass through the clockwise solenoid valve. In turn, motion is slowed.
    • With angular velocity values greater than +10 degrees/s, the BalloonSat is spinning in a clockwise motion. To counter this movement, pin 4 outputs HIGH, thus energizing a transistor corresponding to the counterclockwise solenoid valve.
  • Will write data to the 2GB SD card via the OpenLog. This data will be written as the time stamp, followed by the gyroscope readings in x, y, z order, then by the accelerometer readings in the x, y, z order, followed by pitch, roll and heading. The software will also write out important events, including the start of the stabilization, the start of the default spin, and when each thruster is turned on or off.
  • The electrical power for the solenoid valves will be sourced from the 370 mAh Turnigy 3-Cell Lithium Polymer battery, which will also power Arduino #2. A relay switch, controlled by Arduino #2, will be implemented in order to autonomously provide 12V of power to the designated valve.

Step 5: Structural and Sensor Testing

Our team performed extensive testing on our BalloonSat before launching it to near-space altitudes and temperatures (30 km at -80°C).

  • Whip Test: Ensures the satellite’s structural quality during the balloon burst. The satellite will be subjected to extreme conditions and g-forces immediately after the high-altitude balloon ruptures but must maintain structural integrity. To simulate this situation, we will conduct a whip test in which one team member whips the satellite around in circles above his/her head on a long rope. Successful!
  • Drop Test: Assurance of satellite structure upon impact. At the termination of the mission, upon satellite return, it is expected to hit the ground at around 60 kph. To test satellite structural quality, the satellite will be dropped from a two-story balcony. Successful!
  • Stair Test: After ground impact, the satellite may tumble or be dragged for a significant distance before stopping. To ensure the satellite can withstand this situation, a team member will throw, drop, and kick the satellite down two flights of stairs. Successful!
  • Cold (Dry Ice) Test: During flight, the BalloonSat will reach an altitude of ~30 km, resulting in possible -80°C temperatures. Without proper thermal insulation, the Arduinos, GoPro, and other hardware will cease to function properly. Thus, it is imperative that the satellite be built in such a way to prevent the internal temperature from dropping below -40 degrees Celsius (as that is the minimum temperature for an operable Arduino Uno). To simulate the -80°C temperatures of near-space, the satellite will be placed in an insulated container of 10 lbs of dry ice for 3 hours. Successful!
  • Sensor Testing (Humidity, Internal/External Temp., Pressure, 9 DoF, Accelerometer): Various testing on each sensor was performed to verify that each system functions properly. All were successful!
  • Compressed Air Test: The main purpose of our BalloonSat is to test the practicality of compressed air thrusters in space. Thus, the mission is based entirely on the functionality of the compressed air thruster system. Beforehand, the on-board Arduino will be programmed to determine necessary attitude control and activate the compressed air thrusters based on this data. The goal of the compressed air thrusters is to stabilize the satellite to a minimum rotation (30 rev/min) so the GoPro camera can take more steady pictures. To conduct this test, Airheads will hang the satellite on a string and then spin it. The compressed air thrusters will then stabilize the satellite as stated above so that its rotational velocity decreases. The test is successful if the satellite stabilizes and the accelerometer determines that no more adjustments are necessary (based on our Arduino code). Successful!!
  • Camera Test: This test ensures that the GoPro Camera system functions properly. The GoPro will be used on the mission as a documentation tool, taking pictures of the outside environment. Successful!

Step 6: Ready for Flight!

After a 3 hour mission simulation test, in which our BalloonSat was hung from a pole above a fireplace, we decided we were ready for flight. When the satellite was spun, the compressed air thrusters were successful in stopping the satellite spin during the test. Our Arduino stabilization code was run and the accelerometer data was used by Arduino #2 to turn the solenoids on and off. The compressed air was released to counteract each direction of spin. There were five main points in which the satellite was spinning and the thrusters stabilized the satellite (pictured above). Thus, we decided that the satellite is a GO for launch!

Final Mass: 953g

The graph above shows a successful stabilization test, and we hope to gather similar data during flight.

The video attached shows the stabilization cycle during our mission simulation test.

Step 7: Launch and Recovery

Our team arrived at the launch site in Windsor, CO on 11/11/17 at approximately 6:00 am. The CO2 cartridge was installed by Quinton at 6:30 am and the BalloonSat was sealed at 6:35 am. It was launched at approximately 6:50 am, and James was the payload handler. All team members were involved with the recovery process. The BalloonSat was tracked passed Sterling, CO and landed in Fleming, CO at 9:10 am. It was retrieved at 11:30 am by Griffin, Chesney, Alexa, and James, and the payload returned with minimal damage to the exterior. Arduino #1 was still active upon retrieval. We opened the payload at approximately 7:00 pm, discovering interior physical damage. The tubing disconnected on both solenoid valves and the 3.3V wire from the gyroscope to Arduino #2 disconnected.

Max altitude: 101,100 ft

Launch video is attached.

Step 8: Results and Analysis: Atmospheric Data (Arduino #1)

All of our atmospheric data went exactly as expected! Graphs from each sensor can be found above. Team Airheads was able to achieve 270 minutes of data from Arduino #1, including the entirety of the flight as well as the 140 minutes when the payload was on the ground.

  • Pressure: The pressure decreased consistently with altitude until burst at approximately 90 minutes into flight. The pressure was constant for a short time before launch, decreased until burst, began to steadily increase until landing, and then was constant until rescue.
  • Temperature: The external temperature readings contain a sharp decrease after launch. At the tropopause, the temperature begins to increase through the stratosphere. It begins to slow down when it reaches the stratopause. After burst, the external temperature readings begin to decrease and then increase again until landing. The lowest recorded external temperature was roughly -30℉. The internal temperature data collected also went as expected. The heater was effective in that it did not let the internal temperature dip below 30℉ for the entirety of the mission. The internal readings were subject to similar fluctuations in temperature as the external, but the insulation and heater lessened the severity of these fluctuations.
  • Humidity: After launch, humidity decreases with altitude and pressure decreases. There is a slight increase in humidity when the BalloonSat enters the stratosphere until burst. Immediately after burst, the humidity sharply decreases, which may be caused by excess condensation inside of the BalloonSat being blown away by the increased velocity downward after burst. Humidity begins to increase as the vessel descends until landing. After landing, more excess condensation may have evaporated, causing the decrease in humidity on the graph.

Step 9: Results and Analysis: Stabilization Data (Arduino #2)

On the other hand, we had a few issues with our gyroscopic data. Due to the tubing disconnection from the solenoid, our stabilization system did not perform correctly. Our code ran normally; however, the CO2 could not be used to stabilize the BalloonSat. Fortunately, we were able to get our system back up and running!


  • Accelerometer: The accelerometer data is noticeably erratic in the X and Y dimensions at launch due to the sudden change of acceleration when the payload slightly jerked from the payload handler. Due to its swinging and spinning motion, the BalloonSat experienced varying acceleration, which is shown on the graph experiencing between (-½)g and (½)g. At burst, there is a spike in acceleration due to the sudden change from the burst itself. After burst, there are sporadic changes in the x and z direction due to effects of post burst, but it returns to almost pre-burst patterns after the parachute deploys.
  • Gyroscope: We expected to find a decrease in rotational velocity at a constant rate when the thrusters fired, and any rotational velocity should have been countered with the thrusters, keeping the rotational velocity close to zero. The data recorded from flight indicates that no counterforce was applied to diminish spin. The data collected during the BalloonSat’s stabilization cycle is chaotic and does not show a decreased rotational velocity, due to the failed stabilization system. The craft continued to spin erratically during the cycle.


  • We decided to focus our investigation on leakage and discharge of CO2 prior to the stabilization cycle.
  • After completing a full pressure mission simulation test, in which a CO2 canister was inserted into the pressure regulator for 30 minutes, this test resulted in the immediate disconnection of a tube leading into one of the solenoids. This caused a rapid discharge of CO2 and ultimately, pressure system failure. We determined that the pressure contained by the tubing system was too high for connections to hold.
  • Between pre-flight testing and flight, the regulator’s output pressure may have been inadvertently increased so that the tubing could not sustain the buildup of pressure exiting the regulator during flight. This theory aligns with our observation of the tubing being disconnected upon retrieval.
  • With this theory in mind, our team decreased the output pressure of the regulator before our next test. With the lowered output pressure, the tubing withstood the pressure of the CO2.

SUCCESS (Arduino code attached)

  • After determining the cause of the pressure system failure, Team Airheads set out to test the viability and consistency of the flight algorithm and solenoid valve system.
  • Using an external air compressor at 30 psi, we were able to conduct extensive testing on the satellite.
  • The second graph depicts one of the tests ran. The blue dashed lines in the figure represent the moments when external rotational force was applied to the BalloonSat. The figure clearly shows that after the initial spin, the stabilization algorithm consistently works to reduce spin to values well within ∓50 degrees per second of 0, and maintain this range while fighting accumulated tension from the wound flight string. This system takes only roughly 3 seconds to effectively eliminate spin. Success!!!

The video attached shows a successful stabilization test.

Step 10: Conclusion

Team Airheads was successful in creating a system to counteract BalloonSat spin effectively in a controlled environment, however, we were unsuccessful in our attempt to stabilize the BalloonSat during flight. We found although optimal with its reduced mass and powerful torque, the stabilization system falters due to its lack of fuel, unreliable seals, and sensitivity to pressure. This form of stabilization could be effective on a craft that uses the stabilization cycle within the first 10 minutes of flight for a short duration of time or one that is able to compress gas on its own continuously. After the testing and configuration of a stabilization system controlled by compressed CO2, Team Airheads was able to conclude that our attempt to stabilize the BalloonSat using compressed gas was not the most efficient way to control spin, yet it was effective for a short time. Overall, we can conclude that stabilization by compressed gas is effective for short duration but is difficult to implement on the scale of a BalloonSat.

In the future, we plan to relaunch our BalloonSat with our fixed stabilization system!



    • Arduino Contest 2019

      Arduino Contest 2019
    • Trash to Treasure

      Trash to Treasure
    • Tape Contest

      Tape Contest

    58 Discussions


    1 year ago

    2 problems I see.

    When you filed for your balloon flight with the FAA, did they know you are using a pressurized cylinder above its rated limits. I believe the FAA would not allow this launch if they knew about it because this constitutes a bomb.

    The only way to stabilize objects on one axis is with counter rotational spin. You need two disks spinning in opposite directions to stabilize the platform. One spinning disk is using the balloon to stop counter spin, which fails when the balloon breaks. Look at the Russian KA-50 helicopter for directional control. However change to batteries and an electric motor as your pressized container is illegal to fly.

    3 replies

    Reply 1 year ago

    Our BalloonSat was legal to fly. Our team submitted various proposal documents to the NASA Colorado Space Grant Consortium, which approved our mission before we started building.
    We countered our rotational spin along the vertical axis by outputting the compressed CO2 in the direction opposite of its spin only during ascent. We knew that after burst, stabilization could not be achieved through our system.


    Reply 1 year ago

    Haha, good one, The space grant has nothing to do with FAA clearance. The FAA is responsible for everything up to 60,000 ft including all weather balloons. If your launching rockets then FAA will direct you to their rocket launch center (its changed since I last went through the process)

    NASA has absolutely no authority to approve or deny what your doing, that's the FAA which has to issue the NOTAM's (Notice to Airmen) for aircraft to steer clear of your weather balloons on their way up and down. The FAA won't allow untested pressurized cylinders to be flown without seeing some testing procedure that states the equipment has been tested and won'y blow up, and won't cause damage to property or injury to people.

    The electronics in weather balloons have been tested and do not cause injury or damage when they land. Your package contains a chunk of steel in a pressurized container. Genuine weather balloons are all launched from fixed locations, all at the same times of day, so this is accounted for by Air Traffic Control. You launched from an unknown location, with no concern for the aircraft flying above you, and Air Traffic Control had no notice you were doing it. Should your weather balloon hit an aircraft, either going up or down, that puts your action as criminal intent because you didn't get the proper approvals and clearances.

    So here's how to do it legally. Contact the manufacturer of the equipment your using and tell them what your doing with it. Ask them if they have any test data form them or others who have tried it before. Then you have to contact the FAA, start with the group handling weather balloons. They will tell you their requirements, and the insurance you will need to get. Your flying a nonstandard weather balloon so that will require special insurance from an aviation broker. Expect to pay between $250-$500 per flight.

    Once you have insurance, FAA clearance and an approved field to fly from, you will be given date and times which you can do so, because they need to clear your activities with the needs of the aviation world.

    It didn't used to be this way, but thanks to the 2000 Space Launch Competition, and September 11th, and all the drones,you just can't launch something and not get into trouble from someone. The fact that the NASA group didn't tell you what clearances you need is appalling.


    Reply 7 months ago

    To fly a Balloonsat legally all you need to do is comply with the applicable law, which in this case is Title 14 CFR Part 101.

    Your statement "You launched from an unknown location, with no concern for the aircraft flying above you, and Air Traffic Control had no notice you were doing it." is absolutely incorrect.

    The agency that launches the balloons for CO Space Grant performs all required coordination with the FAA and provides them with all required notifications on the day of flight to ensure that every flight is conducted within the law.

    The statute spells out what can be flown on a balloon, under what conditions, predicted flight path, etc. and what coordination is required. With a mass of less than two pounds, as long as it was not flown through a prohibited area (per paragraph 101.1) this balloonsat would actually be exempt from the regulation and FAA oversight (unless it was flown on the same balloon with other Balloonsats and their combined weight was more than 12 pounds).

    No need to hassle Marin_j, her flight was totally legal!


    1 year ago

    Clearly faked, as we can see curvature of the Earth - which is impossible, due to it being flat...


    1 reply

    Reply 7 months ago

    From 101,000 feet the curvature of the earth is barely discernible. The curvature in most Balloonsat pictures are artifacts of the fisheye lens on the camera.


    1 year ago

    This is pretty inspiring!

    I've often entertained the idea of launching a camera on a balloon. As balloons are pretty much controlled by the prevailing winds and seem to rotate at will, I don't want a video of the earth spinning and turning below.

    A fin or rudder won't work on a balloon because the air speed of a balloon is zero mph/kph/fps, etc.

    Regarding landing... 30+kmh impact would be more than I'd want. That's like a 15' drop.

    1 reply

    Reply 1 year ago

    Thank you! And exactly! We all wanted to get stable, non-blurry photos, so we designed this stabilization system. In the future, maybe we can make larger parachutes to slow the landing speed.

    Frank RN

    1 year ago

    Great job. Wish I could be part of the team. At 68yo, I still love these type of projects. All we got to do 50 years ago was to fly model rockets which was a blast. It is so great that you now have the ability to do some real science.

    All my best to you ;-)

    1 reply
    marlin_jFrank RN

    Reply 1 year ago

    Thank you! :) We're so grateful to to have the opportunity to do experiments and projects like this one.


    1 year ago

    Since the toxic thrusters are a no go... I was wondering if there can be a light enough package to mix say powdered metal and an acid to create the gas. You'd think maybe an auger as the metal powder valve going into a volume of acid with maybe a scrubber, though probably not needed. For more pressure either the exhaust size can be made smaller or some sort of pressurizing container in between. Not sure if practical due to mass... though is a healthier cleaner way than hydrazine methods. I was almost thinking the same to produce ammonia... though that would be grosser than hydrogen. Seems mass is more also if using other chemicals and gases.

    I like the ideas of piping from the balloon also... never heard of that.

    3 replies

    Reply 1 year ago

    A more energenic method would be to use a highly controlled nitrogen release from a similar auger valve (with some sort of combustion chamber check valve design) with an azide or like airbags or primers have. I was thinking about this for another application recently. You'd need a heating coil though to ignite or something mechanical (may be lighter method).


    Reply 1 year ago

    Way awesome by the way. Really cool project and detailed instructable. Thanks for sharing!


    Reply 1 year ago

    Thank you so so much! And your ideas are awesome! Our biggest issue was finding a propellant at a low mass but with high power that would last a long time. I'd love to see your ideas put to the test some day to find the best method.


    1 year ago

    Compressed Air Test:?

    The compressed air was released...?

    Where did the compressed air come from?

    Thought this was about CO2?

    1 reply

    Reply 1 year ago

    The compressed air is the compressed CO2 from our CO2 cartridge.


    1 year ago

    I have several ideas for a near-sat balloon:

    1- on the base the balloon(s) is (are) filled with Hydrogen instead of Helium (chemistry class can help!), a mechanism able to deflate the balloon(s) (valves...) when the outside pressure is decreasing would prevent the burst and, thus, likely allow higher altitudes, while also slowing down the beginning of the fall, drop the balloons when it's getting too fast (and hot!).

    2- instead of a box (no need to prove the lack of aerodynamics), use a GPS to self-guide a glider, so you can make (kinda) sure that your balloons land as close as possible from where they took off (I live on a island, recovery is most likely unfeasible...).

    What do you think?

    1 reply

    Reply 1 year ago

    Your ideas are great! They both sound like awesome projects. I really like your first idea--letting out the hydrogen in order to reach higher altitudes. Maybe in the future we can implement this idea with other BalloonSat missions.


    1 year ago

    You were at the engineering expo! Really awesome to see your project here as well!

    1 reply