Arduino Rocket Guidance

Rocket guidance can be achieved 2 ways, thrust vectoring and fin angling. The way I am guiding my rocket is by using thrust vectoring. Basically, an Arduino with a gyroscope and an accelerometer tell servo motors which way to angle the engine, and the rocket will move to the opposite of the engine's thrust vector. Lets get this show started with some material lists!

Teacher Notes

Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.

Step 1: Material List

This section should give you a basic idea about what you will need, more details will be explained in future steps

1) Power distro board (Custom Made)

2) .25 inch Aluminum billet or 3/8 inch basswood (For the chassis)

3) Rocket Motor

4) MPU6050 6 axis gyro chip

5) Arduino

6) laser cutter

7) Computer

8) Metal Gear Servos

Step 2: Make the Power Distro. Board

Its critical to save weight on a rocket, and the power distro. board will take power from a 11v lipo battery and distribute it to the servo motors and to the arduino/sensors. Using the diagram i posted, make a distro board.

Step 3: Wire the Gyro to the Arduino

The gyroscope has to be wired to the arduino in a specific way for it to work/be read. Since this is a fairly cheap module, no directions were provided and I had to figure it out myself. Using the pictures, make a cable for the gyroscope.

Step 4: Make the Thrust Vectoring Frame

The thrust vectoring frame must be powerful enough to take the rocket motor's thrust and not break. For this reason I went with a custom plasma cut aluminum frame, although if you pick a smaller engine, you could go with a wooden one.

The 2 inner rectangles are going to be used to house the servo motors, while the outer circle moves in the x axis and the inner circle moves in the y axis. The rocket engine will sit in the inner circle. I lost the laser cutting files for this piece so you might have to piece it together yourself

Step 5: Attach Servos to the Frame

The servo motors I am using are metal geared and shave a fairly fast movement time (critical to rockets). The servos are attached to rods, which connect to both the inner and outer circle. I had to epoxy the servo motors in because they kept coming loose.

Step 6: Make the Electronics Bay

The electronics bay will house the arduino and power board, along with the battery, and will keep these items safe from the rocket's thrust. You have to be creative here and I made mine so I could slide a tube over it for launch

Step 7: Programming

The code here will let the rocket fly straight up without fins using artificial stabilization, great for the first test flight!

Microcontroller Contest

Participated in the
Microcontroller Contest

Tech Contest

Participated in the
Tech Contest

Be the First to Share


    • CNC Contest

      CNC Contest
    • Make it Move

      Make it Move
    • Teacher Contest

      Teacher Contest

    15 Discussions


    Question 4 days ago on Step 7

    I am trying this project out and I am having some trouble with the code. It says :

    Multiple libraries were found for "Wire.h"
    Used: C:\Users\Family\Documents\Arduino\libraries\Wire
    Not used: C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.21.0_x86__mdqgnx93n4wtt\hardware\arduino\avr\libraries\Wire
    Multiple libraries were found for "I2Cdev.h"
    Used: C:\Users\Family\Documents\Arduino\libraries\I2Cdev
    Not used: C:\Users\Family\Documents\Arduino\libraries\MPU6050
    exit status 1
    Error compiling for board Arduino Nano.

    Any help would be great.


    Question 5 months ago on Step 2

    Uh can you provide the link to your circuit board


    Tip 5 months ago on Step 3

    Could you please add the diagram for the power distor board


    9 months ago

    thanks for sharing this awesome idea. I am not really in this programming theme but i wanted to try it still. So i ordered everything on amazon and downloaded the Arduino open source (windows installer) and then I ran into a problem when I was uploading the file, as you can tell from the image I uploaded. You seem like a smart guy so i hope you ( or anyone else) can help me.
    thanks for your help

    3 replies

    Reply 9 months ago

    Tried the sketch using a Mega2560 connected to a mpu6050 and a servo without problems. The servo reacts to the movement of the MPU6050. The next step is to design and build the structure.


    Reply 7 months ago

    Yes this was really helpful. And I am really happy that there is quiet a simple solution.
    Would you maybe tell me how you would build that power distro board? The pictures on the article aren't really in good resolution. Would be very kind of you.
    Thanks for your help


    Reply 9 months ago

    I had the same issue when I tried to run the program and I needed to download the I2C library from GitHub ( Then I had to unzip the file and go into the folder and rename the file called SoftI2CMaster.h to I2Cdev.h and the folder to I2Cdev. Next, I went into the Arduino program and went Sketch -> Include library -> Add .ZIP file. Then find the folder that you renamed I2Cdev, select the folder and click Choose. I don't know where the file will be on Windows but on Mac, it was under Documents -> Arduino -> Libraries.

    Once you have done this you will encounter a similar error with the next line of code. Just download the Arduino MPU 6050 library ( and repeat the same process with adding it.

    Next, you will encounter an error that says: 'class MPU6050' has no member named 'initialize'
    The error happens with the line of code that says: mpu.initialize();
    You can just change this to mpu.begin();
    It has the same meaning as mpu.initialize(); it is just updated command with a different word to do the same function.

    Finally, you will encounter an error that says: 'class MPU6050' has no member named 'getMotion6'
    I havent figured out how to solve this issue yet. I think the issue is for a similar reason as the last error where it was an outdated command because the error message has the same format just with different terms or commands. I have yet to find the equivalent command in the new versions of the Arduino software.

    I hope this helped


    3 years ago

    i am making a swing-fire [a swing fire is basically a javelin] so thanks for the design!


    4 years ago on Step 7

    I have been experimenting a whole lot as of late with spin stabilised rockets and now I'm looking at venturing into the realms of GYRO stabilised rocketry. This Instructable is exactly what I need to make a start on my project.

    Thank you for posting this up!

    Much like AJManfield I'm very keen to see the final product perform in a real life scenario.

    Power to ya!

    I was wondering what kind of response you got. I've been working on this type of thing, but the rocket starts out moving so fast that the hardware doesn't have time to react before its too late. What kind of latency do you get from sensing a deviation to adjusting for it in real life?

    Also, have you considered using a PID or PD controller to adjust for overshoot?


    4 years ago on Introduction

    Would benefit from a micro instead of uno (for weight reduction)

    Good project, I like