OpenTX logo
Safe motor arming system

Safe motor arming system

Introduction to arming

Stick a propellor on the end of a powerful electric motor and you have the potential for some great fun... but also, sadly, for injury.

Our radios provide only basic protection against accidental operation (if you want some background, have a look at my blog post). Fortunately with OpenTX and EdgeTX we can minimise if not completely eliminate the hazard.

To this end, I'm going to describe a simple and flexible framework for designing a motor arming system, with emphasis on safety, and simplicity of operation. The method is well proven in my E-Soar Plus templates, available for OpenTX, EdgeTX and Ethos.

By the end of the article, you should be able to design and construct your own customised arming system. You'll also learn how to use the powerful 'Sticky' switch.

What is a 'safe' arming system?

Different people will have different ideas, but I'll throw out four conditions for an arming system to qualify as 'safe':

Definitions of terms

First, let's define some terms used in the text:

Implementation overview

An arming system consists of two parts:

The first part is the arming logic. From the point of view of the motor, the arming system is just a switch. When the system is 'On', the motor is armed and ready to run. 'Off' means it's disarmed and stopped.

The second part consists of two mixes, one to control the motor using the throttle, and the other keep it stopped. The arming switch is used to switch between these two mixes.

The Sticky logical switch

For the arming logic, we will use a Sticky logical switch - think of this as a programmable on/off switch, where the on- and off-actions can be gestures. Before we progress, here's a quick tutorial. If you're already familiar with Sticky switches, then skip this section.

A Sticky acts like a physical on/off switch, except that the 'on' and 'off' actions can be customised. The Sticky takes two parameters, V1 and V2. These define the on and off triggers. Each trigger may be a physical or logical switch.

LS1: Type=Sticky, V1={On trigger}, V2={Off trigger}

A simple example, where a Sticky mimics a 2-position switch:

LS1: Type=Sticky, V1=SF↓, V2=SF↑

With the example above, moving SF down flips LS1 true. Moving it up flips LS1 false. In effect, LS1 is equivalent to 'SF↓'. Not very useful!

Things get more interesting when triggers are themselves logical switches, as this allows us to flip the sticky using gestures like 'stick in corner + pull momentary'. But before we explore further, let's explore another benefit of using a sticky...

Arming without switch checks

One of the cool things about a Sticky switch is that it's off (false) by default. This means that the motor is guaranteed to be safe until the 'on' gesture is carried out - without the need for switch checks. Avoiding switch checks is a safety benefit since switch checks are easily bypassed.

To program the arming and disarming gestures, we'll make further use of logical switches.

Example 1: arming using a complex gesture

Okay, we're now ready to create our first arming switch. Let's set ourselves the following goals:

We'll use a 3-step gesture for arming, and a 1-stepper for disarming.

Arming:

  1. Throttle to idle
  2. Elevator stick back
  3. Pull momentary switch briefly

Disarming:

The screenshot below shows the logical switch scheme as they're entered in Companion.

image

Logical switch scheme

How it works:

Note that 'Thr' and 'Ele' refer to sticks (not inputs). In the mixer menu, inputs are prefixed with 'I', sticks have no prefix.

Example 2: arming via 'smart' switch

Some F5J competition pilots like to use a simple 2-position switch for arming. However, there's a problem with using a regular switch: we cannot guarantee that it's in the 'Off' position (disarmed) at switch on. That disqualifies it from being 'safe'.

However, there's a trick that we can apply so that the switch reports 'Off' at startup, regardless of the actual position. To do this, we put the physical switch behind a Sticky logical switch, with further logic for the V1 (True) parameter. Here's an example showing how 2-position SF can be made smart:

L2: Edge SF↑ [0, infinite]

L3: Sticky (L2, SF↑) -- arming switch

The key here is the word 'transition'. If SF is On at startup, it must be toggled Off-to-On in order to arm. [Credit to Jesper Frickmann for this snippet.]

Note: In practice, a condition would be added to L2 for the throttle to be at idle.

Integrating the arming switch

We've seen how to program an arming switch. In this section, we learn how to apply it to the motor channel. Two mixers are needed, one to force the motor to idle, and a second to pass control to the throttle stick when the system is armed.

In the example below, CH7 is the motor channel, and L3 is the sticky arming switch.

CH7:Motor

Source=MAX Weight (−100%)

Source=Thr Weight (+100%) Switch (L3) Multiplex=REPLACE

How it works:

Notes:

The Override special function - not!

Some pilots use the 'Channel override' special function to turn off the motor. However it has some major drawbacks:

I don't recommend this approach. (Interestingly FrSky agree, since their Ethos operating system - while similar in many ways to EdgeTX - does not provide an override function).

Download

Arming/kill switch demo

Requirements

  • For OpenTX 2.2 and above

Files

Safety first!