Brushless Motor Thrust Stand

29,678

110

30

Introduction: 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 o…

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); }

}

Attachments

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

Participated in the
PCB Contest

Be the First to Share

    Recommendations

    • Game Design: Student Design Challenge

      Game Design: Student Design Challenge
    • Make It Bridge

      Make It Bridge
    • For the Home Contest

      For the Home Contest

    30 Comments

    0
    hashim001
    hashim001

    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?

    0
    cdauv
    cdauv

    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

    1
    ec-cts
    ec-cts

    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.

    0
    Jacat
    Jacat

    4 years ago

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

    0
    ctorressacristan
    ctorressacristan

    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.

    0
    edmitchell
    edmitchell

    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

    0
    kilroy07
    kilroy07

    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.

    0
    kilroy07
    kilroy07

    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

    0
    Nikus
    Nikus

    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!

    0
    kilroy07
    kilroy07

    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?

    0
    barry9
    barry9

    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

    0
    Nikus
    Nikus

    Answer 4 years ago

    It was designed in KiCad

    0
    barry9
    barry9

    Reply 4 years ago

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

    0
    barry9
    barry9

    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.

    0
    barry9
    barry9

    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

    EEschema screen under Kicad 5.0.2.jpg
    0
    Nikus
    Nikus

    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.

    0
    barry9
    barry9

    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.

    0
    Nikus
    Nikus

    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?

    0
    barry9
    barry9

    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.