Emlid

Navio2 SBUS does not timeout during failsafe


#1
  1. Image and ArduPilot version.
    Latest / 3.5 copter (quad)

  2. Detailed problem description. How does observed behavior differ from the expected one?
    XM+ SBUS RX functions correctly, however after TX is switched off and RX confirms signal loss with red LED, Navio’s channel values remain at their last position and do not ever time out, thus do not trigger failsafe functionality.

Tested using both GCS and a modified version of RCInput.py that iterates over all channels.

  1. Your step by step actions.
    Connect Frsky XM+ receiver, ensure SBUS values can be read, turn off radio, observe channel values do not change and remain at their last known positions indefninitely

  2. Picture of the setup and connection scheme.
    Power->Navio2->Frsky_XM+

  3. If using any additional hardware please provide exact make and model.
    Frsky XM+
    Raspberry Pi 3B+
    Navio2

  4. Expected behavior
    RCIO board SBUS watchdog resets channel values to 0 100ms after last valid SBUS message was received

  5. Have you hooked up the SBUS channel to a scope and made sure the channel values aren’t actually stuck?
    Not yet, do I have to? It works on Betaflight fine…

PS: RSSI is on SBUS CH16, any way I can hack the RCIO to let me use it?


(Marc Lebret) #2

Hello,

What are your receiver failsafe settings? If, as I did it, they are to set the commands at a preprogrammed setting, your Failsafe order do it:

When my TX is Off, Roll, Pitch,Yaw and throttle stay at the neutral. Channel 5 go to RTL…

If my receiver shut down, no signal is sent to arducopter, Failsafe RTL or landing or disarm is performed by arducopter

If you want to have an arducoper failsafe, just set your receiver “stop sending signal” to the flight controller.
http://ardupilot.org/copter/docs/radio-failsafe.html

Marc


(Tatiana Andreeva) #4

Hi @wubbalubbadubdub,

Did Marc’s advice help you?


#5

It did, thanks.

I misunderstood the way failsafe works. I assumed failsafe resets channel values to zero upon being triggered. This is not the case, the channel values remain at their last value and the failsafe is effected elsewhere.