Right now, the hot performance tip for those chasing after super smooth flight is to enable RC channel filtering properly. Part of this process is to reduce the number of channels in use to 8. The reasons are covered in the Betaflight wiki article SBus FPort and RC Smoothing, but the short version is that using more than 8 channels can give Betaflight an inconsistent data rate which makes the filters work poorly, and that using only 8 channels also reduces latency.
There are many useful Betaflight features that require activating with a switch or taking up a data channel. When you only have four to work with, it becomes very limiting. One solution to keeping your features is channel packing, which can be done with a programmable radio like those on OpenTX.
Step 1: What Do You Actually Need?
The easiest way to reduce the number of channels you use is to have fewer features set up. While it’s nice to have lots of options and features available, many pilots don’t need most features or can access them a different way. Come up with a list of the features you want to have available and consider which are important. As you do, consider the following:
- Arm & Prearm: If you fly freestyle, stick arming is necessary so your tricks don’t accidentally cause a disarm mid-flight. Two-stage arming is safer, but you can use logical switches in OpenTX to replicate this behavior instead of using the Prearm mode.
- Blackbox toggle, Rate Profile Selection, and PID Adjustments: All of these can be done via the Betaflight OSD, so if you have it you don’t have to assign switches and channels anymore.
- RSSI Loopback: Loopback is only one way of getting RSSI data back to your quad. Check out this video on the 5 ways you can get RSSI to the OSD by DroneRacer101 to see if any of the others apply to your equipment.
Step 2: What Can Be Used Together?
Some options are exclusive and will never be used at the same time, so they can share a switch. For example, only one flight mode is active at a time, so Angle, Horizon, or Acro Trainer can be placed on a single channel. Another example is Pit Mode and OSD Disable. Since you’re unlikely to need the OSD turned off while in pit mode, you could use a single 3-position switch for both of these. Look at the list you’ve come up with for features and see if there are other options you use that can be combined.
One important feature for many is a switch that activates your buzzer on demand. However, you can get double-duty out of Turtle mode. Enable the CRASH_FLIP alarm flag under “Beeper Configuration”. It will sound as soon as you enter crash-flip mode, even if you haven’t armed yet. By doing this, you can skip having a separate switch just for the buzzer.
Step 3: Channel Packing
If your list of options is still too long, you can pack multiple switches into a single channel. Programmers might recognize similarity to a binary flag register. An “outer” selector splits the channel into sections, and within each section is a smaller range of values that an “inner” selector can use. For this example, I’ll pack a flight modes switch with a OSD Disable/Pit Mode switch. Each will be a 3-position switch with flight modes on SA and OSD/Pit on SB. I will send the data through Channel 6/AUX2.
In total, 2 switches with 3 positions each will require 9 (3×3) unique channel output values. Getting equal spacing across 9 positions means setting them 25 points apart. Don’t worry if this sounds confusing; it will make more sense as we go along.
First, set up the input for flight modes. These will be on inputs 6 and 7, but it’s simplest if you name them. I’ve called them “Mode” and “VxOs” (there’s a 4-character limit). Here, just take the SA and SB switches as normal inputs. (I prefer setting my input weight to -100, which reverses the switch so down is -100 and up is +100, but you don’t need to do this.)
Next, add a mixer line on channel 6 (which is AUX2 in Betaflight). You want the input to be “Mode” (I6) and set the weight to 75.
A weight of 75 is shrinking the output from -100 to +100 down to -75 to +75. This is our “outer” selector. Make sure the more critical switch is on the outer selector! (More on that below.) We’ll be treating our flight modes as follows:
- Angle mode = -75
- Horizon mode = 0
- Acro mode = +75
Now add a second mixer line for the OSD/Pit switch. Long press Enter on CH6 and choose to add another item. Leave the default behavior of “add” (+=), choose the “VxOs” (I7) input, and set the weight to 25.
Similarly, a weight of 25 shrinks the output range much further. This is our “inner” selector. We’ll be treating OSD Disable and Pit Mode like this:
- OSD disable = -25
- Normal = 0
- Pit mode = +25
The default mixer type of “add” takes care of the rest. Take a few moments to flip the switches and watch the channel monitor to confirm:
- Angle mode (-75) + OSD disable (-25) = -100
- Angle mode (-75) + Normal (0) = -75
- Angle mode (-75) + Pit mode (+25) = -50
- Horizon mode (0) + OSD disable (-25) = -25
- Horizon mode (0) + Normal (0) = 0
- Horizon mode (0) + Pit mode (+25) = +25
- Acro mode (+75) + OSD disable (-25) = +50
- Acro mode (+75) + Normal (0) = +75
- Acro mode (+75) + Pit mode (+25) = +100
You can also go into the setup again and review the Outputs page to see how the OpenTX range (-100 to +100) translates to an RC signal (1000 to 2000). The value is visible in the top bar for the currently selected channel. This is the value that you’ll be using in Betaflight. In this screen capture, CH6 is selected and has a current output value of 1884.
Over in Betaflight, the outer selector is set up exactly like you’re used to. For our example, Angle mode is active when AUX2 is in the lower third, and Horizon is active when AUX2 is in the middle third.
For the inner selector, set up three lines each. Use the “add range” button multiple times for this. In each line, you will set up an active area in the “low”, “middle”, and “high” range. These will cover short sections of the full range. Each is to go into a third-of-a-third, covering one-ninth of the total area. For our example, OSD disable goes into the 1st, 4th, and 7th; pit mode goes in the 3rd, 6th, and 9th. This makes more sense when you look at it:
Make sure you test your radio while looking at the adjustments page and get each one lined up where it needs to be.
Once all is set up, you have two 3-position switches sharing a single AUX channel!
Use caution when choosing features to pack together. Depending on your equipment, you can’t expect the AUX channel to instantly change from one value to another. In some cases when you flip a switch, there may be a transitional value in between your start and end positions! When you change your outer selector, this value range will pass through every other possibility for your inner selector. In our example above, changing flight modes could momentarily cause the OSD to shut off or the VTx to go into pit mode before it pops back to the correct position a few milliseconds later. For this reason, the more critical switch must always be the outer selector. Arming on your inner selector would be a big mistake. Even VTx Pit mode requires testing—on some transmitters, switching this on is a one-way trip until it’s power cycled. Any feature is safe to place on your outer selector, though—it will function as usual regardless of what the inner selector is doing.
Packing three or more switches into a channel is theoretically possible, but far more difficult. Setup is much more complicated and hard to maintain. Betaflight’s adjustment sliders only allow 25-point steps, so you may need the CLI to set ranges. You will need to confirm the ability of the radio/receiver to hold values steady. And any transitional effect when switching modes will get much, much worse! It’s probably best to avoid it.