TL:DR: The StratoSoar project is a low-cost, lightweight Unmanned Aerial Vehicle (UAV) designed for deployment from a weather balloon at various altitudes, aiming for autonomous and efficient flight to designated GPS coordinates. By offering a more affordable, compact, and lightweight alternative to conventional UAVs, StratoSoar aims to empower educators, researchers, and hobbyists with an accessible platform for exploration and experimentation.
StratoSoar glider. | StratoSoar MK3.0 circuit board. |
Computational fluid dynamic sims. | Soldering of the board. |
StratoSoar is a low-power, adaptive UAV that is dropped from a weather balloon at approximately 5,000 feet, with plans to reach even higher altitudes soon. The main goal of StratoSoar is to fly to selected GPS coordinates efficiently or choose a closer, more realistic landing site without human interaction. The current aim for StratoSoar is to operate on a single 600 mAh 15 gram LiPo battery for a 10+ hour flight.
UAVs, or Unmanned Aerial Vehicles, are autonomous aircraft, usually in the form of planes or drones. They have many applications, such as delivering medicine, food, and supplies to remote areas, participating in aerial combat with the military, and conducting aerial imaging.
- Quadcopter (typical drones)
- Fixed-wing aircraft (like StratoSoar)
- Large (5-15 meter wingspan)
- Heavy (2-20 kg)
- Expensive ($10,000-10,000,000 USD)
- Closed source and proprietary
- Weight: less than 250 grams
- Wingspan: 80 cm
- Cost: less than $150 USD
- Open source and accessible
I'm currently considering two main concepts: an educational kit for students and hobbyists or a platform designed to study the aerodynamics of the stratosphere, a field with limited existing resources. Additionally, I'm exploring other ideas such as reusable radiosondes, systems for remote delivery of medicine and parcels, and advanced atmospheric monitoring solutions.
StratoSoar MK3 is an advanced autonomous glider designed to operate at high altitudes, such as those reached by weather balloons. The glider is attached to a weather balloon via a cutdown mechanism. Once the balloon reaches the desired altitude, the cutdown mechanism releases the glider, initiating its descent. The glider then navigates autonomously to specified coordinates, using a combination of sensors, advanced algorithms, and low-power electronics.
-
Autopilot System:
- GPS and IMU Integration: StratoSoar uses a custom GPS module and an IMU, both designed for low-power operation. The IMU data is processed through a Kalman filter to provide accurate Attitude Heading Reference System (AHRS) data, including pitch, yaw, and roll. This information, combined with GPS coordinates, enables precise navigation.
- Advanced Waypoint Navigation: The waypoint navigation system is designed for complex flight paths, incorporating advanced turning algorithms to ensure smooth and accurate direction changes.
- Servo Control with PID: A PID control mechanism governs the rudder’s servo, ensuring precise adjustments to the glider's course based on real-time feedback.
-
Communication and Data Logging:
- LoRa Telemetry: The glider continuously beacons its location via LoRa communication, which includes forward error correction for reliable data transmission. This allows for real-time tracking and data collection.
- Data Logging: Critical flight data, including sensor readings and GPS coordinates, are logged using a combination of SD card and EEPROM storage, optimized for low power consumption.
- Camera: If configured, the glider uses a custom designed camera module to take photos at specific coordinates or record the entire flight.
-
Modularity and Customization:
- Hackability: StratoSoar is designed to be highly configurable and hackable. Users can customize its descent strategy, whether by spiral descent, parachute deployment, or alternative landing locations. The codebase is modular, allowing for easy modifications or the addition of new features.
- Camera Module: An optional low-power camera module can be added to capture photos or video during the flight, with Python scripts available for post-processing the footage.
-
Ground Station and Data Handling:
- Ground Station: The ground station, built on an ESP32 platform, receives telemetry data from the glider via LoRa. It logs this data locally and communicates with a server using HTTP requests. A Flask-based uploader script then transfers the data to SondeHub for analysis and storage.
-
PCB Design:
- StratoSoar MK3 PCB: The main PCB, optimized for power efficiency, size, and cost, integrates over 100 components, managing the various systems onboard.
- Additional PCBs: Supporting PCBs, such as those for the GPS module, LoRa communication, camera, and IMU, are designed for specific tasks, enhancing the glider's overall functionality.
Upon release from the weather balloon, StratoSoar begins its guided descent following waypoints or single target coordinate. It calculates the optimal flight path using its GPS and AHRS data, making real-time adjustments to its trajectory through the PID-controlled servo system. Depending on user configurations, the glider can either glide smoothly to the target coordinates, initiate a spiral descent, or deploy a parachute for a safe landing.
If the glider's altitude drops below a certain threshold, backup landing coordinates can be used to ensure a safe recovery. Throughout the flight, the glider’s location is continuously transmitted, allowing for easy tracking and recovery.
I'm only listing the key items, leaving out all the unnecessary stuff. This should give you a general sense of the project and all its features. Note that this is also only stuff I did during Hack Club Arcade.
Code/autopilot
: (5000 lines of code!)autopilot.ino
: The script that ties all of these files together.gps.cpp
: GPS code custom-made for low-power.waypoint.cpp
: Custom waypoint flight with advanced turning.lora.cpp
: LoRa communications with complex forward error correction.sd.cpp
+eeprom.cpp
: Data logging in a low-power manner.servo.cpp
: Ultra low-power servo functions.bme280.cpp
: Weather data sensor.imu.cpp
: An interial measurement unit running a Kalman filter.
Code/groundStation
:groundStation.ino
: The code for the receiving station of the LoRa telemetry, uses ESP32 and HTTP requests to communicate with the server, also locally logs data.uploader/flaskUploader.py
: A Flask server that uses an API to put all the data on SondeHub.
Code/camera
: Utilization of a low-power camera module and Python scripts for conversion.Code/calculator
: Python script to parametrically create flying wing glider.PCB/StratoSoar-MK3.0
: The main PCB consisting of over 100 components, optimized for power, size, and cost.PCB/gpsBreakout
: A PCB designed for testing a cheap, $2 Chinese GPS module.PCB/loRa
: The ground station to receive the glider's data.PCB/camera
: A breakout board for a low-power camera module.PCB/imuBreakout
: One of the first breakout boards made for a new Interial Measurement Unit.3D Files/cardboardGlider
: Parametric Fusion 360 design for a folding origami glider.3D Files/StratoSoar Rev2 v36
: High efficiency glider.
StratoSoar MK1 was the precursor and the spark to StratoSoar MK2. StratoSoar MK1 was officially developed from October 1st to July 30th, although StratoSoar MK2 was unofficially being worked on in the months of March through June. StratoSoar MK1 failed to fly autonomously, and it also failed to release from the balloon. Major upgrades have been made since then.
StratoSoar MK2 officially started on October 1st, and will end has now ended. It was a success.
StratoSoar MK3 officially started on June 1st, and will end in quite some time when I launch it from a weather balloon. A new major revision (eg. MK4) will come out every time when I release the glider from the balloon in the Summer. After the Summer, work on the next revision begins, with many updates and new features.
Also, I use "we" a lot in this writing. This usually refers to myself or this project, but it also refers to my small team over at New England Weather Balloon Society.
One last thing. When I refer to StratoSoar, I am referring to the project as a whole, but more specifically, the most recent version.
Yes! During flight, the ground operator has no direct control over the flight path, i.e. via a radio. Because of this, and it being unpowered, it qualifies as a free flight glider. Free flight gliders have very little regulations. You can think of them as a paper airplane.
Currently, StratoSoar is not available to purchase online as a kit or complete product. We have plans in the next few years to release a kit for schools, education centers, hobbyists and a complete product for industry at an affordable price. You are welcome to make one in the mean time!
One of the goals of StratoSoar was to make an affordable and open source system for anyone to perform stratospheric research, so all the files are available for free. This means that you can construct StratoSoar from scratch. A guide to do this will be available soon.
I'm in the midst of compiling this.
We currently have very limited funding to complete this project. We would love any donations or sponsorships we could get to elevate (no pun intended) this project to the next level. If you don't want to donate, but want to help out, we would love your support with other areas of this project. Reach out to me if you have interest at:
-
newbsballoons@gmail.com (organization email, recommended).
-
charlienicholsonr@gmail.com (personal email).
This project would not be possible without the following individuals:
-
Max Kendall (W0MXX) for working closely together with me.
-
Mike Malis for helping with the design of the glider.
-
Brett Miwa for schematic review, PCB design, electrical theory, and boost converter circuitry design.
-
Bob Phinney (K5TEC) for providing NEST and securing funding.
-
Mark Jessop (VK5QI) for answering all of my questions.
-
Mike Hojnowski (KD2EAT) for PCB design and hardware/software debugging.
-
Paul Hamilton for helping me with FAA regulations.
-
My parents!
And these entities:
-
Hack Club, for providing support for projects like this.
-
New England Sci-Tech (NEST) for providing a maker space to work, funding, and hosting NEWBS.
-
New England Weather Balloon Society (NEWBS) for expertise and the opportunity.
-
Bagel Fund, for providing funding.
- Hack Club - Hack Club is a non-profit designed for teenagers that provides support for projects like this.
- NEWBS - Max and Seth Kendall of NEWBS, or New England Weather Balloon Society, are helping me launch my project from a balloon. They are dedicated to helping people in New England launch weather balloons.
- New England Sci-Tech - Bob Phinney of NEST is hosting NEWBS. NEST is a great maker space. If you are in the Greater Boston Area, go check them out!
- StratoScience - This is the official class that I'm in helping me launch my project. This is a high altitude engineering class for teens. Check them out if your are in the Greater Boston area!
Do you have any questions? Are the docs incomplete and you want to ask anything? Do you just want to say hi (or how cool my project is!)?
Reach out to me at charlienicholsonr@gmail.com.
The glider was realeased from 5,000 feet. You can see the launch video here. You can find data on the release here.
Both the software and documentation are under the GNU GPL v3 license. The hardware and the 3D files are under the CERN Open Hardware Licence Version 2 - Strongly Reciprocal. The media is under the CC BY 4.0 DEED.