HomeEngineering Projects For YouOpen Source Model Rocket: Design and Simulation

Open Source Model Rocket: Design and Simulation

In the previous article in this series, ‘Open Source Model Rocket: Design And Simulation (Part 1),’ published in June issue, the model rocket was designed using simulation software and its performance was evaluated through virtual flight tests. Building on that work, Part 2 covers the assembly process, circuit connections, flight computer programming, and testing, culminating in the construction of a physical model rocket based on the earlier design.

Part 2 focuses on the rocket’s electronics and stabilisation system. Sensors measure altitude and detect changes in motion, enabling the controller to actively stabilise the rocket by adjusting the aerodynamic fins during flight. The controller can also be programmed to modify the rocket’s flight path according to a predefined trajectory.

To ensure stable flight, proportional-integral-derivative (PID) tuning is performed for self-balancing and fin stabilisation. This enables the rocket to compensate for wind, turbulence and other external disturbances while maintaining its intended flight trajectory.

While full-scale rockets rely on dedicated flight computers, this model uses a simple microcontroller and straightforward programming to implement the same core functions. During testing, the system transmits real-time flight data and fin-control commands over Wi-Fi within its operating range. For longer-range operation, a dedicated telemetry module can be added to transmit flight data to a ground station or another receiving device.

Fig. 1 shows the assembled open source model rocket with a detachable nose cone, while Fig. 2 shows the author’s model rocket prototype alongside its OpenRocket simulator design.

To build this system, the required components are listed in Table 1 and Table 2. Table 1 presents the bill of materials for the rocket body, while Table 2 lists the bill of materials for the rocket’s electronics.

Table 1 Bill of Materials For The Rocket Body
CategoryComponentSpecificationRecommended Range/Notes
StructureBody tube3D-printed tube or a standard commercially available body tubeDiameter and length should match the selected rocket design and corresponding part number.
StructureNose cone3D-printed (PLA/PETG) or a standard commercially available nose coneSelect the dimensions and part number based on the finalised design and simulation results.
StructureFinsThree aerodynamic finsUse three identical fins designed according to the simulation model.
StructureModel rocket engineEstes C6-5 (ES1507) or equivalent model rocket engineSelect the engine according to the rocket design, weight, and thrust requirements.
StructureLaunch lugSmall guide tubeInner diameter: 5mm-8mm; ensure it is aligned straight with the rocket body.
StructureNose weightSteel or lead weightAdjust the weight to shift the centre of gravity (CG) forward for stable flight.
Table 2 Bill of Materials For The Rocket Electronics
CategoryComponentSpecificationQuantity
Flight computerIndusBoard coinIndusBoard coin programmed with the flight computer and stabilisation firmware1
Fin controlServo motorMicro gear servo motor for active fin control3
PowerLi-po battery (3.7V)Lithium-polymer battery for powering the rocket electronics1
CommunicationTelemetry moduleWireless telemetry module for transmitting flight data to a ground station1
VideoFPV cameraFirst-person view (FPV) camera for live launch and in-flight video transmission1
Altitude sensingBME280Sensor to measure atmospheric pressure, altitude, and ambient temperature1
Motion sensingMPU60503-axis gyroscope and 3-axis accelerometer for orientation and acceleration measurement1

Circuit and working

The complete flight control and stabilisation circuit is shown in Fig. 3. It is built around the IndusBoard Coin, which acts as the flight controller. Three micro servo motors provide active fin control, while an MPU6050 IMU supplies gyroscopic and acceleration data. A BME280 sensor measures atmospheric pressure, altitude, and ambient temperature. Both sensors communicate with the IndusBoard Coin through the I²C interface, and the servo motors are connected to PWM-capable GPIO pins. A regulated 5V supply powers the servos, with all modules sharing a common ground.

In this prototype, the IndusBoard Coin is used for testing and simulation in place of a dedicated flight controller. Its built-in accelerometer and magnetometer provide orientation, acceleration, and heading information, while the external MPU6050 enhances attitude estimation with precise gyroscopic measurements. Together, these sensors enable the controller to detect deviations caused by wind, turbulence, or other external disturbances and adjust the servo-controlled fins to maintain a stable flight path. The BME280 provides altitude and environmental data, which are also transmitted as part of the rocket’s telemetry.

Assemble the electronics according to the circuit diagram shown in Fig. 3, then securely mount the controller board, sensors, and battery inside the rocket body. Ensure that the battery and electronics are firmly fastened and adequately protected from the heat and exhaust of the rocket motor. Finally, maintain the centre of gravity (CG) and centre of pressure (CP) as determined during the design and simulation phase described in the previous article to ensure stable flight.

Programming the flight controller

Prepare the firmware for the flight controller. The program uses PID control along with sensor calibration to actively stabilise the rocket during flight. The firmware continuously reads data from the onboard sensors, processes orientation and altitude information, and adjusts the servo-controlled fins using a PID algorithm to maintain a stable flight trajectory.

The firmware also configures the IndusBoard Coin as a Wi-Fi access point (AP) to transmit real-time telemetry, including altitude, orientation, acceleration, pressure, temperature, and servo positions. The same telemetry data is simultaneously transmitted through the UART interface (TX: GPIO 43 and RX: GPIO 44), allowing an external radio telemetry module to be connected for long-range communication with a ground station during flight.

In addition, the firmware logs the flight parameters throughout the flight. After recovery using a parachute, the recorded data can be analysed to evaluate the rocket’s performance and further optimise the design, PID parameters, and flight characteristics for subsequent launches.

EFY note. Proper PID tuning ensures stable flight by compensating for wind, turbulence, and other disturbances.

Software/Coding

The Arduino IDE is used to develop, compile, and upload the flight controller firmware. Before compiling the code, install the required BME280 and MPU6050 libraries in the Arduino IDE. After completing the firmware, select the correct board and COM port in the Arduino IDE, then compile and upload the firmware to the IndusBoard Coin. Ensure that all sensors and servo motors are functioning correctly before proceeding with flight testing.

Assembly

Begin by assembling the rocket body, including the body tube, nose cone, fins, launch lug, and other mechanical components.

Next, prepare the rocket motor and igniter. Carefully install the motor mount at the bottom of the rocket body tube and ensure that it is firmly secured. Insert the Estes C6-5 model rocket engine, or the engine selected for the design, into the motor mount. Then insert the igniter into the nozzle until its tip makes contact with the propellant inside the motor. Secure the igniter in place using the supplied plastic igniter plug.

Fig. 4: Model rocket motor and igniters

Once the motor and igniter have been prepared, slide the motor fully into the motor mount and lock it securely. Route the igniter leads so that they remain easily accessible for connection to the launch controller or the onboard ignition circuit.

See Fig. 4 and Fig. 5 for the assembly procedure. Fig. 4 shows the model rocket motor and igniter, while Fig. 5 shows the rocket motor installed in the motor mount together with the igniter and the electronics wiring.

Fig. 5: Rocket motor installed with the igniter and electronics wiring

Preparing the servo-controlled fins

Next, prepare the servo-controlled fins for the stabilisation system. Each fin is attached to a micro servo motor, which is mounted in the lower section of the rocket body.

Attach a fin securely to the servo horn (servo shaft). Ensure that the fin is firmly fixed and can rotate smoothly without obstruction. Once the fin is attached, mount the servo motor inside the rocket body so that the fin protrudes through the fin slot (see Fig. 6) and can move freely. Repeat the same procedure for the remaining fins, where applicable.

Fig. 6: Model rocket with servo-controlled fin assembly

Although some rocket designs use multiple independently controlled fins for improved flight control and stabilisation, this system uses only the bottom fins with servo actuation to keep the design simple, economical, and easy to reproduce. More advanced designs may employ additional servo-controlled fins to achieve greater manoeuvrability and improved flight stability.

EFY note. Fin size, shape, and placement depend on the rocket design. The fin assembly shown here is intended for demonstration and testing only. Optimise the fin design and its position based on the simulation results to achieve the best flight performance.

Testing

The system is now ready for testing. Begin with software and telemetry testing.

Power on the rocket to enable its Wi-Fi access point (AP). Connect a laptop or smartphone to the rocket’s Wi-Fi network, then open the web dashboard to monitor telemetry data in real time. Fig. 7 shows the rocket fins moving for stabilisation.

Fig. 7: Rocket fins moving for stabilisation

The web dashboard displays the stabilisation system in operation. As the rocket body is tilted or moved, the control fins automatically adjust their positions using the PID algorithm to counter the movement and stabilise the rocket.

The dashboard displays real-time information, including altitude, IMU data, barometric pressure, temperature, PID output, fin positions, and other sensor readings.

Precautions

  • Conduct all tests only in a vacant ground with a minimum clear space of 150 metres in all directions.
  • Ensure the rocket is properly assembled and that all safety procedures are strictly followed under the guidance of an experienced engineer.
  • To begin with, test only the rocket’s software, electronics, telemetry, and stabilisation systems. Do not perform a full flight test.
  • Before conducting any test, carefully review the NASA model rocket safety guide
  • Failure to follow these instructions may result in serious injury, property damage, or legal consequences.

Ashwini Kumar Sinha, an IoT and AI enthusiast, is Tech Journalist at EFY.

Ashwini Sinha Inventor of IndusBoard Coin from EFY Labs
Ashwini Sinha Inventor of IndusBoard Coin from EFY Labs
A tech journalist at EFY, with hands-on expertise in electronics DIY. He has an extraordinary passion for AI, IoT, and electronics. Holder of two design records and two times winner of US-China Makers Award.

SHARE YOUR THOUGHTS & COMMENTS

EFY Prime

Unique DIY Projects

Truly Innovative Electronics

Electronics News

Latest DIY Videos

Electronics Components

Electronics Jobs

Calculators For Electronics