Introduction: Brushless Motor Thrust Stand
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!
Step 1: Parts
We will need components that are listed below, check out values of them on the schematic:
- Tensometric beam (also called load cell or strain gauge)
- 16x2 LCD
- Motor + ESC + propeller
- Current sensor
- Buzzer
- 2 pin screw terminal
- 3 pin screw terminal
- Potentiometer
- Switch
- Breakaway Headers
- potentiometer
- Kanda socket
- Some SMD resistors
- Atmega328 SMD
- Some ceramic capacitors
- Choke
- PCB
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.
https://www.pcbway.com/project/shareproject/Brushless_motor_thrust_stand_with_Arduino.html
Attachments
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 A1HX711 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!
YouTube: https://goo.gl/x6Y32E
Facebook: https://goo.gl/ZAQJXJ
Instagram: https://goo.gl/JLFLtf
Twitter: https://goo.gl/JLFLtf
Happy making!

Participated in the
PCB Contest
30 Comments
Question 1 year ago on Step 4
Hello.
I am trying to build a similar thrust stand but rather than using a potentiometer, I am generating PWM signals through Arduino code but I am facing serious problems with the current and thrust measurements. Can you please send a circuit diagram? and also how did you calibrate your load cell? I am trying to use an object with known mass to calibrate it but I am getting serious errors . Can you please guide me?
Question 3 years ago on Step 7
Hello
good job
it s very intersting for my hobby
is it possible to add a RPM brushless motor sensor
regards
Question 3 years ago on Introduction
ATTENTION. DO NOT ORDER THE PCBs.
It is a good video, but with real problems. A link has been made available to order the pcb in the Chinese company that receives a quantity, and it turns out that certain values of some electronic components are missing.
I have asked you here several times and for instructables and have not deigned to answer.
So I lost the cost of ordering the pcb and buying the electronic components that were clear.
I ADVISE not to order the pcb because they will not be able to finally carry out the project because there is a lack of data that cannot be clarified.
Good words, bad deeds, because this person benefits from commissioning the pcb.
4 years ago
Hey, nice job.
Where did you get HX711.h library from?
Thanks,
Reply 3 years ago
https://github.com/bogde/HX711
I hope you've got it before but any other could need it too.
Best regards.
Videoenquirer
3 years 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 3 years 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
possible?
Thanks \Ed
4 years 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 4 years 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.
https://www.aliexpress.com/item/Panel-Mount-100Amp-AC-DC-Current-Sensor-Module-Board-based-on-ACS758/32497457591.html
Answer 4 years 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 4 years 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 4 years 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
Answer 4 years ago
It was designed in KiCad
Reply 4 years ago
Thanks for the prompt reply, will get a copy and decode it. Regards
Reply 4 years 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 4 years 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
Reply 4 years 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 4 years 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 4 years 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 4 years 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.