Buffalo

Buffalo - Rendering

Building on the lessons learned from Tiger IV, I developed the Buffalo rocket. Buffalo’s development was the most extensive of all, spanning from April 2020 to January 2022.

In the end, I achieved my goal of creating my first successfully actively stabilized rocket.


Physical Design

TVC System

TVC - Rack and Gear - Version 2

The first major change compared to the Tiger IV rocket was the next TVC generation. This time, I switched from a spherical gimbal design to a gear and rack approach.

This TVC system uses two servos, each driving a section of a gear. One rack is connected to the TVC hull. When the servo drives its gear, the gear rolls over the rack and causes the engine mount to rotate in the pitch axis. The other servo drives a gear section attached to the engine mount, which, when actuated, rotates the engine mount in the yaw axis.

The gear and rack approach allows for very precise control of the two axes with minimal play. While not as fast as the previous TVC concept, it is still sufficiently quick to actively control the model rocket.

Depending on the gear module, the gear size, and the distance to the center of rotation, this approach can be adjusted for different performance needs. It can either be faster with a higher range of motion or slower and more precise with less range of motion, as the servo angle is always limited to ±90°.

For added passive stability, the option to attach ascent fins is available.

V1

The first version showcased the feasibility of this approach. However, it had a significant design flaw: the joints for the pitch and yaw axes were not positioned on the same plane. As a result, movement in the pitch axis would affect the yaw axis and vice versa, compromising the vehicle's stability. If both axes were actuated heavily, this misalignment would induce an unintended roll movement in the vehicle.

V2

In the second version, the joints were repositioned to be on the same plane, addressing the alignment issues from the previous design.

The parts were optimized for 3D printing, with adjustments to reduce overhangs and the need for support material.

Parachute Deployment System 

As the size of the rocket increased, a larger parachute was required for safe recovery. For side deployment, the chosen parachute was too large, necessitating a new concept.

Similar to the spring-based deployment system of Tiger IV, this design also uses a spring mechanism. Three guide rods are attached to the parachute slider to allow smooth movement, with springs coiled around these rods. The springs and rods are long enough to allow the sliding plate to almost completely push the parachute out of the compartment. The sliding plate’s movement is limited by stoppers added to the guide rods. Instead of being held back by a rubber band, the slider plate is secured by a screw threaded into a nut. This screw is actuated by an attached stepper motor, and when the screw is unscrewed, the slider is unlocked, allowing the spring to deploy the parachute.

SN1 - SN6

Parachute Deployment System - SN1

To perfect this design, a total of six revisions were needed. In the first revision, shown in the image above, the sliding plate was entirely 3D-printed, with the guide rods also being 3D-printed.

Parachute Deployment System - SN2

In early versions, the parachute hull was attached to the stator plate by a click-in-place mechanism. However, this approach proved unfeasible as the strong pushing force of the sliding plate acting on the parachute affected the hull's attachment to the stator plate.

Parachute Deployment System - SN5

One of the final versions made the switch from printed rods to aluminum rods, which can withstand larger forces and provide smoother movement. The stoppers limiting the sliding plate's movement were replaced with screws threaded into the end of the aluminum rods.

The shape of the slide plate was also changed to make parachute deployment more seamless. Previous versions had the problem of parachute cords clogging between the slide plate and the parachute hull, which prevented full parachute deployment.

The hull attachment was changed from a click-in-place mechanism to a three-screw approach for a more rigid connection.

SN7

Parachute Deployment System - SN7

Although SN6 worked sufficiently, I experimented with yet another approach. Instead of using a stepper motor for deployment, I devised a mechanism using a rotating part to hold the retracted spring in place. This rotating part also serves as the horn of a servo motor located below the slider plate. When the servo motor actuates, the rotating part turns and unlocks the sliding plate.

This mechanism offers the advantage of much faster deployment compared to the previous design, as the stepper motor needed to unscrew several thread windings.

Structure

Instead of using a separate inner structure for rigidity and a distinct outer structure for aerodynamic profiling as in Tiger IV, this rocket employs a single integrated structure that fulfills both functions. The various compartments are designed to plug into each other and are securely attached using screws.

For the outer surface, the rocket uses a paper hull rather than an additional 3D-printed part. This approach provides a smoother aerodynamic profile, reduces overall weight, and allows for more aesthetically pleasing designs.

Buffalo - Structure with Onboard Camera

The structure also incorporates a compartment for an onboard camera. This design allows for two camera mounting options: one version records at a 45° downward angle, capturing both a portion of the rocket and the ground, while the other records directly downward at 90°, providing a clear view of the TVC's movements.


Launchpad

Buffalo with Hull on Launchpad

The Buffalo rocket utilized the original launchpad setup, which has since been upgraded. Below are the key differences between the original and updated versions.

  • Countdown Indication: Used six dual RBB LED lights instead of an RGB LED strip.

  • Audio Alert: Featured a buzzer instead of a speaker.

  • Launchpad Computer: Equipped with the Launcher Rev. A model instead of the Launcher Rev. B model.

Launcher Rev. A

Here is a picture of the original Launcher Rev. A:

Launcher Rev. A

  • Power Supply:

    • Powered by a three-celled LiPo battery.

    • Uses 7809 for 9V (microcontroller) and 7805 for 5V (rest). The 7805 was replaced by a buck converter break-out board (bottom right) that can handle 3A.

  • Microcontroller: Utilizes the Arduino Mega Mini Pro.

  • Communication: Uses the HC12 to communicate with the flight computer.

  • Outputs:

    • Onboard RGB LED and buzzer.

    • Six connectors for external RGB LED boards.

    • External port for display.

    • Four-digit 7-segment display with TM1637 incorporated to indicate battery voltage. Push button to switch between flight computer and launch computer voltage level indication.

  • Pyro Channels: Two pyro channels, each having a total of 4 barrier terminal blocks for connection. Pyro channels are protected with an optocoupler.

  • Protection: Board protected with a 3.5A fuse.


Flight Computer

To streamline the documentation of flight computer revisions, I’ll provide an overview of the key improvements for each version. This approach focuses on enhancements made over their predecessors:

Buffalo Rev. A (Buffalo 1.1)

Buffalo Rev. A (Without SD Card Module)

Predecessor: Lion I

Retained Features:

  • Sensors: BMP280 barometer for altitude measurement and MPU6050 gyroscope and accelerometer for orientation.

  • Outputs: RGB LED, active buzzer, and two pyro channels.

  • Power Supply: 9V block power supply regulated by a 7805.

  • Data Storage: SD card breakout board module.

Updates:

  • Power Switches: Replaced the power-on DIP switch with larger toggle switches capable of handling higher currents. Added a second switch for independent control of the microcontroller.

  • Microcontroller Update: Switched from Teensy 3.1 to Arduino Mega Pro Mini.

  • Enhanced Communication: Integrated the NRF24 RC module for remote communication between the launchpad and the rocket. The PCB now includes connections for attaching the NRF24 base module.

  • Servo Ports: Added a third servo port for parachute deployment, increasing the total number of servo ports from two to three.

  • Backup Pins: Added additional backup RX/TX pins and two extra pin headers for increased flexibility.

Problems:

  • Microcontroller Switch Issue: The power switch for the microcontroller creates a short circuit in the power-off state, causing potential problems with power management.

  • Power Supply Incompatibility: The Arduino Uno Mega Pro Mini requires a voltage range of 6-9V, unlike the 5V provided by the previous regulator. A separate regulator is necessary to ensure proper power supply to the microcontroller.

  • Insufficient MOSFET Rating: The MOSFET used in the design had an inadequate continuous drain current rating, which limited its effectiveness in handling the required current loads.

Buffalo Rev. B SN1

Buffalo Rev. B SN1 (Half Assembled)

Retained Features:

  • Sensors: BMP280 barometer for altitude measurement and MPU6050 gyroscope and accelerometer for orientation.

  • Communication: NRF24 radio module.

  • Microcontroller: Arduino Mega Pro Mini.

  • Outputs: RGB LED, active buzzer.

  • Data Storage: SD card breakout board module.

Updates:

  • Power Supply: Powered by a LiPo battery and incorporated two regulators: a 7809 for the microcontroller and a 7805 for other breakout boards.

  • Display Port: Added a port for connecting an external display.

  • Servo Ports: Reduced the number of servo ports as parachute deployment is handled by the stepper motor in this revision.

  • Stepper Motor Control: Implemented a transistor circuit with four transistors to create an H-bridge for controlling forward and backward motion of the stepper motor.

  • Pyro Channels: Reduced the number of pyro channels by one and selected a MOSFET with a higher continuous drain current.

Buffalo Rev. B SN2

Buffalo Rev. B SN2

Retained Features:

  • Sensors: BMP280 barometer for altitude measurement and MPU6050 gyroscope and accelerometer for orientation.

  • Communication: NRF24 radio module.

  • Outputs: RGB LED, active buzzer, one pyro channel, and a stepper motor H-bridge.

Updates:

  • Power Supply: Powered by a two-celled LiPo battery. Only utilizes the 7805 regulator.

  • Microcontroller: Upgraded to Teensy 4.1, which features an onboard SD card and offers significantly improved performance.

Buffalo Rev. C

Buffalo Rev. C (Half Assembled)

Buffalo Rev. C represents a significant step forward with the direct integration of ICs and sensors onto the PCB, utilizing surface-mounted (SMD) components. The capacitors and resistors used are of the 1206 size.

Design Overview:

  • Power Supply:

    Powered by a three-celled LiPo battery.

    Uses UMW78L06 for 6V (stepper motor), ASM1117-5.0 for 5V (servos and Teensy 4.1), and ASM1117-3.3 for 3.3V regulation (other components and ICs).

  • Microcontroller:

    Utilizes the Teensy 4.1 for its high performance and onboard SD card.

  • Sensors:

    BMP280 barometer breakout board.

    BMI088 is directly integrated into the PCB and is interfaced by I2C.

  • Communication:

    The base module of the NRF24 is directly implemented on the PCB, allowing the NRF24 module to be plugged directly into the board.

  • Outputs:

    Added an SMD RGB LED and an active buzzer.

    Transistors were included between the microcontroller and the RGB LED to protect the GPIOs.

  • Stepper Motor: Retained an H-bridge for stepper motor control, now using SMD transistors.

  • Display:

    Added a four-digit 7-segment display directly to the board.

    Utilized the TM1637 driver IC for the display.

  • Pyro Channel: One Pyro channel with an indicator to signal pyro channel activation.

  • Servo Ports: Two servo ports for TVC.

Challenges: Buffalo Rev. C introduced several new systems and components that proved challenging for home assembly. Notably, the BMI088 sensor, with its LGA package, required reflow soldering, which was not feasible for manual assembly. Despite these challenges, the PCB served as a valuable learning experience in designing integrated on-PCB systems.

Buffalo Rev. D

Buffalo Rev. D after 8h power on testing

Design Overview:

  • Battery:

    • Three-celled LiPo battery with two solder ports for direct XT60 cable soldering.

  • Regulators:

    • ASM1117-5.0: Provides 5V regulation with 1A current delivery for servos and Teensy 4.1.

    • ASM1117-3.3: Provides 3.3V regulation with up to 1A current delivery for other components.

    • LM2596-5.0 (3A): Replaced the ASM1117-5.0 to address insufficient power delivery for high-intensity servo operations.

  • Protection:

    • Implemented two fuses. 3A fuse for general power supply to protect against overcurrent. 500mA fuse to protect the microcontroller.

    • Added a diode to prevent the microcontroller from back-feeding voltage to other components.

  • Microcontroller:

    • Teensy 4.1: Includes an onboard SD card and offers high performance.

  • Sensors:

    • BMP280: Barometric pressure sensor breakout board for altitude measurement.

    • MPU6050: Accelerometer and gyroscope breakout board for orientation.

  • Radio Module:

    • Replaced NRF24 with HC12. The HC12 is easier to implement and offers an extended range of up to 1km.

  • Pyro Channel:

    • Upgraded with an optocoupler between the microcontroller and MOSFET for enhanced protection.

  • Servo Ports:

    • Transitioned from stepper-based to servo-based parachute deployment, resulting in three servo ports.

  • Display Port:

    • Added a port for external display connections; the display driver is not integrated into the board.

  • RGB LED and Buzzer:

    • Controlled via a ULN2003A low-side driver to protect the microcontroller.

  • Component Layout:

    • SMD and Through-Hole: Combination of SMD and through-hole components chosen based on ease of use and practicality.

  • Power Selection Header:

    • Added a header near the Teensy for selecting between 5V power delivery via USB or onboard regulator in battery-powered situations.


Buffalo Rev. D marks a significant advancement in the design, being the first board fully functional and used in all subsequent flights. It incorporates improvements in power management, protection, and component placement, contributing to more reliable performance.

However, design flaws were still present: the BMP280 pins were mounted incorrectly, necessitating soldering on the opposite side, and the ASM1117-5.0 regulator was insufficient for high-current servo operations, necessitating the addition of an LM2596-5.0 regulator. The fuses could also benefit from a design that allows for easy replacement.


Software

The JM Eagle Control (JEC) software, also known as JEC, is integral to managing and monitoring the rocket's flight. The system comprises three distinct programs:

  1. Launch JEC - Operates on the launchpad computer.

  2. Flight JEC - Runs on the flight computer.

  3. JEC (Visualization) - Provides real-time visualization and monitoring.

The Launch JEC and Flight JEC work in tandem to manage the entire flight sequence.

Setup Phase

The Setup Phase involves configuring the rocket's sensors, telemetry, and outputs. This step ensures that all systems are correctly calibrated and prepared for the upcoming flight.

Pad Idle

During the Pad Idle phase, the launch and flight computers attempt to synchronize with each other. If synchronization is successful, they exchange data every 5 seconds. The launchpad computer also continuously monitors and displays the battery voltage of both the launch and flight computers for the user.

If the launch computer has not yet achieved synchronization with the flight computer, the startup process cannot be triggered when the startup button is pressed.

Startup

The transition to the Startup Phase occurs when the user presses the startup button on the launchpad. At this point, the flight computer has the capability to abort the launch if any conditions are not met, which would return the launchpad computer to Pad Idle and prompt the flight computer to enter an error handling mode. If the launch request is successful, both computers proceed to the countdown sequence.

During the Countdown Sequence, the launchpad and flight computers synchronize their programs at specified intervals. Synchronization happens at T-60 seconds, every 10 seconds until T-30, every 5 seconds until T-10, and every second until T-5. At T-5 seconds, the rocket enters an internal startup mode, ceasing further synchronization. During these intervals, either computer can abort the launch, with the abort signal communicated to the other. After T-5 seconds, only in-flight aborts are possible.

Main Flight

At T-5 seconds, the rocket transitions into the Main Flight Phase. During this phase, the flight computer starts sampling orientation measurements and activates the PID algorithm. To prevent drift caused by any initial offset while the rocket is still clamped, the I-term of the PID algorithm is initiated precisely at T-0 seconds.

The launchpad ignites the engines at any pre-configured time between T-5s and T-0s. At T-0s the launchpad releases the clamps, and the rocket can lift off.

The rocket actively stabilizes itself with the help of its TVC system until engine burnout.

Descent

After the engine burnout, the rocket enters the Descent Phase, where the primary objective is to safely deploy the parachute and ensure a controlled descent.

The rocket deploys the parachute based on one of the following scenarios:

  1. Apogee Detection via Acceleration: The rocket detects apogee by analyzing acceleration data along the Z-axis. Once the rocket reaches its highest altitude and starts descending, the system triggers the parachute deployment.

  2. Maximum Altitude via Barometer: The rocket continuously measures altitude using the BMP280 barometer. By tracking the altitude readings, the system determines the maximum apogee and deploys the chute based on this information.

  3. Maximum Time for Deployment: To safeguard against potential failures of the other methods, the rocket is programmed to deploy the parachute after a predefined maximum time has elapsed. This ensures that the parachute deploys if neither apogee detection nor altitude measurements trigger it.

By combining these methods, the rocket increases the likelihood of a safe descent, accommodating various flight conditions and ensuring reliable parachute deployment.

Touchdown

Once the rocket has landed safely, the flight software transitions into Touchdown mode. In this phase, the flight data is stored on the SD card. After successfully storing the data, the system alerts the user that it is safe to turn off the flight computer.

In-Flight Abort

If the rocket deviates beyond preconfigured angle thresholds during flight, it triggers an In-Flight Abort. In this scenario, the parachute deploys to prevent damage and ensure a safe descent.

Configuration

The flight settings for the Buffalo rocket are customizable through a single configuration text file. This file allows the user to adjust various parameters for different modes of operation. Below is an example of how such a configuration file is structured:

Configuration File of Flight 3

Explanation of Parameters:

  • mode_of_operation: Defines the operational mode of the rocket. The available modes are:

    • Flight: Standard mode used for actual rocket launches, involving a full countdown sequence and launch procedures.

    • Hold Down: Executes a hold-down test where the rocket is secured and tested while clamped.

    • Playground: Allows testing of the TVC system without initiating a countdown sequence.

    • ASTG: Auto-detects liftoff and logs sensor data. This mode was utilized during the EUROC rocketry competition, where the Buffalo Rev. D flight computer was used as a payload on one of Aerospace Team Graz’s rockets.

  • time_ignition: Sets the time at which ignition shall occur. Can be anything between 55000 (T-5) and 60000 (T-0).

  • time_latest_parachute_deploy: Specifies the latest time in milliseconds at which the parachute shall deploy. Any time above 60000.

  • time_touchdown_max: Defines the maximum allowed time in milliseconds before touchdown is expected.

  • imu_X_bound: Sets the boundary for the X-axis of the IMU in degrees. This defines the acceptable range of orientation for the vehicle on the X-axis before lift-off. If the vehicle's orientation exceeds this range, the system will abort.

    imu_Y_bound: Sets the boundary for the Y-axis of the IMU in degrees. This defines the acceptable range of orientation for the vehicle on the Y-axis upon lift-off.

  • imu_angle_abort: Defines the angle in degrees at which an in-flight abort is triggered.

  • bmp_altitude_bound: Sets the boundary for the relative altitude measurement from the BMP280 sensor in meters before lift-off. This ensures that the altitude readings are within an acceptable range before the rocket launches.

  • bmp_altitude_setpoint_bound_min: Specifies the minimum altitude setpoint. This value helps identify significant deviations from the expected launch site altitude. Large deviations from this setpoint can be detected in advance to prevent issues.

  • bmp_altitude_setpoint_bound_max: Limits the maximum altitude setpoint. If the measured altitude exceeds this value, the flight computer aborts the mission due to unrealistic readings.

This configuration file allows for flexible and precise control over the rocket’s flight parameters and operational modes.


Testing

To ensure that all systems operated correctly in combination, a series of tests were conducted, with the hold-down tests being particularly crucial.

Hold Down Tests

In these tests, the rocket was mounted on a custom 3D-printed gimbal, which allowed for free movement in both the yaw and pitch axes. This gimbal was then attached to a self-built hold-down test stand.

For these tests, only one engine was used to minimize testing costs. To account for the difference in thrust, a conversion calculation was applied to adjust the PID gains accordingly.

In the first test, the engine ignition and gimbal mechanism functioned as expected. However, the thrust vector control (TVC) system did not stabilize the rocket as intended. Analysis of the flight data revealed that while the rocket was visibly off-course, the flight computer's orientation estimation showed only a slight deviation of a few degrees. Consequently, the PID algorithm did not engage effectively.

This discrepancy could be attributed to a possible issue with the radian-to-degree conversion within the orientation estimation algorithm. If the conversion between radian and degree units was not correctly implemented, the flight computer might have misinterpreted the rocket’s actual orientation. This error would result in an inaccurate estimation of the rocket’s tilt, leading the PID controller to make minimal adjustments when significant corrections were needed.

The second test, conducted six months later with the newly implemented Buffalo Rev. D flight computer, featured enhanced algorithms and PID gains.

You might wonder why the engine ignited four seconds earlier than T-0. This is due to the engine's pre-burner phase, which lasts exactly four seconds and generates no thrust. We timed the engine ignition to ensure thrust is present precisely at T-0. The TVC system performed correctly, and the parachute deployment was successful.

In the third test, aimed at further verifying the systems, the engine exploded, causing significant damage to the TVC. This issue was likely due to the ignitor being inserted too tightly into the engine. Nevertheless, the parachute again deployed effectively, and the flight computer recorded all necessary data as expected.

Flight 1

Launch Date: June 27th, 2021

Weather: Sunny

Vehicle Mass: 861g (dry mass)

Flight Computer: Buffalo Rev. D

Engine Configuration: 4x D3-P

Altitude: Expected: 125m | Reached: approximately 6m

Objective: Actively stabilized ascent and parachute deployment

Successes:

  • Data Collection: The rocket successfully gathered valuable flight data.

Problems:

  • Correct Ignition Time: The engine ignited significantly earlier than planned due to a typo in the configuration file (55900 ms instead of 59500 ms). As a result, the majority of the engine's thrust was wasted, severely limiting the rocket's ascent.

  • Barometer Reading: The barometer reading was adversely affected prior to lift-off due to the pressure change caused by the engine's thrust. This interference made it challenging to accurately determine the rocket's altitude.

  • Parachute Deployment: The parachute did not deploy during the flight due to the reliance on time-dependent deployment only. Consequently, the parachute deployed only after the rocket had landed.

Buffalo at Launchsite.

Flight 2

Launch Date: July 7th, 2021

Weather: Sunny

Vehicle Mass: 861g (dry mass)

Flight Computer: Buffalo Rev. D

Engine Configuration: 4x D3-P

Altitude: Expected: 125m | Reached: 38.4m

Objective: Actively stabilized ascent and parachute deployment

Successes:

  • Correct Ignition Time and Clamp Release: The ignition timing and clamp release mechanisms operated as expected.

  • Data Collection: The rocket successfully gathered valuable flight data.

  • Initial Stability: The rocket maintained stability for the first three seconds of the flight.

Problems:

  • Initial Stability Issues: Although the rocket was stable initially, it ascended at a tilted angle, likely due to a misalignment in the TVC (Thrust Vector Control) system.

  • Loss of Stability: After three seconds, the rocket lost stability and performed two loopings. Investigation revealed that a gear had dislodged from its corresponding rack, causing the loss of stability.

  • Parachute Deployment: The parachute did not deploy during the flight because only time-dependent deployment was implemented. This failure resulted in the parachute deploying only after landing.

Flight 3

Launch Date: December 18th, 2021

Weather: Cloudy, 6 km/h northwest

Vehicle Mass: 743g (dry mass)

Flight Computer: Buffalo Rev. D

Engine Configuration: 4x D3-P

Altitude: Expected: 105m | Reached: 52.5m

Objective: Actively stabilized ascent and parachute deployment

Successes:

  • Correct Ignition Time and Clamp Release: The ignition timing and clamp release mechanisms operated as expected, ensuring a smooth lift-off.

  • Data Collection: The rocket successfully gathered valuable flight data throughout the flight.

  • Stability: The rocket maintained stability for the entire flight duration, demonstrating the effectiveness of its active stabilization system.

  • Parachute Deployment: The rocket successfully deployed its parachute at apogee, ensuring a safe descent and landing.

Flight 4

Launch Date: March 5th, 2022

Weather: Sunshine and low wind

Vehicle Mass: 625g (dry mass)

Flight Computer: Buffalo Rev. D

Engine Configuration: 4x C2-0

Altitude: Expected: 27m | Reached: 9m

Objective: Actively stabilized ascent with a low thrust-to-weight ratio to further validate the TVC system, obtain onboard footage of the TVC system in action, and demonstrate repeated parachute deployment.

Successes:

  • Stability: The rocket exhibited a very stable ascent. Onboard footage captured the TVC system in action, effectively demonstrating its stabilization capabilities.

Problems:

  • Parachute Deployment: The parachute failed to deploy correctly due to becoming stuck in the parachute hull, resulting in the rocket crashing into the ground.

Further Videos


Project by Johannes Moser

Previous
Previous

JM Eagle Control

Next
Next

Tiger IV