Brushless Motor Thrust Stand

12,681

83

25

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!

Supplies:

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!

Share

    Recommendations

    • IoT Challenge

      IoT Challenge
    • Fandom Contest

      Fandom Contest
    • Gardening Contest

      Gardening Contest

    25 Discussions

    0
    None
    edmitchell

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

    0
    None
    Jacat

    4 months ago

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

    0
    None
    kilroy07

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

    0
    None
    kilroy07

    Question 5 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.
    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 5 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!

    0
    None
    kilroy07Nikus

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

    0
    None
    barry9

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

    Answer 5 months ago

    It was designed in KiCad

    0
    None
    barry9Nikus

    Reply 5 months ago

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

    0
    None
    barry9barry9

    Reply 5 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.

    0
    None
    barry9barry9

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

    Reply 5 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.

    0
    None
    barry9Nikus

    Reply 5 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.

    0
    None
    Nikusbarry9

    Reply 5 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?

    0
    None
    barry9Nikus

    Reply 5 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.

    0
    None
    MadScott

    5 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
    0
    None
    NikusMadScott

    Reply 5 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!

    0
    None
    Phil_S

    5 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

    1 reply
    0
    None
    Jacat

    5 months ago

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