Active Stabilization Rocket System

Use control systems to control and stabilize a Amateur Rocket

Similar projects worth following
Many problems affect current Amateur Rockeeters, one of those problems is when their rocket goes off course. I set off to develop a system that can guide a rocket in a vertical path, allowing to to go higher and farther and stay within the required range.

Using fins to stabilize a rocket gives superior performance to small model rockets than moving the engine (Gimbal Method). Using fin stabilization allows control to be longer into the cruising portion of the parabolic arc rather than the *short* propulsion of the rocket's launch. Rockets that are stabilized can prove to be a handy resource in the future as we use more sensors that could monitor many useful things.

  • 4 × Mini Servo
  • 1 × 9 DOF/10 DOF IMU MPU9250 or MPU6050 and HMC5883L
  • 1 × Adafruit M0 Adalogger
  • 1 × MicroSD Card
  • 1 × ESP-12F

View all 6 components

  • Still continuing.

    Jeremy Hall04/11/2018 at 20:52 1 comment

    I have been working hard these past few months to entirely redo my code, and that code transformation is almost complete. Also during that I designed and ordered a new circuit board which combined all the things I wanted into one board.

    It has many things included in it:

    • Cortex M0 Processor
    • ESP8266
    • RFM69HCW
    • LiPo battery charging circuit
    • SD Card slot/logging
    • 9DOF IMU (MPU9250)
    • BME280 for altitude 
    • Jebediah Kerman for good luck

    It came out wonderfully and here is a picture of the finished board:

    That's all for this update, I'll update more once code is updated to reflect the newest changes.

    -Jeremy Hall

  • It's been a while, but worth it! Rocket Control Version 2.0!

    Jeremy Hall04/01/2017 at 20:34 0 comments

    Hey guys, been a while since I last updated. Over this week I finally had free time to work freely on my rocket. I went ahead and started Rocket Stabilization & Control Version 2.0

    In this version there are MAJOR UPDATES

    They are as follows

    • Full Communication with the on-board flight computer
    • Complete control panel with the ability to change settings on the fly
    • Ability for it to arm and launch itself safely
    • Ability for calibration on the fly based on launch environment
    • Control system testing built into the software
    • And More!

    It has taken a lot of work this week, I have been staying up late into the night each day working on this.

    The final released version will be put out most likely Monday night.

    I have most of the software actually done, besides the functions I need to program into the flight computer to do each thing.

    The system uses a Serial interface into a ESP8266 that is connected by USB onto the PC

    The PC then sends commands into it where that ESP8266 relays those commands via UDP unto another ESP8266 which is connected to the Flight Computer. That ESP then relays each message to the flight computer via Serial. Since the upgrade the flight computer has two serial ports and is able to recieve data and translate it while being able to output then onto USB serial which is useful of debugging of the system. I have tested each system as I have been going and right after I publish this log I will be conducting a fullscale test and will be letting you know how that goes.

    Here is an image of the flight software I designed

    As always, Godspeed.

    -Jeremy Hall

  • Fins Installed!

    Jeremy Hall01/04/2017 at 01:18 0 comments

    I have had a lot of time over Christmas Break so I a while back I got my custom laser-cut fins in the mail. So I went ahead and mounted them and the rocket is close to completion. Other than this, I noticed that the control section of the fins that rotates tends to drag down and likes to break off, so I will be adding single point pivots to the ends of the fins to help fix this problem. All I have to wait for is one new sensor board (I accidentally broke my second one in testing) and am waiting to get the actual board with the microcontroller on it.

    I also created a Patreon if you want to support me!

    It looks pretty good with everything together

    If you were wondering what the fins looked like:

  • Servos and Thrust Section Installed

    Jeremy Hall12/19/2016 at 03:46 0 comments

    A whole lot has happened since the last update. Here is what has happened in order

    • Received Circuit Board V2 from OSHPark
    • Created Wiring Harness
    • Cut the tube to size
    • Measured and made holes for servos
    • Mounted Servos
    • Mounted Thrust Section
    • Fed Wire Harness up the rocket
    • Epoxied everything together

    After all that I am basically done other than I am getting my fins in tomorrow and will be installing them.

    I did test all the servos and they work perfectly and am just waiting to get everything finished now.

    Should all be ready to launch shortly.


    -Jeremy Hall

    My Wiring Harness

    Bottom of the rocket:

    Whole Rocket!:

  • Fins ordered, Full Cad Model soon!

    Jeremy Hall12/11/2016 at 22:59 0 comments

    This week I finished the final design for the fins that I need. So I finally went and earned myself some money to pay to get them laser cut. So I made the template design and ordered them earlier. This is the final piece I have been needing to order for my rocket and they should be in around the 19th. In other news, my control board has been manufactured and will be here tomorrow, so stay tuned for that update. I am still waiting to order the Adafruit Cortex M0 Adalogger but that should not be long. So far this is progressing fast and is on track for a January or February launch date. I also started working on the CAD designs and will be uploading them to Github shortly.



  • Control Board Version 2.0

    Jeremy Hall11/28/2016 at 00:06 0 comments

    Yesterday, I spent my morning designing the 2nd version of my control board. I decided on a couple of things. I would use the Feather Standard of boards because to make a feather wing for it only costs me 9 dollars, and I can use the Feather M0 Adalogger that I will be getting ordered Tuesday. The Atmel Cortex M0 processor is really fast 48Mhz vs 8Mhz and is a 32 bit microcontroller instead of the 8 bit microcontroller. This opens up many, many more things that I can do. I can make the processing go even faster due to the actual floating point capability of the processor and the board I will be receiving has a microsd card slot so I can add microsd card logging of all the data during the flight. This will become a nice addition to my project. Board and Schematic Files will be available on my Github soon enough. If you have any questions feel free to ask!

    -Jeremy Hall
    (I may have made a couple of silkscreen errors but, atleast its not anything major)

  • Progress, Progress, Progress

    Jeremy Hall11/24/2016 at 01:46 0 comments

    I have had this entire week off so I decided to relax and do some work as I am at it. I finally got around to working on the code some more and have the servo code mostly working for one servo. Intergrating more servos than 1 will become a trick and I will have to really learn how these timers work and how to do it the best. Right now I can get the servo to move but only in one extreme. I am working on fixing that and getting the servo code ready to go for the rocket. I have hoped to get the rocket built and put together for the most part this week and I will see how that pans out. That's all I have for today.

    Have a great Thanksgiving!


    Jeremy Hall

  • AVR Filtering Port Complete

    Jeremy Hall11/07/2016 at 01:10 0 comments

    I took me a long time today, but I finally found a nice library for I2C so I didn't have to do it all myself, and then I spent most of the day going through the datasheets to figure how the I2C protocol and what to send at what time. I managed to get that working and then worked on porting the code for filtering. Luckily that was easy enough due to it was already the right type and mostly copy and paste. So far here is my list as of what is complete/WIP/incomplete for the rocket:


    • Arduino Code
    • Control Board
    • Filtering Code
    • Control Code
    • Abort System
    • Body Tube and Nose Cone


    • AVR Port (Need to add PWM and GNC code)
    • Control Board Version 2
    • Control Code Version 2
    • Fast SD logging
    • Cortex M0(or M4) port


    • Ordering Fins
    • Ordering a Motor
    • Ordering Version 2 Control Board
    • Getting a Teensy for the Version 2 Control Board


    -Jeremy Hall

  • AVR {port} in progress!

    Jeremy Hall10/30/2016 at 19:10 0 comments

    So far I have done most of my programming in Arduino, after spending a lot of time and reaching the end limitations of the Arduino system, I have decided to port the code to AVR C. This makes things simpler in the fact of when I get my new controller made for it I will be using a Atmel M0+ Processor and already having it in AVR C will make it simple to port to the new controller.

    Of course this does not come without any problems along the way. I am relatively new to AVR and Bare C programming, and therefore my code is nowhere close to optimized and I have to learn the use of pointers and such. But I am learning this very quickly as I go and I already have UART and am currently working to get I2C/TWI up and working properly. I am working with a Atmega328pb Xplained Mini board to make it simpler on myself and I can use Atmel's nice debugging features that are surprisingly helpful.

    Hopefully my next update will be when I order my fins for my rocket.


    -Jeremy Hall

  • We have melted the metal, sir.

    Jeremy Hall10/11/2016 at 22:08 0 comments

    After about two weeks I finally got the money to order myself a new soldering iron so I could finally put the board together. After about 30 minutes of soldering and making sure nothing shorted together I finally got it finished and plugged it in to test.

    I used the ICSP header and loaded the Arduino Uno Bootloader onto it and it went perfectly.
    After I continued on and uploaded my code for my rocket and as far as I can tell everything seems to be working fine. All lights are on and I can finally declare this board "flight ready!"

    Other notes include upcoming changes:


    • Full +-16g support
    • Full port over to AVR C
    • Faster SD card support
    • Kalman Filter for Altitude(Version 2.0)


    • Upgrade to a 32bit M0 or M4 processor
    • Better SD Card Support onboard
    • More Space for Components
    • Correct Pin-out for the Servos
    • Li-Poly Support

    Thank you for all the support!


    -Jeremy Hall

View all 20 project logs

Enjoy this project?



Natelolzzz wrote 06/17/2023 at 15:50 point

Jeb's Finally Going To Mun!

  Are you sure? yes | no

Samuel Nam wrote 11/07/2017 at 05:30 point

Is it okay if you post a tutorial on how to put the software you had created into the hardware?

  Are you sure? yes | no

samern wrote 09/06/2016 at 17:43 point

I look forward to seeing how this works, especially as I would love to see this on an HP rocket.  I frequently have to keep hunting for those as no matter what I do, mine are too heavy for streamer recovery and no reduction in parachute size or increase in spill holes prevents me from taking a hike to get the rocket back, short of separating the payload from the booster.  Something like this would be great if I could give it Lat/Long Co-ordinates and get it to fly far enough upwind to come back reasonably close, including parachute deployment within a certain altitude.  I know there are products that do this individually, but not an all encompassing package.

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates