Pixhawk Throttle kill or remote instant disarm switch

Hi there,
I appologise if this is answered somewhere online (as it seems an obvious question to me). If it is I couldn’t find an answer from searching/googling. Basically, I am looking for a way to have some mechanism to have the Pixhawk immediately kill output to ESC’s based on some triggered input from the receiver (i.e. a throttle kill switch).

I have checked the standard arming/disarming page:

copter.ardupilot.com/wiki/arming … the_motors

and the current graceful mechanism of disarming discribed therin is fine with a good landing. However, in the case of a crash or the multicopter lands and falls to its side say then the motors remain running until the craft is disarmed. The current ways I know how to subsequently disarm are:

a. Hold the throttle stick down and left for 2-3 seconds (feels like forever when your copter has crashed and is still attempting to churn away and make things worse)
b. Press the safety button on the craft (could be tricky depending on numerous factors).

Basically, I was hoping to have a “mode” rather like Loiter/RTL/Stabilize etc, that is essentially a throttle kill that could be tied to a separate switch on the transmitter. I appreciate that that is perhaps deliberately not supported due to the rather apparent issue of accidently flicking said switch when at altitude. However, I did want to make sure I wasn’t missing some obvious solution to my prob and if there do happen to be existing guides on how to achieve this, please could you point me to them?

thanks in advance
Matt

I am a big fan of “when I want the motors off, I want them off instantly”, which is why I do not care for “MOTORS SPIN WHEN ARMED” – so I use MOT_SPIN_ARMED=0. This way, if I drop throttle to zero, they stop spinning, and 2-3 seconds later, I’m disarmed.

If you want advanced failsafe things, like radio failsafe, you can’t just send PWM<900 (or whatever) because that is needed for radio loss. So the only way I know to do it is the above method.

[quote=“britdavis”]I am a big fan of “when I want the motors off, I want them off instantly”, which is why I do not care for “MOTORS SPIN WHEN ARMED” – so I use MOT_SPIN_ARMED=0. This way, if I drop throttle to zero, they stop spinning, and 2-3 seconds later, I’m disarmed.

If you want advanced failsafe things, like radio failsafe, you can’t just send PWM<900 (or whatever) because that is needed for radio loss. So the only way I know to do it is the above method.[/quote]
MOT_SPIN_ARMED is a seriously important safety feature. It takes away ambiguity. I added it myself after I got cut up.

A kid will run right up and stick his face over a copter that does not have spinning motors, but won’t do the same with a “running” copter.

I would be just fine letting my copter smack its props against the ground for hours at MOT_SPIN_ARMED throttle levels. I’d pick the thing up and fly it again. Not a big deal.

It would be pretty trivial to add an instant disarm to the CH7_OPT/CH8_OPT parameters.

If that would convince you to use MOT_SPIN_ARMED, I would happily pull request the change.

I’d vote for that feature, being a heli guy myself the first thing I do is hit the throttle hold switch when crashing… of course on my setup for my APM Quad that controls Sonar so when I crashed the other day all I heard was my Taranis speak “Sonar Enabled” LOL!!! :laughing:

I’d keep it off for long distance flights as I don’t want to accidently hit it… but use it for the more aggressive FPV flights.

If we return the switch to normal would it “instant arm” and return throttle to normal? (In case of accidental hit) or require you to bring the throttle to zero and back to mid stick to “re-instant arm” or something like that?

[quote=“Thorvald”]I’d vote for that feature, being a heli guy myself the first thing I do is hit the throttle hold switch when crashing… of course on my setup for my APM Quad that controls Sonar so when I crashed the other day all I heard was my Taranis speak “Sonar Enabled” LOL!!! :laughing:

I’d keep it off for long distance flights as I don’t want to accidently hit it… but use it for the more aggressive FPV flights.

If we return the switch to normal would it “instant arm” and return throttle to normal? (In case of accidental hit) or require you to bring the throttle to zero and back to mid stick to “re-instant arm” or something like that?[/quote]

How about a switch that sets the motors to MOT_SPIN_ARMED? That would:

  1. Make the copter safe enough
  2. Would not result in a crash if accidentally flipped momentarily

Hi Folks,
Thanks for the fast replies, much appreciated!

I had toyed with failsafe also and had set my Taranis up to have a custom function on one of the switches (love that Radio system) so that I could force the throttle PWM to < 900, but as mentioned that invokes a failsafe, none of which are “stop motor’s spinning”, possibly quite rightly…

I would be in favour of jschall’s initial suggestion of stuffing a channel, say ch8 (as am using channel 7 for RTL right now :wink: ), as a switch between Disarm and “ready to arm”. This way when flicked down, say, it kills motor outputs (clearly a switch not to touch during normal flying, but I think the pro’s out weight the cons, at least in my case) and then when flicked back up will allow the pix to be rearmed in the normal fashion? Or perhaps a switch between Disarm and Arm (allowing for immediate recovery should it flicked in flight?)

I guess any mechanism that allows me to kill the motors instantly I would be happy with.

thanks again

Matt

A switch that allows you to kill motors instantly in flight would be really dangerous.
The chances of such a thing causing damage or hurting someone when flipped accidentally resulting in a fall would outweigh the chances of it helping by a large margin. I would support a switch to set all motors to MOT_SPIN_ARMED, because that would at least be reversible. Anything that totally kills the motors is going to be completely unrecoverable.

[quote=“jschall”]A switch that allows you to kill motors instantly in flight would be really dangerous.
The chances of such a thing causing damage or hurting someone when flipped accidentally resulting in a fall would outweigh the chances of it helping by a large margin. I would support a switch to set all motors to MOT_SPIN_ARMED, because that would at least be reversible. Anything that totally kills the motors is going to be completely unrecoverable.[/quote]
I beg to differ and actually state the opposite :slight_smile:. A “suicide switch” would be a major safety improvement because it would allow the operator to immediately kill a craft when it gets out of control BEFORE it hits people.
I do actually plan something like this in my GCS project - a switch (under one of those red caps) which will pull the throttle to zero and set stabilize/manual mode, regardless of what the mode switch says. In my huge Y6 project which is yet on the drawing board, I will have a self-holding relay circuit between the battery and the ESCs which will be controllable via R/C without FCS involvement

[quote=“jschall”][quote=“britdavis”]I am a big fan of “when I want the motors off, I want them off instantly”, which is why I do not care for “MOTORS SPIN WHEN ARMED” – so I use MOT_SPIN_ARMED=0. This way, if I drop throttle to zero, they stop spinning, and 2-3 seconds later, I’m disarmed.

If you want advanced failsafe things, like radio failsafe, you can’t just send PWM<900 (or whatever) because that is needed for radio loss. So the only way I know to do it is the above method.[/quote]
MOT_SPIN_ARMED is a seriously important safety feature. It takes away ambiguity. I added it myself after I got cut up.

A kid will run right up and stick his face over a copter that does not have spinning motors, but won’t do the same with a “running” copter.

I would be just fine letting my copter smack its props against the ground for hours at MOT_SPIN_ARMED throttle levels. I’d pick the thing up and fly it again. Not a big deal.[/quote]
I’m certainly not trying to revive this debate, but I respecfully disagree, for these reasons:

  • What I said above about having 100% authority about whether or not the motors are spinning
  • With Pixhawk, the audible and LED feedback for me makes it clear about what state I’m in
  • I use the safety switch just before takeoff and first thing after landing.
  • I don’t land my copter in places I cannot see it
  • If it crashes where I cannot see it, I know that my motors are not spinning if my trottle is zero.
  • I do not want the props to suddenly start spinning on an unexpected arming event.
  • Kids and dogs will still put their fingers into the prop area. Spinning props are somewhat invisible to kids, and toddlers and dogs don’t know that they should not touch it.

The safety switch, LEDs, and audible tones are plenty for me to know with certainty about my arming state, and those enhancements are a huge help to me, who comes from the OP world where there were no tones or easy to see LEDs, so I always assume it’s armed unless I know it’s not.

@britdavis:
That is your choice and that’s why the spinning in armed status is optional.
However, I believe, this thread wasn’t about MOT_SPIN_ARMED but about a throttle kill or suicide switch function, so let’s please stick to that topic.

[quote=“StefanG”][quote=“jschall”]A switch that allows you to kill motors instantly in flight would be really dangerous.
The chances of such a thing causing damage or hurting someone when flipped accidentally resulting in a fall would outweigh the chances of it helping by a large margin. I would support a switch to set all motors to MOT_SPIN_ARMED, because that would at least be reversible. Anything that totally kills the motors is going to be completely unrecoverable.[/quote]
I beg to differ and actually state the opposite :slight_smile:. A “suicide switch” would be a major safety improvement because it would allow the operator to immediately kill a craft when it gets out of control BEFORE it hits people.
I do actually plan something like this in my GCS project - a switch (under one of those red caps) which will pull the throttle to zero and set stabilize/manual mode, regardless of what the mode switch says. In my huge Y6 project which is yet on the drawing board, I will have a self-holding relay circuit between the battery and the ESCs which will be controllable via R/C without FCS involvement[/quote]
And I agree with Stefan on this one. I’d rather drop my bird if it’s going badly rather than have it drift out of control. That’s the way my FS was set until very recently, which was really good at forcing you to make sure your bird was configured correctly. As long as people don’t use the TH switch where it normally is (seems dumb to me because it’s so long and on the outside back of your Tx) and instead have it where (for instance) the Taranis long switches next to the pots are.

You should be able to drop your bird at anytime, anyway, without risk to others, because you should not be over people in the first place.

[quote=“StefanG”]@britdavis:
That is your choice and that’s why the spinning in armed status is optional.
However, I believe, this thread wasn’t about MOT_SPIN_ARMED but about a throttle kill or suicide switch function, so let’s please stick to that topic.[/quote]

Agreed. However the the OP was asking for an obvious solution, and I shared with him my workaround which achieves his goal but in a different manner:

“However, I did want to make sure I wasn’t missing some obvious solution to my prob and if there do happen to be existing guides on how to achieve this, please could you point me to them?”

Just trying to contribute to the community and this forum. Giving up one safety feature for another is at the pilot’s discretion and based on experince and ordering of priorities. Having a flexible system like AC allows us to have choice, and because we don’t have a “switch”, I had to make a sacrifice to have instant disarm. Should a switch later be assignable for kill, I’d probably use it, but until that happens, my solution is the only one I know of, but by all means, correct me if I’m wrong.

Indeed, my request was for a throttle kill switch, however that might be achieved. I would be fine with a switch that set to MOT_SPIN_ARMED as then it would be up to the individual whether or not MOT_SPIN_ARMED was subsequently set to 0, which I believe would effectively achieve the ask?

It seems arguments can be made for and against having such a switch in play. Seemingly there is no absolute safety violation against either argument? Providing that is the case then maybe it could be added with the condition that the feature be configured as “disabled” by default (disabled meaning no different to how things are now). Then it would be up to the individual to configure to enabled if desired. Rather like the indivdual has the choice of having MOT_SPIN_ARMED set to 0 or not right now, but by default it is not 0.

cheers
M

Although I guess having a switch that pushes to MOT_SPIN_ARMED would be redundant for folks who are wanting a kill switch and would subsequently set MOT_SPIN_ARMED to 0. As MOT_SPIN_ARMED at 0 already achieves the ask when throttle is pulled to min pos.

Thus the question of whether an actual disarm/throttle kill switch can be created still stands and in the meantime folks like myself and seemingly brit can continue to use the current mechanism of setting MOT_SPIN_ARMED to 0 to achieve the goal?

M

@jschall, @stefang:

You got me excited offering to get help push for such a Ch 7/8 option, however, I’d posted an enhancement request for Ch7/8 to allow them to be used for multiple options (like two or three, like Ch5 works), so perhaps this request could be rolled into that request.

I would really like to be able to use my Ch7/8 on my three-way switches to do three different things, each, For instance: Ch7: Nothing, Land, RTL. Ch8: Auto Trim, Nothing, Save WP. Others could configure one of those for Kill, if desired.

Brit, what you’re talking about there is a multi-function switch. I think that may already exist, but let’s stay on topic please to avoid confusion.

I support the request for an absolute kill switch. This sort of thing has existed in the RC Hobby field for a long time. The idea of an emergency stop also exists in industry. I think it could be done in this application, with a little bit of extra logic to ensure safe operation.

First, define normal state as kill switch “off” and throttle kill as kill switch “up”.

So, you cannot do primary arming if kill switch is up. This prevents somebody accidentally arming in a kill state, raising throttle, wondering why nothing happens, and then dropping the kill switch and having it take off.

Once it has been armed with the kill switch off, the motors go to Mot_spin_armed and respond to throttle normally.

If the kills switch if flipped “up” at any point, motors go to ZERO. Not Mot_spin_armed, but zero.

If the kill switch is flipped up for 10 seconds, the vehicle disarms automatically. Nobody is going to tumble a multirotor in throttle kill for 10 seconds and then hope to get it back. This check would avoid having the operator land and kill the motors with the kill switch, then walk over, and flip the switch down, resulting in the craft unexpectedly taking off again.

Perfect - well thought out. IMHO this is a life saver long overdue - much higher priority than many fancy features.
When can we expect it please ?

[quote=“Rob_Lefebvre”]Brit, what you’re talking about there is a multi-function switch. I think that may already exist, but let’s stay on topic please to avoid confusion.

I support the request for an absolute kill switch. This sort of thing has existed in the RC Hobby field for a long time. The idea of an emergency stop also exists in industry. I think it could be done in this application, with a little bit of extra logic to ensure safe operation.

First, define normal state as kill switch “off” and throttle kill as kill switch “up”.

So, you cannot do primary arming if kill switch is up. This prevents somebody accidentally arming in a kill state, raising throttle, wondering why nothing happens, and then dropping the kill switch and having it take off.

Once it has been armed with the kill switch off, the motors go to Mot_spin_armed and respond to throttle normally.

If the kills switch if flipped “up” at any point, motors go to ZERO. Not Mot_spin_armed, but zero.

If the kill switch is flipped up for 10 seconds, the vehicle disarms automatically. Nobody is going to tumble a multirotor in throttle kill for 10 seconds and then hope to get it back. This check would avoid having the operator land and kill the motors with the kill switch, then walk over, and flip the switch down, resulting in the craft unexpectedly taking off again.[/quote]

Sounds fine to me as long as the kill switch is a real kill switch which overrides EVERY other decision the FC could possibly wanna make. The idea is that it’s the last resort for the user to prevent a bird from flying away or flying into people or property in case the FC makes weird decisions. I’m pointing that out because I believe that would require implementation a bit away from the “normal” process chain, maybe in the I/O or just generally on a deeper level. I’m talking really low level here.
On a higher level, the crash detection algo or something similar could query the kill switch status and if the vehicle is equipped with a parachute, the kill switch could autotrigger that too. And don’t forget making lots of noise :slight_smile:. Some siren tone or an intermittent tone like a truck backup alert to make people aware something is in the air that’s potentially NOT love :stuck_out_tongue:. Also makes finding a suicided bird easier.

Actually, now I know why this sounded so familiar to me :smiley:. I opened a feature request 7 month ago…
github.com/diydrones/ardupilot/issues/562