Enthusiasts Joe and Brad designed a clever, electronically controlled two-stage model rocket powered by a 9V NiCad battery. The heart of the electronic control system consists of a small FPGA with a soft-core processor that runs the control algorithm and logic. It uses a PWM signal from an accelerometer to determine the rocket’s acceleration to trigger the ignition of the rocket motor in the second stage, separation of the booster from the sustainer, and the deployment of a parachute that allows the rocket to float gently back to earth.
Two-Stage Model Rocket
This Gadget Freak originally appeared in Design News.
A two-stage model rocket consists of two sections – the booster and the sustainer. The booster section has the main motor for the rocket that supplies the initial energy for the flight, and the sustainer contains a motor that propels the rocket even higher. The flight of a two-stage model rocket consists of three main phases.
In the first phase of flight, the rocket motor in the booster (1st stage) launches the entire rocket skyward. In the second phase, once the booster motor has burned out, the rocket motor in the sustainer (2nd stage) ignites which propels the rocket higher. The motor ignition also causes the booster to separate from the sustainer and tumble safely to the ground. In the third phase, when the sustainer has reached apogee, it deploys a parachute and the rocket floats gently to the ground.
For this project, we constructed a two-stage model rocket that electronically controls the ignition of the rocket motor in the sustainer as well as the deployment of the parachute.
Theory of Operation
The heart of the electronics consists of a small FPGA in which we instantiated a soft-core processor. The processor in the FPGA runs the control algorithm and the logic in the FPGA interfaces to the I/O. The program running on the soft-core processor is programmed in C and the FPGA logic is programmed in VHDL. To make the electronics more flexible for future projects, we designed two small PWBs. The main board contains the FPGA, configuration flash, oscillator, linear regulators, and additional support circuitry. The daughter board contains the accelerometer, low resistance FETs, bi-colour LED, and additional support circuitry. Everything is powered from a single 9V NiCad battery. A simplified block diagram of the overall electronics is shown in Figure 1.
The rocket motor in the booster of the rocket is ignited from a ground-based launch controller. The rocket motor in the sustainer needs to be ignited after the booster motor burns out. We detect this event by using a MEMS accelerometer.
The accelerometer generates a pulse width modulated (PWM) signal proportional to the acceleration of the rocket. We implemented a PWM input peripheral in the FPGA as a “custom peripheral” to the soft-core processor that allows the soft-core processor to read the current acceleration.
In order to detect the burnout of the booster motor (to know when to ignite the sustainer motor), we first look for the acceleration of the rocket due to the booster motor burning. Once we see this high acceleration, we start looking for the acceleration to die down which corresponds to booster motor burnout.
To eliminate false triggering due to shock (i.e. someone bumping the rocket while it is armed sitting on the launch pad), the processor filters the acceleration data using a smoothing filter (averaging filter).
To implement a smoothing filter, we created a custom instruction for the processor that performs specialized fixed-point division in hardware for the final divide in each averaging operation (there is not a native instruction in the NIOS II Instruction Set Architecture for the particular type of specialised fixed point hardware divide we implemented).
Once the booster motor burns out, the electronics must ignite the rocket motor in the sustainer. The igniter requires several amps of current to ignite, so a low RDS(on) FET is used to connect the 9V battery across the igniter. The igniter used for this particular rocket motor has a typical resistance of 0.8 ohms. The gate of the FET is driven by a 3.3V output from the FPGA so it is important for the FET to have a low RDS(on) at a fairly low VGS. A NiCad battery is used because it can provide high current for short periods of time due to its relatively low source impedance.
After igniting the sustainer, the electronics must wait to deploy the parachute at the appropriate time. We used a commercially available rocket simulation program to determine how long the rocket would take to reach apogee. We programmed the electronics to generate an appropriate delay before setting off the ejection charge. The ejection charge is a small amount of black powder that is ignited by an electric match, which is similar to the igniter described previously. The electric match is connected to a second FET controlled by the FPGA. The ejection charge forces the parachute out the nose cone end of the rocket, which will bring the rocket safely back to earth.
A bi-colour LED is used to indicate various status conditions, such as ready to launch, electronics armed while the rocket is not pointing up, ejection charge fired, etc. The processor controls the LED and FETs from a digital output peripheral implemented in the FPGA logic. We also implemented a timer peripheral so that the processor does not have to rely on timed software loops to create the various delays required in the design.

Recent Comments