Once a quadcopter is armed, the motors might spin up at any time. It’s important that you can quickly and consistently arm and disarm; but it’s just as important that this only happens when you want it to. To prevent mistakes and make sure you only arm and disarm deliberately, we recommend using a two-stage arming process. This article will explain what this is and how to set it up.
The default arm sequence is “stick arming”. With stick arming, you hold your throttle low and yaw fully to the right to tell the quad to arm. Stick arming has the distinct benefit of not requiring a dedicated transmitter channel, which is necessary if you don’t have any AUX switches available. But there are several problems with this approach. The biggest one is that there’s also a stick combination to disarm your quad—one you might inadvertently trigger mid-flight. Having throttle low and yaw fully to the left isn’t uncommon in acro flight moves such as the inverted yaw spin. Trying this with stick arming enabled will simply drop the quad from the sky. Another big problem is that it’s fairly easy to trigger accidentally—leaning on your transmitter, placing something on top of it, or setting it upside-down all might cause the quad to arm.
Setting an AUX channel to arm and disarm solves problems you can encounter during flight, as Betaflight disables stick arming/disarming once the ARM mode has a channel assigned to it. You generally choose a switch on your transmitter for this. Setting arm to a transmitter switch doesn’t make unintentional arming any less likely—it can actually make the problem worse if the switch can be more easily bumped into than your sticks.
Solving Unintentional Arming
In order to prevent unintentional arming, you can use a two-stage arm process. With two-stage arming, your quad will only arm when two different conditions have been met in sequence. Usually this is two different switches: you flip one switch (activating stage one) before flipping the second (activating stage two). This makes arming much safer because your arm switch won’t do anything at all unless your prearm (stage one) is already active. To arm unintentionally, you would have to accidentally trigger stage one, and then—afterward—accidentally trigger stage two.
Since Betaflight 3.2, any radio with multiple AUX channels can take advantage of two-stage arming. Betaflight’s method for this is the PREARM mode. Let’s look at how simple this is to set up.
TAKE YOUR PROPS OFF NOW. You will almost certainly arm the quad during this process! Do not rely on software-based safety measures such as USB connectivity detection.
Switch to the Modes tab, then add a range and select a channel for the ARM mode. Adjust the sliders so the desired side of the channel is highlighted. If you have your receiver powered on, you can watch the channel indicator move back and forth as you change your switch position to see if it matches what you want. Next, scroll down until you find PREARM; as of now it’s last in the list. Add a range, choose a different AUX channel, then adjust the highlight and check the position in the same way. That’s all there is to it!
Once you’ve configured an AUX channel to the PREARM mode, Betaflight’s two-stage arm logic becomes active. Your ARM switch won’t do anything unless PREARM is active before you move your ARM switch. You will now arm by activating PREARM, then activating ARM afterward. Disarming isn’t subjected to the same two-stage requirement: when you deactivate ARM, the quad will always disarm immediately. However, you’ll have to disable PERARM (and then enable it again) before Betaflight will allow you to re-arm.
Using a Programmable Radio (Taranis)
A programmable radio can be set up to give you the same behavior using its internal logic. This will work on any quad that arms via a single AUX channel, regardless of flight controller software or version—but setup is much more complicated than Betaflight’s PREARM mode. Each programmable radio is different, so we’re looking at the popular Taranis X9D with OpenTX 2.2.
TAKE YOUR PROPS OFF NOW. You will almost certainly arm the quad during this process! Even if you use a simulator to do the setup, you need to a dry run on your live quad without props before flying. Setting this up wrong could prevent your quad from disarming. This is harmless if your props are off, and extremely dangerous if they are still attached. Another prudent safety measure would be to set up and test your logic on a “tiny whoop”-style ducted micro quad before using it on anything larger.
For this guide, we will arm with SF-up, prearm with SH-down, and use AUX1 as our channel to the flight controller. We chose these two switches because they are the two on the Taranis that have only two positions, and SH automatically resets itself to down unless you hold it—good for one additional layer of safety. Arming on SF-up (pushing the stick away) also adds safety by preventing the switch accidentally bumping into the arm position when you set the radio down—it’s far more likely to bump toward you, to disarm. You can choose any switches and channels, or reverse their directions, if that’s your preference.
There are other tutorials on two-stage arming with a different process. If you follow a different tutorial such as this popular one from Joshua Bardwell, you will end up with an arm process where you prearm with one switch, arm by turning on a separate switch for a short time, and you disarm again with the first switch. The behavior we’re describing is a little different; you must already have prearm enabled when you flip arm. We’ve distinctly separated the arm and prearm functions onto their own switches—you’ll disarm with the same switch that you arm with. Our method replicates the behavior of Betaflight’s PREARM, notably by incorporating a re-arm disable. This method also works immediately instead of introducing a delay, which might be important if you realize you haven’t armed yet in the middle of the start countdown at a race!
First, we’re going to set up the logic. Head over to the Logical Switches panel, where the magic happens. There are many different actions that can be used here. You can skip down if you just want the setup; but first, here’s how it works:
- The first line to set up is the final output stage. For this, we need a “Sticky” type. A “Sticky” line turns on when one condition is true, and turns off when a different condition is true. We will bring in our “on condition” from the next line we write, so set this to L02. Since we’re arming on SF-up, we always want to be disarmed otherwise—so we set the second “off condition” parameter to SF-down.
- Our next line is a combiner. We will be using multiple lines to determine when arming is appropriate. For now, just set the type to AND and leave all the parameters blank. We’ll come back to it.
- The third line handles the physical switches. We’ll use an “Edge” line here. We want our input to be SF-up, our final-stage arm command. The second parameter should be “0.0:instant” (represented here by “0.0:<<“) which basically tells the switch to just activate when SF-up becomes true. We set the line’s AND condition to SH-down so it won’t activate unless our prearm switch is already in the right place. Finally, we only want this condition to pulse briefly, so we set its duration to 0.1s. It might seem odd to set up an “Edge” line like this, but the behavior we need is the edge detection—that the line only checks when the switch is being flipped. Set up like this, prearm must be flipped first or the line won’t activate. Other types of logical switch are constantly being evaluated, so if you held your arm switch active first and then toggled prearm afterward, the line would still become active. That does offer some safety benefit since you are still using two switches, but it isn’t true two-stage arming.
- Our 4th and 5th lines create the re-arm disable behavior, where you must set prearm back to off after arming before you can attempt to arm again. Set L04 to the “OR” type, with parameters of L01 and SH-down. This line will be true if either prearm is up, or our final arm line is true.
- This is another “Sticky” line. Our “on condition” here is our final arm output, L01, and our “off condition” is L04. This line is true once armed, until both prearm is turned off and the arm line is also off,
- Some pilots like to add an additional line to check that the throttle is off. This was pretty important on older flight controller software, but is no longer relevant. Since I don’t run anything particularly old, I prefer to leave it out. Not having this check on the radio passes it over the the flight controller, which can tell you with an OSD warning that your throttle is in an unsafe position. By all means, if you run older software, implement this additional safety measure! Add another line, this time of the “a<x” type. Set the first parameter to your throttle mix, (not your throttle input,) and the second parameter to -99. This line will become true when your throttle is all the way down. We use the mix instead of the input in case you’re doing anything unusual with your throttle mix; we want to base our logic on what the flight controller will actually see. By default on the Taranis, this is CH3—but you might have changed it.
- Finally, wrap this up by returning to the AND line, L02. Add in your switch handler, L03 as a parameter. Next, we want to include the re-arm disable. Since this line becomes true when re-arm is disabled, we need to use its inverse: set the next parameter to !L05. Lastly, if you added the throttle check, place the line for that (L06) into the AND condition parameter.
- L01: Sticky, L02, SF-down
- L02: AND, L03, !L05, L06 (optional)
- L03: Edge, SF-up, 0:instant, SH-down, 0.1s
- L04: OR, L01, SH-down
- L05: Sticky, L01, L04
- L06 (optional): a<x, CH3, -99
However, if you use SH-down for your prearm, you really don’t need the arm-disable line—SH automatically toggles itself off as soon as you let it go. If you don’t need the throttle check either, you can set up 2-stage arming much more quickly with just these two lines:
- L01: Sticky, L02, SF-down
- L02: Edge, SF-up, 0:instant, SH-down
Next, go to the Mixer panel and find channel 5. Channel 5 on the Taranis is AUX1 in Betaflight. Create a new mix here. You can name it if you want, but all that’s required is to set the Source to your “final output” logical switch—we used L01. (There’s no need to set up multiple mix lines with MAX that are separately switch-triggered.)
The last step is to set up basic switch arming in your flight controller. As above, in Betaflight, that means choosing AUX1 for the ARM mode and setting its activation endpoints to cover the right side. If you previously had PREARM set up, shut this off now by clicking the “X” on the far right.
Check Your Work!
Remember, this is arming we’re working with here; arguably the most critical input you will make to your quad. Before you do a live test (no props!), it’s worthwhile to check your work on the radio. Do this without even powering on your quad by pressing Page until you reach the Channels Monitor. Find the channel for arming—if you’ve labeled it, it will show up by name. If you have set things up correctly, it should read -100 under normal circumstances. When you complete your arm sequence, it should jump up to 100, and back down as soon as you disarm. Make sure this is what it does, and especially that you can get back to -100 when you want to.
Which Method is Better?
Whether you use one method or another depends on your circumstances, equipment, and preferences. There are some other subtle differences, but the major reasons to choose one over the other often are:
Using Betaflight’s PREARM:
- Very simple setup
- Requires 2 AUX channels
- Requires Betaflight 3.2 or higher
Using radio logic:
- Works on almost any quad regardless of flight controller software
- Doesn’t need reconfigured each time you reflash the flight controller
- Can be customized with additional logic
- Complicated setup
- Requires only one AUX channel on radio and receiver
- Requires a programmable radio