Rocket

Project Overview
The Small Rocket Project (SRP) is an initiative by DARE (Delft Aerospace Rocket Engineering) that introduces students to rocket engineering fundamentals. The goal was to launch an uncooked egg to 1 kilometer altitude and recover it safely.
Primary Goals
- Reach 1 kilometer altitude
- Safely recover an uncooked egg
- Complete recovery within 90 seconds
- Land within designated zone
Secondary Goals
- Record footage with 2 ESP32 camera's
- Log flight data to flight computer
- Get telemetry data from flight computer during flight with ground station
Technical Implementation
Rocket Structure
- 60mm phenolic tube body (1m long)
- Sheet metal fins for stability
- Nose cone with egg protection system
- Custom-designed and sewn parachute
- Kevlar shock cord for parachute attachment
- Pyrotechnic charge for parachute deployment at apogee

Phenolic Tube

Fins

Finished Fins

Parachute

Nosecone with egg protection system

CAD
With the team we were comparing possible materials to use for the rocket body. Aluminum rolled sheets, fully 3D-printed, phenolic tube, or cardboard tube with metal rods were considered. The phenolic tube was chosen because it would simplify the development of the rocket. It was strong, not too heavy, and easy to work with. The only downside was that it was very hard to find online, and the price was a bit high.
We made the fins from aluminium sheet metal and used OpenRocket to adjust the design. For a statically stable rocket, the center of pressure sits behind the center of gravity. If the rocket tilts away from its direction of travel, the aerodynamic forces create a restoring moment that turns it back toward the airflow. In a crosswind, that can also turn the rocket into the wind, which is called weathercocking. Larger fins and a greater static margin can increase this tendency. We aimed for the DARE safety team's recommended margin of around 1.5 to 2.5 calibers.
The hemi-spherical parachute was custom-designed and sewn, and is attached to the rocket using a kevlar shock cord. This shock cord is resistant to high temperatures from the pyrotechnic charge and it can also handle the force from the nosecone being shot off during parachute deployment. Sizing of the parachute is a difficult because you want to come down to the ground as slow as possible, but also not too slow because then the rocket will spend a lot of time in the air. This means the wind can push the rocket sideways outside of the landing zone. A limit of 90 seconds flight time was set. Our calculations showed we would decent at a rate of 20m/s, which was reasonable.
We found some reference literature, and OpenRocket to figure out the area and Cd (Coefficient of Drag) we needed. We ended up with a parachute with a projected diameter of 29 cm and a Cd of 1.2. The parachute was connected to suspension lines that came together into a swivel, to allow the parachute to rotate without tangling. It also featured an apex vent to stabilize descent by allowing controlled airflow. The parachute was made of a nylon fabric, and together with the kevlar shock cord weighed 40 grams.
The egg, our primary payload, was placed inside the nose cone. Together with our "Egg protection system" as we called it. It was actually just popped spelt. The spelt was chosen because it is a good cushioning material and it is easy to find. Unfortunately the spelt was not enough to protect the egg from the landing, because we landed (crashed) a bit to fast... eeuh maybe at like 200km/h... More on that later.
Electronics System
The rocket uses the Kolibri flight computer, featuring:
- RP2040 dual-core ARM-based controller
- 868 MHz telemetry, up to 150 mW transmission power
- Barometer (BMP388) and IMU (LSM6DS) for flight data
- Onboard flash storage, for storing flight data
- Pyro channel continuity checking
- Integrated power management
- Optional GPS capability
The other electronics we used where:
- 2 ESP32 camera's
- 1600mAh 2S LiPo battery
- Stepdown converters
- 2 Switches with LEDs

Schematic

Kolibri Board

ESP32 Camera

Finished Electronics Stack

Diagram Electronics

LED Switch
DARE provided us with a basic flight computer they call the "SRP Board". This simple boards provides power and arm switches, a pyro channel and some leds. Instead we decided to use the Kolibri, a board they built that is based on the RP2040 microcontroller, used in boards like the Raspberry Pi Pico. The Kolibri has more features, like a barometer, an IMU, GPS, flash memory, and most importantly for us: telemetry. So we can send data from the rocket to a ground station.
The Kolibri was really nice to work with. We could flash it's firmware with the arduino IDE and then change the settings via the Serial Monitor. The ground station was also the same Kolibri board but just with different firmware so it would be configured to act as a ground station.
As mentioned before, we used the Kolibri to record the flight data. It logged the data from the barometer, IMU and GPS. We unfortunately couldn't retrieve the data from the Kolibri after the flight, because the rocket crashed but luckily we had the live telemetry data it sent down during flight.
We decided to use two ESP32 modules as they are very cheap, available, and well documented, so very easy to work with. The two ESP32 Cam AI Thinker boards we used were connected to the battery with a stepdown converted to convert from the battery's 8.4 volt to 5 volt. (See the schematic above)
Launch and Apogee Detection
Launch/Apogee detection methods considered:
- Breakwire system (launch)
- Barometer readings (launch / apogee)
- IMU acceleration data (launch / apogee)
- GPS position tracking (launch / apogee)
We decided to use a breakwire system to detect the launch. The breakwire was a simple wire that was connected between the Kolibri and the launch rail. When the connection was broken, the Kolibri would go into flight state. We did the same thing for the ESP32 camera's. They used a separate breakwire, so the camera's would start recording when the connection was broken.
Barometer readings is also a way to detect launch, by seeing the pressure go down, it can detect launch. But barometers are mainly used to detect apogee. They read the pressure to figure out the height of the rocket in that instant. They can sense that the rocket is ascending by seeing a decrease in pressure. Once they sense an increase in pressure, they know the rocket is descending, so time to deploy the parachute.
Lastly there is the option to use GPS to compare your positions to detect launch or apogee. Or use the IMU to see the changes in acceleration to detect launch or apogee. GPS tends to be not so precise and reliable. And an IMU is very good for detecting launch but can struggle to detect apogee because of the chaotic movements and weightlessness the rocket experiences at apogee.
Upper Bulkhead, Lower Retainer Ring, and Launch Lugs

Bulkhead

Retainer Ring + Fins

Launch Lugs
The rocket has 1 big bulkheads and retainer ring that are used to secure the rocket motor inside the rocket body. The bulkheads are transferred the force from the rocket motor to the rocket body. The retainer ring is used to secure the parachute to the rocket body.
Both the bulkheads and the retainer ring are made of 3D printed PETG plastic. The bulkhead is pretty thick, 3mm, and it has 8 radial bolts to transfer the force from the rocket motor to the rocket body. The lower retainer ring is mainly to keep the rocket motor centered in the tube and also secure it in place so it does not fall out. During flight itself all the loads are on the upper bulkhead because that is where the motor is pushing against.
The retainer ring is also the part that the fins are attached to with 6 M3 bolts for each fin. Small holes are pre-drilled and then the screws where tapped straight into the plastic. One of the launch lugs is also attached to the retainer ring. The other one is attached to the upper bulkhead.
Software
All design was done inside OpenRocket and the entire rocket was designed using Onshape, a cloud-based CAD platform, that allows for:
- Free access for all team members
- Real-time collaboration
- Version control and design history
- Easy sharing and review of designs
Programming ESP32s
I wrote the ESP32-CAM firmware in C++ with PlatformIO, using Cursor during development. A break wire triggers recording at launch. The camera uses two frame buffers in PSRAM and saves the video directly to microSD. The recordings can then be converted with FFmpeg.
Link to the Github repository: eliotgevers/SRP-Rocket-Cameras
Results
We launched the rocket, but recovery failed and the vehicle was lost. We estimated an altitude of around 800 meters from simulations and the live telemetry we received. Our simulations also gave an estimated impact speed of around 200 km/h; this was not a measured impact speed.
The telemetry indicated that the flight computer attempted parachute deployment around apogee, but we could not confirm why recovery failed. Because we did not find the rocket, we also could not retrieve the camera recordings.
It was a very cool project to work on. It was a lot of fun to work with the team and to see the rocket take off. Here are some extra images:

Rocket Check

Team Picture

Working On Electronics

Presenting Electronics

Cool Dudes

Rocket Flying