Adjustable motor expo

In this article I'll describe (a) how to set an expo curve for your motor control, and (b) how to make it adjustable in flight.

Why motor is different

OpenTX provides a mechanism for setting expo, so one might think this would work:


Src=Thr Weight(100%) Expo(25%)

In fact, this doesn't work because throttle idle position is at stick bottom, whereas expo is designed for controls where idle is stick centre. Applying expo directly would result in a strange 'S' response around the mid-throttle setting. A little trickery is needed!

Mapping throttle to an expo friendly range

The first step is map the throttle stick range [−100% to 100%] to an expo-friendly range [−100% to 0%]. We can do this a high mix with appropriate values for weight and offset.


Src=Thr Weight(+50%) NoTrim Offset(-50%) [ThrIn]

So the output of CH10 is −100% with the throttle stick at the bottom, rising to zero with the throttle stick at the top.

Applying expo and reverse mapping

We can now apply expo to the output of CH10. That's not all though - we must reverse the mapping in order to restore the normal throttle range of −100% to +100%. We can do this by applying a weight of 200% and an offset of 100%.

Thanks to the order in which mixer parameters are processed in OpenTX, both steps can be combined in a single mix. (OpenTX applies the expo, followed by weight, then offset).

All this can be done in the mix for the motor channel, using CH10 as the source. Expo is supplied via a GVAR:


Src=CH10:MapThr Weight(+200%) Offset(100%) Expo(GV1) [MotOut]

Making the expo adjustable

The final step is to make the expo adjustable, using (say) pot S1. We create a function SF1 to bind the expo GVAR to S1:


switch='ON' Action = Adjust_GV1 Source=S1

So now, the expo value (GV1) is constantly updated with the value of pot S1, which varies between −100% and +100% depending on its position.

In use

With the throttle stick in the middle position, the output will vary between −75% and +75% depending on the position of pot S1.



Variable throttle curve


  • For OpenTX 2.2+, EdgeTX 2.6+