Brief description of sounding rocket roll control project.
Table of contents
Open Table of contents
Project overview
This project focused on developing and testing a roll-control system for a sounding rocket. The work was carried out at PUT Rocketlab as part of my co-authored Bachelor’s Thesis.
In this post, I highlight the most important aspects of the project—its goals, key challenges, and the overall approach.
For readers interested in deeper technical details, the complete thesis is available here.
Technologies used
The project involved designing the control algorithm, creating a custom PCB, building a simulation environment, and programming the flight hardware. The KiCad-designed onboard computer—featuring an STM32 MCU, BMI088 IMU, and 2S-compatible power system—measured roll rate, actuated the fin servos, and logged data to microSD or flash memory. Its software, written in C/C++ within STM32CubeIDE, used HAL drivers, custom libraries, and a FreeRTOS-based CMSIS-RTOS setup for reliable real-time operation. Control was handled by an ADRC (Active Disturbance Rejection Control) algorithm, chosen for its robustness to disturbances and model uncertainties during dynamic flight.
Test stand overview
The system was preliminarily validated in a wind-tunnel test stand. The airflow generated roll motion using canted rear fins, while frontal fins counteracted the induced rotation. A custom rocket mock-up with NACA0018 fins, a Haack-series nose cone, and 3D-printed structural components allowed realistic aerodynamic conditions for verifying controller performance.
Results
Carried-out experiments confirmed the effectiveness of the controller. The first test aimed to damp the roll rate, as shown in the video below.
In the second experiment, the rocket mock-up was programmed to perform controlled turns.