Active Stabilized Rocket System

Use control algorithms to predict movement and control a amateur rocket by the use of active fin stabilization

Similar projects worth following
One problem that has faced many rocketeers hoping to use existing fields to launch and recover a model rocket is the fact that it could easily stray off course and a long distance away. The Solution to this problem is simple, control the rocket. Many control systems have been heavy and expensive due to the complex math that is needed to control a launch vehicle. Now, with the advent of cheap sensors and microcontrollers that are small and can do all the math that is needed to launch a large rocket, it is time to stabilize a amateur rocket launch.

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
  • 1 × Arduino Pro Mini
  • 1 × MicroSD Card
  • 1 × MicroSD to SPI board

  • 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

  • Boards received and Abort!

    Jeremy Hall09/17/2016 at 20:50 0 comments

    I would love to thank OSHPark for getting my boards very quickly and for very cheap. They look wonderful, and I cannot wait to use them. I cannot recommend them enough for their prices and the nice looking Purple PCB. I am greatly happy with them and look forward to getting Version 2 made soon.
    (I made minor errors on Version 1. The Servo pinout is not correct, and the clearance is a bit off between the sensor and microcontroller boards.)

    In other news, I finished debugging the abort system this morning while I was waiting to get the boards in the mail. It now works flawlessly and efficiently. With that abort code is done, my stabilization code is finished and all I have to do is calibration and flight readiness checks. I am rapidly completing this project and hope to have the entire thing launching by December.

    On the note of Fins:
    I am working my hardest to get the money to order fins for my rocket and should have the money for that shortly. Once I order those, I will have every part of my rocket complete and ready to go.


    -Jeremy Hall

View all 19 project logs

Enjoy this project?



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