This 300-level project was completed for AERE 3610 at Iowa State University. Our team, Code Wizards, programmed an Adafruit CLUE board using CircuitPython to collect and log flight data during a high-altitude balloon launch (HABET). The goal was to build a functional, low-cost data collection system while gaining hands-on experience with embedded systems.
Huge Shout Out to the Fall 2024 HABET Team Members for allowing our team and others to collect data from the balloon launch!
Build and program a working sensor payload using the Adafruit CLUE
Successfully collect and store data during the HABET flight
Learn embedded programming and sensor integration
Present our findings in a final report and technical presentation
access to high-altitude atmospheric data is often limited by cost and complexity. This project aimed to create a simple and affordable system for collecting environmental data during balloon flights, allowing for educational and research use.
We developed a compact data-logging payload that included:
The Adafruit CLUE board and onboard sensors
CircuitPython scripts for real-time data collection
External storage for logging pressure, temperature, humidity, altitude, and acceleration
The system was tested, integrated into the HABET payload, and flown during the spring semester launch event.
We divided access to the Adafruit CLUE board among teammates to allow for development and testing, regularly sharing our results and insights to stay aligned.
CircuitPython template code was used as a starting point, which we then modified to create custom data logging scripts. We wrote and tested our code using GitHub repositories and Visual Studio Code, running scripts directly on the CLUE board.
To prepare for flight conditions, we scaled down distance and temperature values for controlled ground testing before applying full-scale mission parameters.
Throughout development, we addressed hardware limitations, performed sensor calibration, and solved power supply challenges to ensure reliable data logging in flight conditions.
After final testing, the board was sent to the M2I team for integration into the HABET payload and eventual launch.
Following the flight, we processed the recorded data, performed smoothing techniques, and generated various plots to analyze environmental trends throughout the mission.
During the flight, the payload recorded environmental data using the Adafruit CLUE board’s onboard sensors. The collected parameters included:
Temperature
Barometric pressure
Humidity
Acceleration (X, Y, Z axes)
Altitude
After the mission, the data was extracted, cleaned, and visualized to evaluate both sensor performance and atmospheric trends. To aid interpretation, the graphs below are color-coded in 5,000-foot altitude increments, which were automatically updated by the board during flight.
The visualized data is split into two sections—0 to 40,000 feet and 40,000 to 80,000 feet—to clearly show changes in humidity and temperature throughout the full ascent. These plots help confirm expected environmental behavior across the troposphere and stratosphere.
See the images below for detailed insights from the recorded data.
Together, these two plots above show the full humidity profile recorded during the balloon’s ascent, from launch to peak altitude.
Start to Halfway (Left Plot):
The humidity sensor detected a high concentration of moisture near ground level, with values starting around 40%. As the balloon ascended through the lower atmosphere, humidity steadily decreased. Minor plateaus and drops in the curve may correspond to different atmospheric layers or shifting environmental conditions. By around 35,000 feet, humidity dropped to near zero, which is consistent with typical upper troposphere behavior.
Halfway to Peak (Right Plot):
Beyond 40,000 feet, humidity remained extremely low. Most values hovered close to 0%, with very little variation until the balloon reached its maximum altitude above 80,000 feet. This trend confirms the expected dry conditions of the upper atmosphere and shows that the sensor maintained accuracy even at high altitudes.
Overall, both plots validate the sensor’s functionality throughout the mission and illustrate the inverse relationship between altitude and humidity. The transition from high humidity near the surface to dry, stable air at peak altitude follows textbook atmospheric behavior and demonstrates successful environmental data collection.
These two plots above show the full temperature profile recorded during the balloon's climb, from launch to peak altitude.
Start to Halfway (Right Plot):
In the lower atmosphere, temperature decreased steadily with altitude, beginning around 85°F near ground level and dropping to roughly 10°F by 40,000 feet. This trend follows the expected lapse rate in the troposphere, where temperature decreases with height. The consistent slope also confirms stable sensor readings during this phase of flight.
Halfway to Peak (Left Plot):
In the upper atmosphere, temperature began to rise with altitude, which is characteristic of the stratosphere. The values increased from about 3°F near 50,000 feet to over 25°F at 80,000 feet. This reversal in trend is due to ozone absorption of ultraviolet radiation, which warms the upper layers of the atmosphere.
Together, these plots illustrate the full thermal structure of the atmosphere during the balloon's ascent. The data confirms that the onboard sensor accurately captured the expected transition between the troposphere and stratosphere, validating both the balloon's altitude performance and the reliability of the temperature sensor.
See the images below for more images of the HABET team launching the Balloon.
If you're interested in a more detailed look at our sensor performance, code structure, and full environmental data analysis, you can download and read the complete project report below.