Setting Mid throttle in 3.4. Where is the Mid Throttle Parameter?

I have powerful quad and I need to set mid-throttle. In 3.4 I can no longer find the Mid Throttle parameter/slider. I am aware of the fact that it is supposed to set this automatically but it is not working well for me so I want to set this manually. Have we lost this ability or am I just not seeing the parameter as I cannot find it.

It is also scaled differently – so I assume .29 would equate to 290 on the old scale.

Anyone hit this issue yet?

Hey Marc,

THR_MID was replaced in 2.4 by MOT_THST_HOVER (0.2-0.8 is allowed range of values) - I believe you are correct in your assertion that 0.29 would have been 290 previously. See here for more details:

The learning can be switched off. See the MOT_HOVER_LEARN parameter for that one.

Cheers, Paul

Thanks for that nugget of info Paul.

Although the stated values say 0.2 to 0.8 it may happen that on high powered vehicles these aren’t appropriate. In one of my racing quads the auto-tune gets to 0,13 :slight_smile:

To make life easier to the calibration routine try to make a “calm” flight on AltHold

I think you’ll find that the MOT_THST_HOVER value is about 10% lower than you’d expect based on the older THR_MID. So if THR_MID was 290 you’ll likely find that MOT_THST_HOVER more like 0.19. The reason is that THR_MID used a range that included the deadzone at the bottom of the throttle range (i.e. THR_MIN) while MOT_THST_HOVER does not.

Thanks for the reports and replies above!

1 Like

Randy I measured the hovering point at .29 in under the current firmware (3.4) so I can still apply this to the mid throttle parameter, right? Do I have to lower this by 10%. This is actually a brand new machine that never flew with prior firmware. I was just expecting a number between 0-1000 and so I assumed this has just been re-scaled. I assume the conversion factor would apply if the a 290 hover point had come from firmware prior to 3.4.

This topic raises an improvement request for next releases : go back to a logical intuitive scale expressed in PWM microseconds (from 1000 to 2000). Why making things more complicated where you must actually compute the parameter value. By the way, to compute it right in the current version ; do we have to substract 10% or the value 0,1 ?

I can say that it does a good job of automatically setting the new mid-throttle parameter. However, my throttle stick in stabilize is still at the one third mark to hover and not the half way mark. So when I go from Loiter or Alt Hold to stabilize, it still shoots up, as I need to have the throttle at the the mid point for those modes to maintain a stable hover.

I am not understanding how this works now. The main point of mid throttle setting is surely so that when you leave alt-hold or loiter and go to stabilize you do not have to make a quick adjustment. This is still happening even with the MOT_THST_HOVER set to the correct setting (about 0.289 in my case).

Am I missing something here? (Probably!).

MOT_THST_HOVER LEARN works wery well…you do not have to calculate nothing,just set to 2…

Of course it works well, that is not my point. My point is that it is not anymore the direct hover PWM value (like it was in previous releases, which was much easier). That’s all I’m saying.

I have it set to 2. It has indeed set my mid-throttle parameter correctly.

My copter still shoots up in stabilize. Previously, in stabilize when I had mid throttle set my throttle stick was at the halfway mark after I had done this. So what is the point of setting mid-throttle if my stabilize throttle setting is not at mid-throttle. When I go from alt hold to stabilize I need to be quick on the throttle adjustment. This does not seem correct.

Is my copter’s behavior different than yours under 3.4.1?

Mine is at 3.4.2… but in 3.4.1 it was the same…and yes,after i let Pix to hoover learn my throtle is at middle…
What do you mean(i am not native english) when u say my copter shoots up …?
How do you start your flights?Must be in Stabilize,and when you copter leaves the ground where is your throttle stick(should be at half)?
Also when you are in AltHold,if you move your stick just a little out of center,when you turn it off,copter will adjust throttle acording to your stick…in other words,if you lower your throttle during althhold copter will drop when u turn it off…

check my tuning thread here(its long…very long),maybe u can find some information here

Thanks – that is the issue in stabilize my throttle is not half way. I clearly have to look at this again as my experience is not matched by others. I am sure I will figure it out.

Nice custom copter BTW.

1 Like

Do you have any dataflash logs with your problem?all developers will ask the same…i think you should do ESC calibration again (with OneShot off) and be sure u did it properly…

Hi all,

A bit of clarification, or more to the point a bunch of confusion and an explanation of why this way is MUCH easier to understand.

Before we made this change we had the output pwm values. They were generally somewhere between 1000 to 2000 and 1100 and 1900. So a difference of between 1000 and 800.
We scaled this range to 0 to 1000. Then we had minimum throttle of something like 130. Hover throttle was then say 400.

Ok, soooooo what was the pwm output a hover throttle. Lets assume the normal pwm range of 1100 to 1900. For now lets ignore one_shot that can have 125 to 250 us or can buss that could have a 16 bit int or a float.
So minimum throttle was 1100 + 800 *130/1000.
Hover throttle was 1100 + 800 *400/1000. (or something like this). The throttle was represented in 3 different ways and scales through out the code.
So no, it was not simple or directly related to the pwm value and the pwm range is almost never 1000.

So now the throttle value is 0 to 1 where 0 is minimum throttle and 1 is maximum throttle. If you look in your log and you see your throttle value (CTUN_ThO) is set to 0.31 at hover you just set your hover throttle to 0.31 and you are good to go. If you have set your MOT_ parameters correctly the hover throttle won’t change much from a full battery to an empty battery.

So we have a couple of throttle settings that you should probably understand here. We can now set MOT_PWM_MIN and MOT_PWM_MAX. This lets you choose what the pwm range is independent to the range on your radio. If you leave them as zero then it uses the radio values.

MOT_SPIN_ARM, MOT_SPIN_MIN and MOT_SPIN_MAX define the armed pwm output, minimum throttle output and maximum output throttle.

spin when armed pwm = MOT_PWM_MIN + (MOT_PWM_MAX-MOT_PWM_MIN )*MOT_SPIN_ARM
minimum throttle pwm = MOT_PWM_MIN + (MOT_PWM_MAX-MOT_PWM_MIN )*MOT_SPIN_MIN
maximum throttle pwm = MOT_PWM_MIN + (MOT_PWM_MAX-MOT_PWM_MIN )*MOT_SPIN_MIN

MOT_THST_HOVER defines the hover throttle using the formulae below.
Hover throttle pwm = minimum throttle pwm + (maximum throttle pwm-minimum throttle pwm) * MOT_THST_HOVER

The new representation is very simple and has simplified the code a great deal. It has made it much easier to understand and ensure it is bug free. It has also cut down the code significantly and made it quicker.

A few notes on hover throttle:
it has a minimum of 0.125 and maximum of 0.6875. This is the minimum and maximum values we can use a smooth expo curve to put the hover throttle at mid stick.

Add a dataflash log so we can see what is happening and I am sure we can fix your issue.


Thanks for the clear explanation Leonard. Code simplification is always good. I will recalibrate my radio and ESCs again and see if this persists. Than I will post my data flash logs. It seems I am an outlier.

Hi Leonard,
Thx for explaining the difference between how it was and now how it is. I still hear two different versions between what you’re saying and what Randy is saying.
If I understand your explanation right, before to set Throttle_MID we had something like Hover throttle =1100 + 800 *(throttle value read in logs, e.g. 450)/1000. And now we have the same formula (Hover throttle pwm = minimum throttle pwm + (maximum throttle pwm-minimum throttle pwm) * MOT_THST_HOVER) but the log variable name has changed (to CTUN_ThO).

However Randy says we have to lower by 10% the logged hover throttle (he gave the example that if you had 290 in the Throttle log in previous version, you should use 0,19 as the new mid THST_HOVER value).

Sorry, but this is still very confused. Before it was so simple : you’d open your hover flight log, you’d just read the throttle value, for example 55 and you’d configure MID_THROTTLE to 550 and you’d be good to go. Now I have to calculate a complex formula, maybe removing 10% ? (tbc)

To cut it short, I do not think we need to understand behind the scenes developer’s logic or explanations why this or that has changed in the code. Why not just show us step by step with screenshots, what log should be opened (Throttle ?), what variable(s) should be read in hover and to write to which parameter(s) ?


1 Like

Hello Hugues

You just need to enable hover learning by setting MOT_THST_HOVER_LEARN to 2.
Randy was saying that the new scale is about 10% smaller than the previous THR_MID setting.

I think it is always nice and welcome when devs do an enrichment explanation like this one. It helps people debug their own issues and to help each other. Thats how good open source projects are.

Your copter shooting up with your throttle stick at middle is an issue, if you provide the logs I’m pretty sure we can help.



I was the one whose copter is shooting up. Since I am an outlier here it must be related to my setup. I am going to re-do my calibrations and do more test flights – which I will do when I finish a few other setup issues on this bird.


OK Nice,

Hope you find anything. If not, just let us know!