Brushless Motor Thrust Stand




About: Hi, my name is Nikodem Bartnik. I'm 19 years old. I am into designing, making, programming and electronics. In the future, I want to start a company and make my own products. As for now, you can find my work...

Back in the time when I was building my Arduino based Ludwik Drone I faced a problem of choosing proper motors and propellers. I didn't know anything about drones at that time so I had to trust motor manufacturer and the datasheet of a motor those are most likely to be a good source of information but what if you want to combine different motors and propellers together? You still need to know the thrust of the motor and propeller, golden rule for drones is to have at least 2 times bigger thrust than weight of your drone (it depends on what type of drone you want to build this rules doesn't work for racing/acrobat drones and some other). I thought that there must be a device for measuring thrust of a motor, I found some online but those were really expensive so an obvious decision for me wast to design my own! I found some time during my internship at CIT (I was working on airfoil design and testing for a VTOL drone here, that was very cool!) to design a PCB without prototyping and any of the parts, just online datasheets. Surprisingly PCB work just fine! If you want to test your motors keep reading!

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: Parts

We will need components that are listed below, check out values of them on the schematic:

Step 2: PCB

I spend a lot of time on the design of the PCB, I wanted to make it as perfect as I could and it turned out quite nicely! At least it looks more professional than my other PCBs :D Above you can find files to make your own PCB. There is also schematic if you want to build it on a breadboard or protoboard (you can do it without any problem). There is a lot of things I add to the PCB because after analyzing it I thought it will be easier to use. For example, I added screw terminal to connect motor and ESC so if you want to test another motor you don't have to unsolder it. There are also more components than I am actually using (I don't use voltage regulator because I am using Battery Eliminator Circuit (BEC) build in to Electronic Speed Controller (ESC). There is also a switch and button that I am not using but maybe you would like to change a code or add some functionality.

Step 3: Soldering

If you are building on a breadboard you can skip this step but for a PCB it's kind of essential :) As always while soldering start with the smallest SMD components. Atmega328 SMD is not easy to solder so if you have no experience maybe ask for help. Atmega is hidden below LCD display. Tensometric beam module should be also soldered to the PCB as you can see above. Current sensor should be soldered on the bottom of PCB (I know that's not the best solution but works kind of fine for me).

Step 4: Base

We also have to build a base and 3D print some components. I used 8mm plywood as base and print out those STL files with black PLA. Then I fixed everything with screws.

Step 5: Code

Here is code that you have to upload to the Arduino, it's really simple and short all it do is reading data from sensors and displaying it on LCD screen, no sophisticated math or any fancy programming things. I am not a fan of comments in the code so if you have any question just ask me :)

#include "HX711.h"
#include #include LiquidCrystal lcd(4, 3, 5, 6, 7, 8); #define calibration_factor -400000.0 #define ESC_PIN 9 #define POT_PIN A0 #define BUZZER 2 #define CURRENT_SENSOR A2 #define VOLTAGE_PIN A1

HX711 scale(A4, A5); Servo esc; void setup() { pinMode(BUZZER, OUTPUT); lcd.begin(16, 2); lcd.print("Thrust Stand 1"); delay(1000); scale.set_scale(calibration_factor); scale.tare(); esc.attach(ESC_PIN); while(analogRead(POT_PIN) > 20){ lcd.print("TO START SET"); lcd.setCursor(0,1); lcd.print("THROTTLE TO 0"); delay(200); lcd.clear(); } }

void loop() {

float current=0.0; long int sum_of_reads = 0;

for (int x = 0; x < 100; x++){ sum_of_reads += analogRead(CURRENT_SENSOR); delay(2); } delay(50); lcd.clear(); current = sum_of_reads/100; current = (2.5 - (current * (5.0 / 1024.0)) )/0.066; current = abs(current); current -= 0.07; current = abs(current);

int escValue = map(analogRead(POT_PIN), 0, 1023, 900, 2000); esc.write(escValue); lcd.print("T:"); lcd.print(abs(scale.get_units())); lcd.print("kg "); lcd.print("C:"); lcd.print(current); lcd.print("A"); lcd.setCursor(0,1); lcd.print("E:"); lcd.print(escValue); lcd.print(" P:"); lcd.print((((analogRead(VOLTAGE_PIN)*5.0)/1024.0)*3.5)*current); lcd.print("W");

if(escValue > 1500){ if(digitalRead(BUZZER) == HIGH){ digitalWrite(BUZZER, LOW); }else{ digitalWrite(BUZZER, HIGH); } }else{ digitalWrite(BUZZER, LOW); }


Step 6: Test

Once everything is ready we can test it! Be careful, brushless motor is really powerful and with that big propeller, it's really dangerous. To power it, you can use anything that works with your motor and ESC (if you use BEC power). I am using my lab bench power supply which is sometimes not powerful enough for this motor. On the LCD screen, you can see thrust, current, throttle value and power consumption of the motor. That's essential data to design a good quadcopter and find a proper propeller for a motor

Step 7: Conclusion

I hope you enjoyed this instructable! Let me know if you have any questions/ideas in the comments!





Happy making!

PCB Contest

Participated in the
PCB Contest

Be the First to Share


    • Made with Math Contest

      Made with Math Contest
    • Multi-Discipline Contest

      Multi-Discipline Contest
    • Robotics Contest

      Robotics Contest

    27 Discussions


    9 months ago

    Hey, nice job.
    Where did you get HX711.h library from?

    1 reply

    25 days ago

    Hola Nikodem:
    Ya he recibido los pcb de pcbway y veo que no pone los valores de los componentes. Siguiendo tus instrucciones he ido al esquema ya las fotos del instructable y veo que me faltan los valores siguientes:
    L1: No se que componente es y su valor es ilegible en el esquema?
    R3 y R4 cuales son sus valores?
    Pot lcd contraste: No pone valor. Normalmente es de 10 K?
    Microcontoller de maceta en el pin 23: Cual es su valor?
    C3-C4: No estoy seguro de su valor. Es 100uf o 100nf?
    Gracias anticipadas.


    Question 6 months ago on Step 1

    I see the load cell is limited to 1kg max. What do I need to
    do to increase this. I see they have a
    20kg version. I also need to bump the current max up to 70a. Is this

    Thanks \Ed


    9 months ago

    Okay, so I've looked everywhere (I even installed KiCAD) and I do not see the values for R3 and R4. can you list those please?

    Also, your connection for the ESC is incorrect. It should be Signal, 5v, ground.
    Should be an easy modification to the board's layout.


    Question 10 months ago on Step 7

    Do you have a more detailed parts list? (You mention "Some SMD resistors" & "Some ceramic capacitors, Choke") do you have values and quantities?) Or are the values silk-screened onto the board?

    The only other suggestion I would make is there seems to be plenty of room, how about using full sized components rather than SMD which are a pain to solder (at least for me!) LOL

    Other than those two points great project (You've got my vote.) I fly mostly fixed wing and this will be a great winter project!

    I JUST placed my order for the PCB boards.

    Oh, one more quick question, it seems amperage detection is limited by the module selected, is that correct? (Some of my bigger motors can draw 40+ amps...) I will most likely upgrade the module to be able to measure more amps.

    2 answers

    Answer 10 months ago

    Those resistor's package is 1206 and you can find values in the schematic. Choke and capacitors values also can be found in the schematic.
    I actually prefer to solder SMD (1206 are not that small) it's faster for me to solder and those are less expensive too. Thank you very much I am happy that you like it! Thanks for the vote :)
    Think about using different tensometric beam/strain gauge, I used one that can measure up to 5kg, there are also 10kg and 20kg version.
    Yes module that I used can measure up to 20A, for me that's enough. 40A is a lot! If this module is controlled just like the one I used, sure you can easily replace it.
    Good luck with the project.
    Have a nice day!


    Reply 9 months ago

    Okay, so I've looked everywhere (I even installed KiCAD) and I do not see the values for R3 and R4. zcan you list those please?


    Question 10 months ago on Step 2

    Would love to build this but can't open Thruststand.sch. What program was it generated on? I have Eagle 9.2.2 free and it won't read it

    8 answers

    Answer 10 months ago

    It was designed in KiCad


    Reply 10 months ago

    Thanks for the prompt reply, will get a copy and decode it. Regards


    Reply 10 months ago

    Hi got KiCAD 5.0.2. Ran Eeschema and it recognised the file BUT it threw a wobbly at the symbol Library and "converted" them to the new format. Result I can read the labelling on the Arduino, power supply and LCD but no numbers for the pins, just a square with 2 ? on it. Kinda frustrating as I really want to try and build this handy gadget. Any comments, suggestions etc would be really appreciated.


    Reply 10 months ago

    Hi attached a picture of what Eeshema does to your schematic. I am guessing that there is a difference in the libraries. I get all sorts of doom messages about mapping items to new library when I open the file

    EEschema screen under Kicad 5.0.2.jpg

    Reply 10 months ago

    So you are using Eeshema, try with kicad or ask someone for help that know how to conevert kicad schematic to something else. I never used eeshema so I wouldn't help a lot here.


    Reply 10 months ago

    Hi. Tried KiCAD 4.0.7 Same result, lots of squares with question marks in them and the same error messages on loading. Looks like this is going on the back burner while I give it three coats of thinking. Thanks for trying.


    Reply 10 months ago

    You probably miss a library, but if I remember correctly I didn't use any custom libraries. Can you add a screen of what you see in the kicad?


    Reply 10 months ago

    Hi. Tried to open the file in KiCAD but it keeps using Eeschema. I assume that this is the module within KiCAD that is used for Schematic editing. I will try installing KiCAD 4 and see if that will read it.


    10 months ago

    came over from Hackaday:

    This is an absolutely great build given that it’s all self-designed PCB and hand-soldered SMD – great work!

    Having worked with load cells for a very long time, I’m curious how you calibrated the load cell/thrust output (maybe I missed something) – it looks like you're just trusting the data sheet for information (the code has a very simple calibration factor in it). If it’s not calibrated, you’ll just have a relative value for thrust.

    The simplest “good enough” calibration for this rig would be to orient the beam horizontally with the motor mount facing upward and then hang a series of known weights on it from the center of the motor mount. Unless gravity's gone wonky you'll get pretty good calibration values.

    Again, great work - hope to see many more great projects in future.

    1 reply

    Reply 10 months ago

    Thanks! Cool to know that my project is on Hackaday! Of course, I calibrated it before using it, there is a sketch in the examples of a library for this module that explain how to do the calibration. It's basically as simple as you said. The program calculates some kind of an offset that is a constant value that you have to add to your code. I checked if it can measure weight of few objects and it's really precise. Thank you!


    10 months ago

    Looks like fun, but nicely done. Beats starting a big old diesel engine in a bench vice. Fingers out of the way before the engine fires. The brushless motors have transformed all aspects of aero-modelling. I love to see these drones operating - huge future potential