Ardupilot Arming Philosophy/Ideas

I accidentally hijacked another thread here - Copter falls from sky after a couple minutes - #7 by xfacta sorry @xaidin ! when asking about arming strategy, specifically when using ELRS’s CH5 arm requirement. A couple others were weighing in on arming techniques/tips and I wanted to continue the conversation in its own thread.

Up until I started using ELRS, I would typically follow the default Rudder Arm procedure in Arducopter, but I had gone to a straight switch arm on CH5 when I started using ELRS with EdgeTX. I understand this could be dangerous from a midair disarm on a copter, but luckily I haven’t had that happen to me yet. I’m mostly focusing on flying vehicles in this thread since that’s what I use, though other tips are welcome of course. I’m also interested in the use of RCx_Option = 165 on Copters and Planes and how it is intended to behave.

Thanks for your comments in the other thread earlier, @Yuri_Rage @Allister @xfacta
If you’re interested in elaborating more here, please do.

@xfacta - can you explain more on your Throttle_Cut switch? Do you mean that you have a switch set to pull the throttle to the failsafe value and trigger the corresponding action? I guess I’ve never understood why one would want a Throttle Failsafe in addition to the normal TX failsafe behavior.

1 Like

My first comment would be pick one system and stick to it. Or if you change, change it on all your flying things. Doesn’t matter what, but having different disarm switches or setups can be a recipe for disaster.

Second: What works for one person, may not be the best solution for the next person. Even on the same drone/radio, etc. Again, pick something that works for you.

And on with the show…

I’m a big fan of switch arming. I like the speed and the positive nature of it. I know where the switch is. And from an FPV background, I want a quick disarm when poop hits the fan. I get it, that I don’t always need to be so quick on the draw, especially with planes and more industrial platforms, but again, it’s what I’m used to.

I’ve started using arm/motorstop (165) on my quads, and with the students. In the high position the quad arms, and in the low position the motors stop. If you accidentally move the switch to low in flight you can go back to arm and (if you were fast enough and had enough altitude) the motors will restart and you’re back in business. When I land I move the switch to low, the props stop, and in a few seconds of sitting stable on the ground it will disarm. Usually for me, less time than it takes me to put down my radio and walk over to the drone. The only irritating thing is when the drone is powered up, I will continually get a pre-arm error that the motor stop is active. To clear this error I will move the switch to the middle position to make sure there are no other pre-arm errors (and to make Yaapu quiet). In flight, if the switch goes to the middle position, nothing will happen. So far, I don’t mind it. The extra squawking from the radio before start is a pain, but that’s what volume dials are for. (I also use a volume dial that mutes my radio before I arm, but goes to full volume once the switch is in the high position)

I also keep stick arming active so if I have people flying that are all over the place with their fingers when they fly, or I feel there is a safety case to use it, the option is there for me.

1 Like

Thanks Allister - I feel like I’m used to the switch arming too - I use it for throttle cut on non FC planes as well, so the muscle memory is definitely enforced across the fleet to some extent. But this is somewhat of a personalized topic too, it’s true.

You mentioned you leave stick arming active - that’s so you can just disable your switch arm temporarily before handing the TX off to someone who’s a bit all over the place with their fingers?

It’s tricky - I want the students to remember to flip the motor kill switch in case of an emergency (or they just tipped the quad over on the ground), but then they end up accidentally killing motors in the air and cause damage since they’re often not fast/high enough to “unkill” the motors in mid-air. Maybe it would be good to have the motor kill present for the first couple flights and then remove it later on once the aircraft is flying well, after which we just use the rudder arm/disarm (but likely using the logic Yuri mentioned earlier since we mostly all fly ELRS)

Since many of my students are new to all this, I think it would be good to show them a couple different ways to do it and let them choose, like you mentioned. They might just end up asking me which way I do it, but then they at least know what’s possible.

I strongly advised against switch arming in favor of stick arming because of the multitude of crashes we see here due to unintentional disarming in flight when switch arming is employed. It’s literally the first thing I look for when analyzing a crash log, and it’s often the smoking gun (the other most common reason being power loss to the autopilot, often due to misconfigured battery monitoring or poor battery health).

To avoid such looming catastrophe on my own craft (not that I don’t trust myself, but more that I simply don’t want to even think of accidentally bumping a switch that could cause irreparable damage), I use stick arming almost exclusively on air vehicles, and I employ a logical switch algorithm to my EdgeTX transmitters to toggle an otherwise unused ExpressLRS Ch5, such that I get all the benefits of ELRS while mitigating the risk involved with switch arming.

I do understand the inherent risk in NOT having an immediate disarm/emergency stop feature on my transmitter, and I do typically employ one on the same switch that I use for Rover arm/disarm whenever I test a new airborne build. That switch tends to go otherwise unused, such that I keep some semblance of muscle memory tied to the integrity of that specific switch. But I still shy away from keeping arm/disarm or emergency stop on a switch after initial testing.

It all comes down to risk management, and the risk that I take by eliminating instantaneous motor stop has nearly bitten me a time or two when my bravado exceeded my ability at times, resulting in crashes where I had to await the stick disarming delay and/or rely on the firmware to detect a no-longer-flying condition to spin the motors down from a saturated high (screaming) state after ground impact.

All of that said, @xfacta’s discussion of using a throttle cut switch has me inclined to employ that strategy going forward. There’s good info on the wiki page - look for the section discussing FS_THR_VALUE. Seems this keeps all desired functionality intact while avoiding an instant airborne kill. I’ll likely tie ELRS Ch5 to this switch as well, while keeping RC5_OPTION unused or tied to my LED scripts as desired.

1 Like

Yea, I prefer stick arming too.
But have to admit recently added a kill switch function on a push button. So need to keep pressing it for 4 seconds I believe until permanently disarm occurs. - But motors stop immediately when button is pushed but will start again if released within 4 seconds.

@Allister
Certainly agree with those first two points.

3 Likes

Thanks @Yuri_Rage. I can see your perspective here as well. To see if I understand the Throttle failsafe @xfacta mentioned, let me try to imagine how this would work.

The TX is setup with whatever RF system - not relevant here.
Motor kill switch may or may not be used - not relevant here.
Stick(rudder arming) is active and is used.
A discrete switch is set, which when flipped pulls the throttle signal below FS_THR_VALUE, engaging the RC failsafe (behavior). (In your example, flipping this switch would also pull channel5 low - “disarming” the ELRS RX.)

Is that the idea?

@Karl_Schoelpple I hadn’t thought about this idea with a lot of the modern TXs using buttons - I guess you would be using a momentary non-latching button in your setup?

Yep, correct.
In my case button could also be setup as a latching style but it this stage prefer it as no-latching.

Thanks makes sense. Thanks!

You’ve got the gist of it. My one concern is that such a throttle cut may not kill the motors in a crashed condition very quickly. AP may try to RTL first, before sensing the lack of control response.

I also like @Karl_Schoelpple’s idea of using a momentary switch. I have one that is rarely used on my Copter builds, so I could easily incorporate that into my scheme.

@Allister’s point stands that we should be reticent to make such changes that could disrupt habit patterns. So, I’ll mull all of this over a bit before committing to anything new.

2 Likes

My throttle cut switch on Taranis X9D and Radiomaster TX16S is on switch SF - a long 2 way switch at far left near the slider.
Obviously OpenTX and EdgeTX :slight_smile:

The switch is set to override throttle to -110%
OpenTx and EdgeTX use a range of -100% to +100% for the uninitiated.

And an announcement.

We also have switch warnings set up, so the default (throttle is cut) is in play whenever you power up the radio. You CAN NOT do anything further and the radio wont become ready until all switches are in the default positions (away from the human).

Not all transmitters will have these features. Some plane-oriented transmitters might already have a built in throttle cut function somewhere.

2 Likes

That’s a very interesting idea. I’m going to think more how I could use something like that.

Yup, I agree. That’s part of why I started using Arm/MotorStop on the switch. I feel it’s a middle ground on the situation.

I’ve also considered finding a guarded switch for arming. I’ve seen them on Taranis radios so I’m sure it wouldn’t be a real big deal to install one on the TX16S.

2 Likes

Apart from the throttle cut and an emergency stop switch, we really only changed to using an arm switch (with throttle to minimum) so we didnt have to use the yaw stick.
Some copters are a bit more sensitive than others to any amount of accidental yaw during takeoff.

Thanks to everyone for all the ideas and tips shared. I appreciate it!

I’m still challenged by this. I have been using 165 Arm/EStop on a 3 position switch the way @Allister does it, but this doesn’t align to how ELRS works. I think this is important because in ELRS when IsArmed is enabled, AUX1 (Channel 5) is sent with every packet going out, this is the most reliable way to be able to tell your model to disarm/disarm and these safeguards are applied:

  • All “Button” inputs are disabled (on the hardware - e.g. bind buttons)
  • All “Joystick” (5-way buttons) are disabled (e.g. on your TX module)
  • Bump to Share is disabled
  • VTX Admin is disabled
  • Integrated VTX channel change is disabled
  • Dynamic Power is fully enabled

Now I’ve started playing with HDZero, I am wary of stick arming because it also uses sticks for the VTX menu, so I’d like to have a way to use ELRS as designed and Ardupilot as designed - but so far I can’t figure how out to get both.

I’m assuming you’re using and Edge TX radio so why not program that one switch on the radio for two different channels? For example when you move the 3-pos switch it activates channel 5 high and low to keep ELRS happy, but it also activates Channel 7 Low/mid/high to trigger ArduPilot arming (165). I’m just thinking you may need to put a curve on the channel 5 output to define what it does in the mid position (I’d suggest stay armed since that’s just triggering the TX module, not the drone). On the ardupilot side just leave channel 5 blank. Assign arming to channel 7 or whatever you want. Downside is you burn two channels.

Or buy a CRSF module. :laughing:

1 Like

I’ve tried Crossfire, I don’t like it.

I’ve also tried the 2 channel approach. It seems to work but it doesn’t deliver what ELRS wants.

The main thing that is broken is that you can arm the vehicle not using the radio, for example Mission Planner/QGC via a SiK telemetry radio, LTE to a companion computer etc. So the vehicle could be armed and ELRS doesn’t know about it.

What I really need is a telemetry variable back to the vehicle via CrossFire that tells me if it’s armed or not. I just checked there doesn’t seem to be one (unless I can somehow parse out the “*” on the end of the flight mode.

Not sure if this is useful for this conversation but:
I have channel 5 in the radio programmed to throttle trim up switch. It will keep ON from first switch. And have RC5_OPTION, 0 in ardupilot. That’s just to comply with ELRS recommendantions of having ELRS in armed state in channel 5.

Using default stick arming/desarming ardupilot defaults. That’s fine as I’m never in a hurry at the time of arming.

Plus: Programmed Channel 7 to perform only when BOTH tactile buttons SA and SD are pressed together (TX12 radio). And I have RC7_OPTION, 81 (Disarm). This is my emergency disarm and unlikely to be triggered by accident.

1 Like

I use switch arming on everything but I have also replaced the arming switch with one that has a physical lock out so you need to lift it before it can move, so there is no way it can be moved unintentionally.
Screenshot from 2023-12-11 03-34-11

https://www.aliexpress.com/item/1005001787354459.html

4 Likes