# Smooth fades

## Introduction

*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.

## Example

As an example, we'll consider a motor which must operate in two modes.

- When SF is up, the motor is controlled by the throttle stick.
- When SF is down, the motor has a fixed value of -85%.

The change from one mode to the other must take 2 seconds, and transitions must always be smooth even if SF is randomly flipped.

## Implementation

The solution which follows is simple and robust, using one channel and four mixers.

Start by making a time-based ramp channel, controlled by SF. The transition takes 2 seconds. The use of 'slow' ensures that the ramp always varies smoothly and predictably even as SF is toggled.

CH10:Ramp

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

We can calculate the contribution of each behaviour according to where we are on the 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:

CH2:Motor

+= 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: