Motor Thrust Limited Too Much

I have been doing some DIY thrust testing for my 2.5" prop quadcopter (Arducopter 4.0.3) with a kitchen scale. Basically I have the quad mounted upside down, so the thrust goes down “into” the scale. Seems to work well enough.

Anyway, I have been using the Mavlink Motor Test functionality to spin up my motors to a given PWM. This is basically the same as the Motor Test sliders on the tab in QGC or Mission Planner.

My problem is that the thrust I get out of the Motor Test is much higher than the thrust I actually get from the throttle during “normal” operation. Example: on 3s, with Motor Test, my max thrust is 370 g. But when I arm the copter and throttle up all the way with RC transmitter, I max out at 210 g. This is a big difference!

The point at which the throttle loop maxes out is actually somewhere a little north of mid-throttle, about 1600 PWM. In other words, my PWM vs achieved thrust looks the same for 1000 - 1600 PWM for either method. It’s just that the Motor Test method yields an increasing thrust all the way to 2000 PWM (370 g) whereas the throttle method stays at 210 g all the way to 2000 PWM.

So, what’s limiting thrust in the Arducopter throttle loop? Relevant (maybe?) parameters:
MOT_PWM_MAX = 2000
MOT_PWM_MIN = 1000
MOT_PWM_TYPE = Dshot600
MOT_SPIN_ARM = 0.1
MOT_SPIN_MIN = 0.15
MOT_SPIN_MAX = 1.0
MOT_THST_EXPO = 0.25 (I’ve tried changing this from 0 to 1, with no effect on my problem)
MOT_THST_HOVER = 0.8 (I’ve tried changing this from 0 to 1, with no effect on my problem)
SERVOn_MAX = 2000, for n = 1-4 (my motor functions)
SERVOn_MIN = 1000
SERVOn_TRIM = 1000 (tried 1500 too)

Couple questions.

If you look at the bars in the Radio Calibration screen - does throttle go all the way from the min to max. Also, what mode are you in during the transmitter throttle test.

Yes, throttle uses the full range. The raw RC command goes from 982 - 2005.

Mode is Stabilize.

Can you send a .bin log of one of your transmitter throttle tests?

I see the exact same thing… I wonder how many people have actually done thrust tests like this?
I think it’s normal for ardu. If not, I’d love to figure out what is wrong.

I know it needs headroom for control and for yaw, etc. So you won’t get the full motor output. But like you, I have a huge dead band at the top of my throttle, once it passes about 1600 PWM. So I get the fact it needs that headroom. But it should scale the throttle, so I don’t have a bunch of useless space at the top of the stick throw.

Mot_yaw_headroom is another one that affects this, not on your list above.

Use Motor Test at 100% ?

MOT_YAW_HEADROOM only changes the max thrust by 10 g or so.

Yes, for the Motor Test I get 370 g at 100% for All motors.

I saved off a couple of logs of my test with the RC transmitter stepping throttle.

Log 1: step throttle command from 1000 - 2000 PWM, with ~200 PWM steps and pausing for a few seconds on each one. The Servo output PWMs are very suspicious - I would have thought all motors would be more or less even, but 1 & 2 are much higher than 3 & 4, by 400 PWM or more. Furthermore, Servo output 4 goes way down as I hit about 1600 PWM. Also at this point, Roll goes from ~0 to -80! The physical quad was immobile during the whole test. This makes me wonder if I have an AHRS tuning problem??

Log 2: I take it up to about 1500 PWM throttle, where my measured thrust tops out at ~210 g. I see a similar difference with the Servo output PWMs - wildly different between motors. The Roll looks ok though, holding around 0.

Parameters here.

If it’s a tuning issue, what params should I be looking to change? Also note that the lack of thrust isn’t just a test issue - I tried to fly this quad and couldn’t get off the ground. (AUW is around 300 g)

Is this flying? Or upside down on the scales?
Ardupilot wont work “properly” unless it actually gets to fly.

Here’s what I was seeing.
You can see where the motors stop trying to give more power. about 1800pwm. But you can see I have room to raise the throttle above that… So the motors hit their limit, and I have 20% of dead space at the top if the throw.

I believe that is just the headroom it needs for control… But I should still get my full range of throttle.

And like xfacta says, if your copter is upside down, it’s trying to flip itself back over, so you will get strange readings. It will be giving some motors more power than others as it tries to right itself.

If you have run through the motor tests and verified that all of them are working (and in the right order w/ right propeller) - the propulsion system should be fine. Any irregularities you see while armed is because the flight modes assume that the aircraft is in flight - so strapping it to the ground causes some irregularities. Once you have gone through all the calibrations, done all the ground tests outlined in the wiki, and double check your motor/prop directions - I would continue to a flight (in stabilize mode). If you are really worried it is going to flip over, you might want to add a kill switch to your transmitter and/or try taking off from a padded area.

Good Luck!

I have AHRS_ORIENTATION and the accelerometers calibrated “correctly” for the upside-down position; shouldn’t that be enough to stop Arducopter from trying to flip over?

Hmmm, maybe. I still think that ArduCopter assumes that it is in flight - so it is going to do some weird stuff on the ground. Can you set it up for normal flight and send a .bin of a takeoff attempt? That way we can analyze that log to see whats up.

I’ve finally figured out this problem. Like most head-scratchers (in my opinion) there were actually two issues going on:

  1. First of all, running the throttle loop while mounted to the motor test stand is definitely outside of Arducopter’s design parameters. The attitude estimate goes kind of crazy, and this effects what commands are sent to the motors and therefore measured thrust. I can imagine that the attitude filters get confused when the quad is being commanded to throttle up, but no actual motion is detected.

  2. The bigger issue, though, is that I had a configuration problem. Mine is an H frame quad, so I set FRAME_TYPE to H. Despite staring at the Motor Setup page 100 times, I neglected to notice until very late in the game that H frames are props-out, not props-in as with the X frame!

So, I thought I couldn’t take off because my thrust was being limited, since that’s what was observed on the thrust stand with the throttle loop engaged. But, I actually wasn’t taking off because my motor direction was wrong. And the decreased thrust on the thrust stand is just an artifact of running Arducopter outside of its design limits.

Thanks all who responded for your patience and suggestions!