Smooth fades

Mike Shellim 3 April 2021

Fading is a way of switching smoothly between two different configurations. OpenTX already offers fades - but only between flight modes. So this article shows how to create a fade within a flight mode.


As an example, we'll consider a motor which must operate in two modes, under the control of switch SF.

The change from one state to the other must take 2 seconds. The transition should remain smooth regardless of the state of SF.


The solution which follows is simple and robust, using one channel and four mixers. The key is to create a time-based ramp, using a channel and a mix with the following parameters:

+= SF Weight(+50%) Offset(50%) Slow(u=1: d=1) -- fade duration

Next, we calculate the contribution of each end point according to where we are on the ramp, call this ramp%. One end point will contribute Ramp%, and the other (100% - Ramp%). Then we add the contributions, and assign the result to the motor channel. The equation is:

Motor = Thr*(100%-Ramp%) + (-85%)*Ramp%

Ramp% is the simply value of CH10, so we can implement the equation as follows:

+= Thr Weight(+100%) -- Thr ...
*= CH10:Ramp Weight(-100%) Offset(100%) -- ... *(100% — Ramp%)
+= CH10:Ramp Weight(-85%) -- -85%*Ramp%

Recall that the output of a mix = offset + source_value*weight. We make use of that in the second line to calculate  '(100% — Ramp%)'.

And that's it.

Here's a demo file:



(For OpenTX 2.2 and above)