Adjustable motor curves

Mike Shellim 5 March 2020
Updated 22 March 2020


In this article I'm going to describe a couple of ways that you can make adjustments to your motor response, whilst flying the model. It's aimed particularly at F5J pilots. The examples shown are minimalist - bend them to your own requirements!

Adjusting the mid-power setting

A common way of driving a motor is using a 3-position switch for idle/half-power/full-power. In this case, it's often useful to be able to adjust the half power (middle) setting. We can do this by slaving the middle position of the switch to a slider or knob. In this example, SE is the motor switch, and LS is the half-power adjuster:

CH7 Motor

Src=SE Weight(100%)

Src=LS Weight(100%) Switch=SE- multiplex=REPLACE

This works fine - but only if the motor is on a switch.

Adjusting the motor expo

The second solution depends on varying the motor expo. This method works with both switched and analog motor controls. I'll assume the throttle stick (Thr) in the examples.

Let's take it step by step...

This won't work!

OpenTX provides a mechanism for varying expo, using a GVar. However, this code won't work for us:

CH7 Motor

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

This is because expo is designed for symmetric controls like aileron, elevator etc. By contrast, throttle is single-sided; applying expo would result in a vary strange 'S' response around the zero (mid-throttle) setting! A little trickery is needed.

The fix : re-mapping, applying expo, de-mapping

The first step is to re-map the throttle output so it lies in the range -100% to 0%. We'll do this in a high mix, setting weight = 50% and offset = -50%.

CH10 MapThr

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

If we apply expo to the output of CH10, then only one half of the 'S' curve is used - just what's needed! We're not quite finished though: the normal output range must be restored, by applying a weight of 200% and an offset of 100%.

Thanks to the order in which mixer parameters are processed in OpenTX, these steps can be combined in a single mix. (OpenTX applies the expo, followed by weight, then offset). This can be done conveniently in the motor channel CH7 with source=CH10:

CH7 Motor

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

Finally, we create a function SF1 to bind the expo value (GV1) to knob S1:


switch='ON' Action = Adjust_GV1 Source=S1

At mid-throttle, the motor value will be between -75 and +75 depending on the amount of expo.



Other applications:


Demo OTX file (for OpenTX 2.2 and above)