AC 3.6 safety switch operation

I’ve noticed since 3.5.7 (and earlier) a difference in the operation of the safety switch and I think it should be checked and maybe adjusted - assuming I havent got any parameters wrong.
I’ve upgraded from 3.5.7 to 3.6 RC11 and now RC12 - it was not a wipe and fresh install.
Parameters appear OK and make sense according to the doco and also when comparing to parameters from AC 3.5 versions.
Safety switch messages now appear on the OLED display, no problem with that except maybe that’s a symptom of the issue.

Pre 3.6 operation after power-up:

  • Safety switch LED blinking
  • Main LED blinks yellow since we have a geofence set and it waits for a suitable GPS 3D fix (provided all other pre-arm checks are OK)
  • OLED display never mentions anything about the safety switch
  • Main LED eventually goes green when appropriate
  • Press safety switch, Safety LED is solid
  • Arm via RC sticks, fly

Post 3.6 operation after power-up:

  • Safety switch LED blinking
  • OLED display repeats message about Safety Switch and “Safe”
  • Main LED keeps blinking yellow UNTIL safety switch is pressed, only THEN does main LED show green or blue or any other status, Safety LED goes solid
  • Arm via RC sticks, fly

The issue I see is without a groundstation of some sort, you cant tell from the main LED if pre-arm checks have passed UNTIL after you press the safety switch.

I’ve set Logging_disarmed and may be able to do a flight today in case logs are required

Existing params:

Should I exclude Safety Switch from pre-arm checks? But this would be a departure from how the params and operation was pre-3.6


Yes, we’ve changed the main LED so it stays yellow until all the the pre-arm checks have passed. Previously the safety switch was excluded but now it’s included. I was worried that we would face a mass of protests from this change but you’re actually one of the first to notice and report back on this (as far as I know).

There’s upsides and downsides to the change. The good thing is that you’ll definitely know you can arm if the LEDs are blue or green. Previously the pilot could forget and so they’d go to arm, here the unhappy beep and then have to go and push the safety switch. The downside is of course, that you have to push the safety switch before you can see the status of all the other pre-arm checks.

I guess you’re saying that on the little OLED display you can’t see the pre-arm failures because the “safe” message is shown?

I’m not sure I’ve answered your question…

I think when relying on the main LED for the pre-arm status checks, the new way means we cant see the status of other checks until the safety switch is pressed, like a “suck it and see” function. Ideally for professional use you’d always have a ground station and there’s potentially no need to even look at the main LED.
Someone without a ground station or OLED display could stand there all day waiting for the main LED to go green…

Could we go back to the old way by setting ARMING_CHECK to 14335 - all but hardware safety switch if my calculations are correct ?


Yes, you’re probably right that turning off that ARMING_CHECK will make it work like before. thanks for bringing this up 'cuz assuming this works, we have a solution for the next person who brings this up!

I will set that bitmask and test today - thanks for replying Randy

1 Like

This confused me also. Similarly you don’t get the ready-to-arm ta-da-da until you press the safety switch.

1 Like

I personally like this change, it provides a distinct visual and audio feedback of safety switch operation. (not all ESC’s are beeping when safety is off…) and you can simply change back to previous mode of operation with setting arming_check.

1 Like

Great, thanks for the feedback. I will highlight this change in the release blog post and pending Sharn’s testing we can tell people how to choose the behaviour they prefer…

Confirmed to return safety switch to original operation as per AC 3.5.7 and earlier:


bitmask 11011111111110 for the geeks out there.

Note that in my calc in a previous post I forgot to turn off the bit for “ALL”

1 Like

awesome, thanks for that!

And there’s also this under Advanced Parameters in Mission Planner

…which will go and set the bitmask for you

MP: 1.3.68 build 1.3.7
Copter: 3.6.9

Hi friends:
How to ‘toggle safety switch’ remotely (i.e. without physically touching the safety switch). Following failed …

1/ MP --> Ctrl+F --> ‘Toggle Safety Siwtch’ (This is only working to ENABLE but unable to DISABLE)
2/ MP --> ConfigTuning–>Full Param List --> BRD_SAFETYENABLE=0 (not working !)
3/ I am trying to connect TERMINAL to play with MAVLINK command but as soon as I press Connect, it disconnect MP.

I guess this may be the issue due to this post ?.

Pls. help as this is important to enable/disable safety switch remotely, Thanks.

MP: 1.3.68 build 1.3.7
Copter: 3.6.9

I think I got the following work around to toggle safety switch remotely
1/ BRD_SAFETYOPTION=0 (uncheck all three options, initially this value was 3)
2/ BRD_SAFETYENABLE=0 (initially this was 1)

Now, reboot Pixhawk (MP–>Ctrl+F–>“reboot pixhawk”)

So, workaround will be …
enable safety switch ==> MP–>Ctrl+F–>“toggle safety switch” (This will not change BRD_SAFETYENABLE to 1)!
disable safety switch ==> MP–>Ctrl+F–>“reboot pixhawk”

Above workaround will work until developers will fix the issue.