Brushless Motor Thrust Stand

9,950

73

24

About: Hi, my name is Nikodem Bartnik. I live in Poland, I'm 18 years old. I like to program and create robots, devices and things. In the future, I want to start a company that creates new technology. Right now I ...

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:

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

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!

YouTube: https://goo.gl/x6Y32E

Facebook: https://goo.gl/ZAQJXJ

Instagram: https://goo.gl/JLFLtf

Twitter: https://goo.gl/JLFLtf

Happy making!

PCB Contest

This is an entry in the
PCB Contest

Share

    Recommendations

    • Epilog X Contest

      Epilog X Contest
    • PCB Contest

      PCB Contest
    • Toys Contest

      Toys Contest

    24 Discussions

    0
    None
    Jacat

    9 hours ago

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

    0
    None
    kilroy07

    3 days 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.

    0
    None
    kilroy07

    Question 4 weeks 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

    2 answers
    0
    None
    Nikuskilroy07

    Answer 4 weeks 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!

    0
    None
    kilroy07Nikus

    Reply 9 days 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?

    0
    None
    barry9

    Question 4 weeks 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
    0
    None
    Nikusbarry9

    Answer 4 weeks ago

    It was designed in KiCad

    0
    None
    barry9Nikus

    Reply 4 weeks ago

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

    0
    None
    barry9barry9

    Reply 4 weeks 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.

    0
    None
    barry9barry9

    Reply 4 weeks 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
    0
    None
    Nikusbarry9

    Reply 4 weeks 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.

    0
    None
    barry9Nikus

    Reply 4 weeks 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.

    0
    None
    Nikusbarry9

    Reply 4 weeks 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?

    0
    None
    barry9Nikus

    Reply 4 weeks 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.

    0
    None
    MadScott

    4 weeks 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
    0
    None
    NikusMadScott

    Reply 4 weeks 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!

    0
    None
    Phil_S

    5 weeks 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

    1 reply
    0
    None
    Jacat

    5 weeks ago

    Hi!
    Very nice job.
    I was not able to find the top of the beam, the motor mount.
    Is that available?
    Thanks!

    1 reply
    0
    None
    NikusJacat

    Reply 5 weeks ago

    Thanks, looks like I uploaded old PCB case design instead of motor mount, thanks for pointing out! You can find it in step 4