A battery-powered, barometer-driven release system that automatically drops a payload at a configurable target altitude.
I've been participating in the Hungarian CanSat competition for two years. In my time working on the model satellite, we launched prototypes 4 times on high altitude weather balloons for testing. A key piece in these tests is the release system: it drops the CanSat before it flies too far away, making recovery marginally more difficult. However, the release system was always a pain point. Difficult to set up, integrate into existing systems' code or unreliable.
I decided to build something that solves all of these problems:
- independent electronics, keeping complexity low
- separate power supply: no battery drain
- reliability: built around a "drop plate" design
- easy setup, effortless configuration, solid construction
Using barodrop is easy. Here's how it's done:
- Write your desired configuration (altitude, timeout) to a microSD card and insert it into the main board.
- Hold the flyaway part in place in order for the servo to lock it in place.
- Plug in the battery to power on the system while holding the flyaway part.
- Screw in the side panel.
- You are ready to launch!
So you want one of these for yourself? The following guide will walk you through building it step-by-step.
You'll have to source some components to build barodrop. You can find everything needed in the table below. I included the links for where I got the components.
| Component | Description | Link |
|---|---|---|
| Adafruit Feather RP2040 Adalogger | main board | Mouser |
| Adafruit BMP390 | barometer | Mouser |
| Adafruit MiniBoost 5V | booster | Mouser |
| Tower Pro MG90S | servo motor | HESTORE |
| JST PH 2-pin cable | battery cable | Mouser |
| CNC Kitchen M2x3 | threaded insert | 3DJake |
| CNC Kitchen M2.5x4 | threaded insert | 3DJake |
| cylinder head M2, M2.5 | screws | locally sourced / Amazon |
| Dupont Wires | jumper wires | locally sourced / Amazon |
Any screws (with the correct sizes) and any wires you have lying around the house will do. If you do not have any, chances are you can find these at your local hardware store. I included some Amazon links for reference.
You can find a more detailed BOM in the repository files.
To complete the build, you need to 3D print some parts. If you do not own a 3D printer, try a print-on-demand service. Additionally, a soldering iron with a threaded insert adapter, some solder and very basic soldering skills are needed.
Get started by 3D printing the enclosure. I recommend using PETG.
STL files: /STL
STEP files: /STEP
Print each file once. The "flyaway" part needs to be reprinted with each use, since it flies away with the balloon on release.
To be able to screw the different components together, you need to install threaded inserts into the 3D printed parts.
- 2x M2 threaded inserts go into the top enclosure's bottom, near the hole in the middle.
- 1x M2 threaded insert goes into battery holder
- Populate the rest of the holes with M2.5 inserts.
Follow this wiring diagram to connect the components together. You might need to cut off a plug from the end of the servo's wires.
The battery comes with an incompatible connector from the factory. Cut it off, and solder on the 2-pin JST PH cable. Keep polarity in mind.
Firstly, download the CircuitPython UF2 from circuitpython.org. To enter the bootloader, hold down the "Boot" button, and while continuing to hold it, press and release the "Reset" button. Keep holding the "Boot" button until the RPI-RP2 drive appears. Copy the downloaded file to the RPI-RP2 drive. The RPI-RP2 drive will disappear and a new disk drive called CIRCUITPY will appear.
Next, download the CircuitPython library bundle for version 10.x from circuitpython.org. Unzip the downloaded file and copy "adafruit_bmp3xx.mpy" from the "lib" directory to the CIRCUITPY drive's "lib" directory.
Finally, download code.py from this repository, and replace the contents of the "code.py" file already on the CIRCUITPY drive with the downloaded file's.
To ensure the new firmware is loaded correctly, press the "Reset" button on the board.
You are almost done, we just need to put everything together. Start by placing the battery in the bottom enclosure. Cover it with the battery holder, and screw in the battery holder from the bottom. Next, mount the main board, the barometer and the booster to the bottom enclosure.
Use two M2 screws to attach the servo motor to the top enclosure. Secure the top enclosure to the bottom enclosure. Finally, screw in the side panel using two screws on the top and bottom. If you intend to power on the circuit, plug in the battery cable before screwing in the side panel.
Download as CSV: BOM.csv
Download as OpenDocument Spreadsheet: BOM.ods
| Component | Description | Link |
|---|---|---|
| Adafruit Feather RP2040 Adalogger | main board | Mouser |
| Adafruit BMP390 | barometer | Mouser |
| Adafruit MiniBoost 5V | booster | Mouser |
| Tower Pro MG90S | servo motor | HESTORE |
| JST PH 2-pin cable | battery cable | Mouser |
| CNC Kitchen M2x3 | threaded insert | 3DJake |
| CNC Kitchen M2.5x4 | threaded insert | 3DJake |
| cylinder head M2, M2.5 | screws | locally sourced / Amazon |
| Dupont Wires | jumper wires | locally sourced / Amazon |
Any screws (with the correct sizes) and any wires you have lying around the house will do. If you do not have any, chances are you can find these at your local hardware store. I included some Amazon links for reference.