Project tutorial
Model Rocket Motor Test Stand

Model Rocket Motor Test Stand © Apache-2.0

Measure the thrust of a model rocket motor with an Arduino!

  • 0 respects

Components and supplies

Necessary tools and machines

About this project

Have you ever wondered what a rocket motor's thrust looks like? Well you can find out yourself! Using a load cell, an HX711 load cell amp, and an Arduino Uno, you make a test stand for yourself. First we will go over how it works, then we will show you how to make your own. So let's get started!

A typical model rocket motor's thrust will look like this:

As you can see, for about 0.1 seconds, there is a giant peak in the thrust and then it levels out. We need to be able to accurately measure this. To do this, we will be using a four-wire load cell.

To learn how a load cell works, check out this link:

The problem is that an Arduino is not able to read the electrical signals outputted from the load cell. This is where the load cell amp comes in. The load cell amp will amplify the signal from the load cell so the Arduino digital pins will be able to process the data. For this project, we will have to use the Sparkfun HX711 amp because it lets you change the rate from 10hz to 80hz, and 10hz is not nearly enough for a rocket test stand.

So let's get started with the materials:

Also if you want to see some footage and data analysis, check out these videos!


The ones with the stars mean that you need to get that specific one. Other than that, the others are recommended. All from Amazon:


First, you will need to solder the wires from the load cell to the Arduino breadboard jumper wires. You may need to strip the load cell wires to easily solder the wires together.

Now just add heatshrink too keep the wires protected.


Now that the wires are soldered and heat shrunken, we can attach the load cell to the rig. The load cell should have a sticker on it that shows the maximum weight capacity and an arrow. We want the load cell positioned so that the arrow is pointing down and so that the weighing plate is directly above it as shown below. ↓ You can use wood or 3D printed parts to attach the load cell.

Wiring the load cell to the HX711 and then to the Arduino Uno:

First you will need to prep the load cell. The default setting of the Sparkfun HX711 amp is 10hz. You will want to change it to 80 hz so you can get more readings per second. To do this, use an X-Acto knife to cut the RATE wire on the back of the board. Also, solder the male header pins to the HX711 board.

On the left side of the boards there are labels for the pins: RED, BLK, WHT, GRN, and YLW. The last pin, YLW, will not be used. Using the breadboard, connect the red, black white, and green pins to the RED, BLK, WHT, and GRN pin on the HX711. Now, connect the VCC pin to the 5V pin on the Arduino, the DAT pin to Digital Pin 8 on the Arduino, the CLK pin to Digital Pin 9, and the GND pin to ground. Now you are done with the electronics.

*** Follow the diagram, but use digital pins 8 and 9 instead of 5 and 4.


From the Estes website or another rocketry company, buy parts for an engine mount and build it. Then get the engine mount and attach it into a PVC pipe with epoxy. Make sure everything is really sturdy because you will probably do lots of test with the motor mount. After, drill a large hole into the bottom of the PVC so the ejection charge can safely be deposited. Now, glue the PVC pipe to the weighing scale. If the PVC is a bit crooked, don't worry the data will be accurate.

Now all the construction and electronics are complete. We now need to upload software.


Go to the Arduino IDE download. Follow the download instructions and install the app.

Once you have finished the download, go to this GitHub repository.

Download the Zip file and extract. Open the folder and go to "Test Stand Calibration" and inside the folder, there should be an.ino file called Calibration21. Open the file with the Arduino app and it will ask you to make a folder. Click yes and open the code.

Once the code is open, connect the Arduino to you device. Now go to "tools" in the upper left-hand corner and select your board as "Arduino Uno" and select the serial monitor that fits.

Now click upload, or the button with an arrow on it below the "file" tab. If it has problems uploading, try changing the serial port.

Now that the code is uploaded to the Arduino, open the serial monitor by pressing CTRL+SHIFT+M or CMMD+SHIFT+M and change the baud rate to 57600.

Now we can begin calibrating and testing the electronics.


Now that the serial monitor is up, it should start up and ask you to tare. Have the test stand on a flat surface and make sure no load is applied to the load cell. Once you have done that, send 't" through the serial monitor.

After that, it will ask you for a calibration weight. Using a separate scale, or a known weight (such as an iPhone), place that weight on the scale and enter the weight of the object in grams. The serial monitor will then give you a calibration value. Copy that value to your clipboard.

Now send 'y' through the serial monitor. The monitor should start outputting values. If you take the calibration weight off, the serial monitor should immediately read 0.0 and if you put it back on or add weight, the serial monitor should increase the value.

  • If the serial monitor reads n/a, then check the pin designations and the wiring.
  • If the serial monitor is not reading 90 points per second, cut the jumper wire.

Now that you have the calibration value copied, go to the same folder downloaded from GitHub, and open Measure.ino from the folder and open it with the Arduino App.

Now paste the calibration value into the variable slot as shown below.

Now that you have the calibration value copied, go to the same folder downloaded from GitHub, and open Measure.ino from the folder and open it with the Arduino App.

Now paste the calibration value into the variable slot as shown below.

Now that you have changed the calibration value, upload the code again to the Arduino, and open the serial monitor by pressing CTRL+SHIFT+M or CMMD+SHIFT+M. The display should wait a few seconds and start outputting data. Make sure your calibration weight if off.

If everything worked great, you're test stand is ready to go!

Testing-Be very careful and read all procedures BEFORE testing and only use certified motors such as Estes model rocket motors.

Before the test ensure that the motor mount is on very securely and that safety procedure are in place.


Have the test stand rig outside in an open area, approved for rocket testing. Make sure there are no flammable materials near by. Now connect your device to the Arduino using the cable and upload the Calibration21 code. Make sure your device is in a safe and secure area. You may need to protect it with something. Now that the calibration code is uploaded, insert the motor and the ignition system. Make sure the safety key is out!

Now that the motor is in place, open the serial monitor (CTRL+SHIFT+M, or CMMD+SHIFT+M) and send 't' to tare the scale. Once the tare is finished, place the calibration weight on (the heavier the better) and enter the weight of the calibration weight in grams into the serial monitor.

The serial monitor should give you a calibration value. Copy the value (like before) and enter 'y' into the serial monitor to ensure your test stand works right. After entering 'y' into the serial monitor, the serial monitor should accurately display the amount of force on the load cell.

After you have ensured the load cell works properly, open the 'Measuring.ino' code that was downloaded from GitHub through the Arduino app. Paste the calibration value into the code (like before) and upload the code. Now that the code is uploaded, open the serial monitor (CTRL+SHIFT+M or CMMD+SHIFT+M). Make sure that the serial monitor shows timestamps. Now the serial monitor will start outputting the amount of weight on the load cell. Do not place any weight on the load cell.

Clear the output of the serial monitor, run back and launch the motor ASAP. Once the motor has finished burning, run back to the stand and press the Reset button on the Arduino board.

The reason we clear the output right before launch is so that there is less values (because every second is 80 more values to sort through), and the reason we show timestamps is so we can easily graph the data later on.

Now copy all the data from the serial monitor to your clipboard, and paste it onto a Word document or notes. Save the document so you can go through data later.

Data analysis:

Now that you have your data saved, open it. Copy all the timestamps into an Excel document. You may need to readjust because the timestamps from the serial monitor show the actual world time (HH:MM:SS). Now enter the values, into the Excel document and once your done, (it should take a while), make a graph. It should look close to thrust curves you can look up online. (we are currently working on a new code so that there are better timestamps)

To convert grams to newtons, convert the grams to kilograms, and then multiply the kilograms by 9.807.

You should have an awesome looking graph!


I hope you guys enjoyed the guide! If you have any questions at ALL, you can just fill out this form:

Also if you guys want to support us, check out our Patreon. We can't make guides like these or do what we do without your support. For as little as $1 a month, you can unlock exclusive benefits such as on-screen credits, one on one help sessions and weekly posts. We really need your support.

Also make sure to subscribe to our YouTube for more videos and guide like these:

NM Rocketry Reviews

*Disclaimer-NM Rocketry Reviews

Limitation of Liability: Model rockets are not toys. Model rockets are functional rockets constructed of lightweight materials and launched using pre-manufactured, certified model rocket motors in accordance with the NAR Model Rocket Safety Code. Model rockets, if misused, can cause injury, property damage and even death.NM Rocketry Reviews certifies that it has exercised reasonable care in the design and manufacture of its products. Once sold, we cannot assume any liability for product storage, transportation or usage. NM Rocketry Reviews shall not be held responsible for any property damage or personal injury whatsoever arising from the handling, storage, use or misuse of our product. The buyer assumes all risks and liabilities there from and accepts and uses NM Rocketry Reviews products on these conditions


motorteststand-master (4).zipArduino
All the code below.
No preview (download only).


What your thrust curve should look like.


Similar projects you might like

Obstacles Avoiding Robot With Servo Motor

Project tutorial by Sora JY

  • 31 respects

Test DHT22 Sensors with Arduino and MATLAB

Project tutorial by dancili

  • 23 respects

Arduino Motor Shield PCB V1 | 4 Motors at Once

Project tutorial by Jithin Sanal

  • 15 respects

Rocket Auto Abort System!

Project in progress by Cole Purtzer

  • 14 respects

Rail Road Model IR Remote Control (REMOTINO NANO)

Project showcase by pautax

  • 5 respects
Add projectSign up / Login