Inputs
Introduction

Inputs are great for easy adjustment of control surface travels. In this article I'll explain how to use them.
What are inputs?
Inputs are a type of source. They differ from raw sources (sticks, sliders etc.) in that they carry a weight and expo. While you can specify weight and expo in mixes, inputs are the preferred method for the following reasons:
- Using inputs allows trims to work consistently, regardless of weight and expo.
- On models with dual aileron servos, inputs offer a single point of adjustment for rates and expo.
In short, inputs should always be used where rate and expo are routinely adjusted, such as with aileron, rudder and elevator controls.
Single point of adjustment
Consider a setup for dual ailerons on, say, CH1 and CH2. Now, suppose we want to set the rate to, say, 86%. First, here's how to do it the 'wrong' way, using the sticks as the sources of the mixers:

Although this will work, the weight has to be entered twice. Good practice dictates that duplicates should always be avoided if possible, to minimise the chance of errors.
We can solve this by using an aileron input as the source to the mixers and setting the mixer weight to 100%. Note that inputs are distinguished by having a prefix of 'I' instead of the stick icon.


So now, to adjust the aileron rate, we only have to edit one item!
How trims are handled
The Input editor includes a Trim option. The default is 'On' as in the screenshot below:

If Trim is set to 'On', then the full +/-25% of trim travel is included in the output, regardless of the input weight. If trim is set to 'Off', then the associated trim is ignored.
Where inputs are not used
Inputs aren't necessary for controls which do not require rates or expo. These include
- throttle
- crow brakes
- camber adjustment
- air brakes
You can use the regular sources for these. It's good practice to delete any inputs which are not used.
Creating and managing inputs
Inputs are managed in the Inputs menu. There are 32 inputs available, each identified by a label of the form [I]xxx. In order to do anything useful, an input must have one or more lines specifying source, weight, and diff/expo.
- Source is the raw control (stick, knob etc.) on which the input is based.
- Weight is the rate as a percentage of the raw control.
Here's a screenshot of the Inputs menu:

And here are screenshots of the editor:


The fields are as follows:
- Input name: Descriptive name for the input
- Source: The stick on which the input is based
- Weight: The weight to apply
- Offset: Offset to apply
- Curve: Diff, expo or custom curve to apply to the input (note: do not use for aileron differential)
- Modes: Flight modes condition
- Switch: Switch condition
- Side: Side condition (activates for only one side of stick)
- Trim: Include trim
The Switch, Flight mode and Side conditions must all be satisfied, otherwise the input line will be ignored.
Order of processing
The order of processing is source-value > curve > weight > offset > trim
System generated inputs
When you create a new model, OpenTx automatically sets up four inputs [I]Ail, [I]Ele, [I]Thr, [I]Rud. The sources of these inputs are the corresponding sticks.

The order in which the inputs appear is not critical, as you will choose them by name.
OpenTx also creates four mixers with these inputs as sources. Here's a screenshot of the Mixers menu:

Using inputs to create dual and triple rates
An Input may have more than one line, each with its own switch and/or flight mode conditions. You can use this to implement dual/triple rates, or to set rates automatically according to the active flight mode.
Here's an example of triple rates for aileron, using switch SB:

How it works:
- OpenTx starts at the top line. It checks the actual position of SB.
- If there's a match (SB is up), that rate becomes active.
- If there's no match, advances to the next line and repeats the test.
- And so on, until a match is found or the list is exhausted.
If the end of the list is reached without finding a match, the input will freeze. This opens the door to a critical failure unless precautions are followed! We'll look at this in more detail in the next section.
The 'CATCHALL' line
In this section, I'll show how a simple error can have serious consequences, and how guard against it.
So let's repeat the example in the screenshot above. This time, let's imagine that I made an error in the last line; instead of typing SB, I typed 'SA' by mistake:
I1:Ail
Ail Weight(+33%) Switch(SB↑)
Ail Weight(+66%) Switch(SB-)
Ail Weight(+100%) Switch(SA↓) -- mistake: SA↓ instead of SB↓
The intention is to activate the last line when SB is down. However, because of my 'error', the last line will only be activated if SB is down and SA is down. If SB is down and SA is up, no line will be matched, and the aileron will freeze! Why? Because, as we saw earlier, if the end of the list is reached without a match, the input will not function at all!
So whether or not you crash will depend on the position of SA.
This is where a 'catchall' line comes into play. A 'catchall' line is simply a line with no conditions, in other words, it will always be matched. By placing it as the last line in the group, we can guarantee a match before the end of the list is reached. The rate my not be quite what you expect, but at least the aileron will continue to function!

How to make a CATCHALL line
To create a catchall line:
- Add an input line at the end of the list
- Set the 'switch' field blank
- Tick all flight modes
- Set the line name to 'Catchall' to indicate its function
Using a catchall as a default
A catchall line can also function as a default setting to simplify the input list. So in the example below, SB-up corresponds to low rate, all other positions fall through to the catchall line for a 50% rate.
I1:Ail
Ail Weight(+33%) Switch(SB↑)
Ail Weight(+50%)
