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

  • 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

  • 4 Pieces Left

    Jeremy Hall09/12/2016 at 01:30 0 comments

    This week has been filled with a whole lot of measuring and designing and ordering. As you know, I got my PCB ordered. I also continued on to get my nose cone for the Rocket ordered. I managed to get it for cheap (about 15 dollars total) and it will be coming in Tuesday. I also managed to order myself the Epoxy needed to put this all together. That was the last of the money I had for the month. I am looking into ways to continue to get the 40 dollars I need to get fins laser cut and shipped to me.
    I also realized I had a error on my PCB. It is not a major problem and just means I have to change the pins of my Servos which is not a big deal at all. I switched the power and ground signals on it and, I just have to move the wires in the molex connectors. I also got my newest sensor module, it is the same one I have been using for the prototype testing, but unfortunately I lost that one so I had to order another. I also ordered myself 400 male pins for my PCB so I can solder it on when it comes in (Hopefully soon.)

    Last night, I started designing the circuit board for Version 2 of my Rocket Control Board. It is now using a 32 bit microcontroller used in the Uno and the M0 Feather that Adafruit sells. It is a more complicated design, and I am adding microSD card support onboard, also I am adding Lipoly Charging and probably will have a USB connection for debugging. Stay tuned for that.


    -Jeremy Hall

View all 18 project logs

Enjoy this project?



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