Working with a professor at my college and Carolina Edge of Space in May of 2010 I, along with a small group of friends, sent a weather balloon 74,642 feet into the sky. This post is mainly about the payload I designed, built and tested for the project.
This project was inspired by many seen recently online where students have been sending cheap payloads into the stratosphere. It started around December 2009 when we all met for the first time to discuss the project. It turns out that one of the professors in the Earth Sciences department focuses on remote sensing (gathering data about earth from satellites, etc.) who had done some weather balloon projects in the past. We all got together to discuss a possible launch.
Originally, the group included a lot of people, however, as time went on, fewer and fewer people showed up at the meetings or participated in the email conversations. There would be several payloads. Carolina Edge of Space would have a GPS tracking radio, the professor hosting this would carry two cameras in a payload with a HOBO data logger, one Grad student would build an “ash detector” and my group would build something to take a multitude of measurements.
First the payload sensor were picked out. Of course we wanted pictures. The professor provided us with Nikon Coolpix digital cameras and 2GD SD cards. These were chosen because they have a built in intervalometer and were very small. I tested the camera in my freezer (which gets down to -20 degrees Celsius (-40F) and usually got about 2 full hours of pictures every 30 seconds before the battery died. this was plenty as we expected about a 2 or 3 hour flight. Turning off the flash and increasing the time between pictures helped extend the life of the battery.
As for the custom payload, we wanted a barometer to see the change in air pressure, accelerometers to see how hard the payload would be whipped around in the winds, some ozone sensors and such to measure concentrations, a GPS so we would have a good clock as well Latitude, longitude and altitude. What seemed like a great custom embedded systems project turned into a simpler Arduino-based project as time and money became an issue.
I tried to get nice ozone sensors, however, everything was way too expensive and none of the companies I contacted were willing to donate to our cause. Then I remembered that I had seen some neat gas sensors at Futurlec, such as ozone sensors, and “air quality” (what ever that is…) that were quite cheap. I grabbed a couple of each to play around with. I tested the Ozone sensor by placing it inside a bag with a running DC motor. The brushes of the DC motor arc as they move across the sections of the commutator and ionize the air. This effectively produces a bit of ozone (its that almost metallic smell DC motors or high voltage electronics give off.) The graph below shows the results of this test as raw ADC values from an arduino. Here you can download the raw ADC values and graph from this test in Open Document Spreadsheet format.
I also bought a few different barometric pressure sensors. The one I bought specifically for the weather balloon was hard to use as it was a differential and had to have a known pressure on one side to compare to. It also has two output pins which required an op-amp circuit to output the difference in pressure. Testing proved this was not the easiest sensor to use as I didn’t figure out the best way to seal off one side of the sensor. Instead I settled for a sensor that had a built-in vacuum on one side, and a single output pin, the MPXA6115A . This new pressure sensor would only go down to 15kPa (about 33,000ft I think) but I assumed that if we took external temperature as well, we could correlate it with the pressure up to a point, and when the senor stopped working, we could calculate the pressure based on the temperature data using a barometric formula.
Additionally, we wanted to use a GPS to get altitude data. I’ve been told that some GPS unit manufacturers limit the capabilities of their units to below 60,000 ft and a certain speed for safety reasons but I couldn’t find any info on that for my particular unit, the San Jose Navigation FV-M8 GSP module.
Acceleration was also something we wanted to measure. We used a Sparkfun ADXL300 3 axis accelerometer. Actually it had a 2 axis gyroscope built in as well, but we ran out of analog input pins on the Arduino and wanted to keep this as small and simple as possible, so we left those off.
All data was stored to a 2GB SD card.
I breadboarded the GPS, accelerometer, barometer, and gyroscope package and slapped together a simple SD card interface. The libraries I used were TinyGPS and fat16lib (for SD card use). Weather_Balloon_Code and schematic in case you’d like to build it yourself.
I flew this in a modified model rocket. I had two flights, one with an E-15-4 engine and the other with an E-30-4 engine. Here’s the Excel file of each of those two launches that show the values and plotted graphs of each flight.
I’m not sure which one used which engine. Here you can see a graph of the raw ADC pressure sensor values from one of the rocket launches. The air pressure decreases as the rocket altitude increases. You can see the wind and other affects from the rocket sitting on the launch pad, then then drastic drop in pressure at the launch. The ramp up on the end of the graph is when the rocket was floating back to the ground under a parachute. Calculations showed it went about 600ft I think.
To calculate the height the rocket went, we simply need to know a few little things about the set-up. (This gets a bit mathy, but not too bad). First, we knoow that the Arduino was set up to use a 5V ADC reference voltage, and it was set to do 10-bit conversions. Knowing that we can calculate the voltage that each raw ADC unit represents.
ADC Voltage / Max number the bits can represent
Multiply this by the lowest barometer reading we got (794 raw ADC units)
This is the voltage that the sensor was outputting. Now we look at the datasheet of the barometer (MPXA6115A) to find a conversion formula from volts to a measure of air pressure kPa.
Solve this for P since we already know the voltage:
Now we can convert the kPa into a value we can use in an online Pressure to Altitude calculator such as inches of mercury. (1 kPa = 0.295333727 inches of mercury)
Now inserting this number into the online Pressure to Altitude calculator, we can get a rough altitude above sea level for the rocket, about 1280.6ft (390.3 meters). This is above Sea-level, not the point that we launched. I happen to know that the height of the ground at the launch site is between 500-700ft (150-215 meters). So I subtract the average height (600ft) of the ground from the Altitude calculation I got previously to get:
1280ft – 600ft = Rocket height of about 680 feet.
*Formula graphics provided by this Online LaTeX Equation Editor.