Reducing hacker motors (X-BL 52S) response time considering the quad-copter controller

aram

New member
Hi guys,

I am trying to implement my flight controller algorithm on a quad-copter using four hacker motors, X-BL 52S. That being said, I have the following questions and I will appreciate if you could answer them:

- In my controller the motors response time (the time necessary for a motor to reach the desired speed) is very important, the lower the better, based on some preliminary tests I did with the drone, it seems that the response time of the motors is about 50 ms to 100 ms in an on to on scenario (when motor is rotating = on) and about 300 ms to 400 ms in an off to on scenario (when motor is stopped = off). What do you think about this? Can reach to a lower response time?

- It seems that the motor I am using (X-BL 52S) is kind of old, do you suggest other types of motors useful for my purpose? With a lower response time?

- So far I am testing the motors through some high level controller, but I thought that might cause some delay and perhaps it is better to test the motors directly with a board such as Arduino Uno, what is your suggestions?

- Basically what is the possible frequency for changing the motor speed?
 

Ihichi Bolls

Well-known member
Motor speed is usually controlled by the ESC and things like motor timing and demag as well as other features are changed there. I am not sure the method you are using to drive the motors so cant really say anything more specific.
 

aram

New member
Actually I am not sure about the method that is being used because I am controlling the motors through a micro-controller and that controls the ESCs (I am talking about an AscTec hummingbird). So I am not sure what method is used. The data I obtained is by sending the motor speed commands to the micro-controller. But I can implement a whole new method if it can provides faster response time. So it doesn't matter what method they used if we implement a new thing from scratch. What method do you suggest? I am planning to use Hacker motor and their ESCs, what do you think?
 

Ihichi Bolls

Well-known member
Working with arduino and things like that is way beyond my skills mate. I use traditional methods of newer flight controllers plugged directly into esc and let commercial software control it like beta flight or KISS. My strong point is building and tuning for freestyle and racing. I spent a few months back in the 80's on my brothers unused coco II computer trying to learn basic off 5 inch floppy drives and writing to code to a cassette tape drive. Other then that its a little bit of machine code from my electronics classes back in 2000 ish.
 

ElectriSean

Eternal Student
Mentor
Depending on what you consider response time, there are a couple of things you can do to reduce it as much as possible. If you mean the time it takes between when you issue a command (ie: move the stick) to the time the ESC responds, you need to run the fastest controller possible (F7 at this time I believe) and the fastest ESC's which are BLHeli_32 today. A low latency control link such as Crossfire will also help.

If you are talking more about how long it takes to speed up and slow down the motors once the ESC has the command, all you can really do is run the lightest prop possible on the most powerful motors, and definitely enable motor braking if you're running an older ESC protocol. BLHeli_s and 32 both enable this by default.
 

aram

New member
Thanks for your reply. I am looking for both, to reduce the delay in transferring the command till it arrives to the motor, and also the motor delay itself. In terms of motor delay as you said just light weight prop and high quality engine (what motor do you suggest? what brand?). In terms of the transferring delay, based on what you said and what I found on the internet, I should use the fastest ESC (ESCs that support BLHeli_32 or DShot). You suggested to use F7 which is the proper choice. However, now my issues is that I need to write my controller code and then interface it with this F7 controller that you suggest. Basically my controller should send the commands to the F7 controller that support fast ESCs. Many of the F7 controller are closed code and do not receive command from another controller. Can you suggest which flight controller comes with F7 and is possible to send it the motor speeds?

The thing is that the output of my flight controller is 4 motor speeds, and I need to send them to the motors (in this scenario using F7 flight controller and BLHeli_32).
 

Ihichi Bolls

Well-known member
Can I ask what the objective is for running these motors?

Is this a project for school? Are you writing your code as product development? Is this a thing just to see if you can?

With the flight control software and hardware these days you can speed motors up insanely fast.

This is the DAL F722 flight controller driving a Dal Rocket 45a 4 in 1 esc to 4 Emax 2306 2700kv motors with Dal 5x4x3 props.

 

ElectriSean

Eternal Student
Mentor
There are a few massive open source flight controller software projects - Betaflight, Cleanflight, iNav, Arducopter... Most of these run on STM32 based boards,. If you just want to control a quad with an arduino, the bottleneck will be the arduino. The STM32 family (even the old F1 boards) are superior in every way to the ATMega 8 bit stuff. If you're after performance, run Betaflight. If you're doing this just to do it -and I admire that - then you have a lot of stuff to figure out and learn before you get to optimizing :)
 

aram

New member
@Ihichi Bolls

This is to run my simulated flight controller using an actual drone. It is using neural networks and as a result its hard to implement it on a STM32 based flight controller. So for me the best is something like this Small Computer (So my flight controller would be on this) >>> Flight Controller (To receive the motor speeds and send them to the ESCs) >>> ESCs (BlHeli_32) >>> Motors

Nice, it seems to me that your drone is really responsive and swift. Can you tell me which one of DSHOT1200, PWM, Multishot or OneShot did you use? and how long is your flight time?

@ElectriSean

Great, I worked with Arducopter, its good for many purposes but I think its not fast, perhaps it is kind of slow based on my experience. But I guess you are right, I should avoid Arduino and use one of these flight controller in my pipeline "Small Computer >> Flight Controller >> ESCs", the one which is easier to use and does less process and just pass the motor speeds to the ESCs, I think I should follow your suggestion for Betaflight since it has the performance.

Sure, I am open to learning. Basically, my flight controller supposed to calculate everything and produce motor speeds that can keep the copter in air and fly smoothly.
 

LitterBug

Techno Nut
Moderator
Reducing rotating mass should be a key thing if you want to reduce reaction time of the motors/props. The more mass you have to spin, the longer it takes to accelerate and decelerate it. I've been flying dRonin firmware that has an autotune routine. The routine measures the time a command is issued till the time it is noticed by the gyro. This information is plotted out for each axis and response time is calculated. The lower mass props do in fact have an impact on the reaction time of the aircraft.

Cheers!
LitterBug

Screenshot from 2019-02-15 19-27-13.png
Screenshot from 2019-02-15 19-27-15.png
Screenshot from 2019-02-15 19-27-17.png
 

Ihichi Bolls

Well-known member
Thanx mate. took 5 years to get to the point of control both in learning the quad set up as well as my reaction times at 55 years old now hehe.

That video IS my flight times when pushing that hard. That was a complete run on a 5s 100c 1300 mah pack I probably could have pushed two more laps out of it but I am too poor to brutalize my batteries in that way. I fly with a throttle % timer and can bring my packs back to earth at 3.7 to 3.8 v per cell by the time I get back home and have them on a charger.

Neural networks huh? the sticky probe pads type or full on wet wired. Sticky probes are gonna be far to slow to fly with any agility with the tech we have. The pilot would have to be an already experienced pilot that understands flight and has the reaction times to cover the latency of a system like that. You may be able to go cruising nice and slow with no obstacles but flying at the speeds I do is a long ways off with our current tech at hobby level.

If you are going for efficiency in flight then a larger platform will be best. Low kv motors and larger props hauling huge mah batteries drawing the lowest possible amount of current is what I think you are looking for. My flights are pulling over 100 amps from them packs at times you want something pulling under 30 - 40 at max otherwise your experimenting time and budget will be spent on buying and charging batteries.
 

aram

New member
@LitterBug
True, that's very important, thanks for sharing the dRonin autotune diagrams, they are informative. Can you tell me about the FC, the ESCs and motors you used in that test?

@Ihichi Bolls
That's really cool!

I am bit lost, what do you mean by sticky probe pads or full on wet wired? I am using artificial neural networks for artificial intelligence, is it the same? But about the obstacle part, actually I want to replace the PID controller not the pilot at this step. So then the drone receives the way-points and follow them and also a pilot can use the flight controller to control the drone.

You are right, but currently I am looking for a fast solution with the minimum delay, do you think reducing motors KV affect this?
 

Ihichi Bolls

Well-known member
Ahh artificial neural networks. I was thinking matrix jack in neural networks which is currently only EEG stick probes to your shaved head type thing using sticky pads. Wet wired would be really like the matrix where physical connections to neural paths in the brain are connected.

I know they are close to that type tech as I have a very basic type thing where an electronic simulator (tens unit) is surgically implanted in my shoulder area with wires run under the skin up to the base of my skull to confuse pain transmission from the occipital area. So I think they should have the tech to connect directly to nerves and other pathways in the brain.
 

aram

New member
Ow, now I understand what are you talking about! Hope it works great for you. For drones, I think that would be an awesome technology, Human Computer Interface. I guess there is some kind of tech like that out there, but how mature the tech is I am not sure, definitely it needs a person with high mental capability. So if they get the signal from the brain, a reasonable one, and interpret it correctly, then the rest would an RC sending the roll, pitch, yaw and thrust to the drone. Check this https://www.ted.com/talks/tan_le_a_headset_that_reads_your_brainwaves/transcript?language=en, this is for 10 years ago, so probably there should be something much better now.