MIXING_GAIN: allow lower minimum please [SOLVED]

I’ve build a 2 meter flying wing with straight leading edge commonly referred to as a plank. So far it’s been flying great however the pitch control is very sensitive and roll is very slow and sluggish.

It is very common to give pitch authority a 25-35% mixing value (in our case MIXING_GAIN value), and then scaling roll to take up the rest of the throws (in the case of ardupilot we can do this with the MIXING_OFFSET parameter).

The problem I’m running into, is that ardupilot ignores and dissallows the use of a MIXING_GAIN value below 0.5. Any value input below 0.5 throws an out of range error when attempting to set it, and is ignored by ardupilot.
Is there a good reason for this, and I’d like to propose we lower this value to be allowed to be as low as 0.2

Elevon plane documentation.

Plank type flying wings often run control surfaces along the whole length of the wingspan. This increases efficiency when the control surfaces are active as opposed to only having an elevon along part of the wing, the draw back is that roll rates decrease, and pitch becomes a lot more sensitive. Usually the above described solution is applied. I could change the mixes to emulate this on my radio but I really think this needs to be handled on the ardupilot internally.

I’m very open to other solutions or ways to make this work.

Thanks for your time!

You can safely ignore Mission Planner’s warnings about default ranges if you are confident that you want to exceed the range.

A brief look through the source code doesn’t turn up any constraints on the mixing gain parameter in question. Are you certain that out of range values are ignored once set?

Thanks Yuri,

Yes I’m confident the values set are ignored. I set 0.7 MIXING_GAIN for example and I can I observe large pitch throws. I set 0.2 MIXING_GAIN, and I see the large throws are still being used. I set 0.5, and now the throws reduce as I would expect for that value.

After a reboot, the 0.2 MIXING_GAIN value is overwritten back to 0.5

I just tested in SITL, Plane 4.3.4 stable.

MIXING_GAIN initially defaulted to 0.5.
I set 0.2, acknowledged the warning, and then wrote the parameter.
Rebooted. 0.2 remains set.

You must first click yes to this warning:

And then proceed to Write Params as usual.

1 Like

Thank you Yuri. I started making a little video to illustrate my exacting steps. During this I made an observation that after clicking YES to the prompt in your screenshot, WRITE PARAMS must be clicked a SECOND time!

Now everything is working. Thank you!!

1 Like


The warning pops up when the text entry field loses focus. So when you click “Write Params,” it only triggers the warning and no other action.

I typically use the “Tab” key after making a text entry, which avoids this pitfall and then shows the new, unwritten value in green. So long as there are green highlighted fields on my screen, I know I haven’t committed to writing them yet.

Folks often wonder about this “Out of range” warning. In some cases, parameters are indeed constrained to the displayed range (usually to avoid things like divide-by-zero errors or other critical issues). In most cases, you can set damn near anything, even if it’s wildly stupid, so long as you acknowledge the warning.

In this case, I think the warning is appropriate, since you are limiting control throw to less than full (without other action), which should likely be reason for pause.

1 Like