ExpressLRS 4.0 switch arming

ELRS 4.0rc1 released.

This one allows arming without using CH5, but just by assigned switch.
Question is - is arming state still passed to FC in some CRSF data without using partticular channel, or still one of channels need to be set for that.

Any integration of this (arming without using particular rc channel) in ardupilot?

EDIT: No, we don’t do any special handling as far as I know, but it appears we can.

In the meantime, if you rudder arm, you should still toggle a switch (that doesn’t have to be mapped to an ArduPilot function) or use the legacy Ch5 arming protocol if ExpressLRS is in use. It’s also possible to use a transmitter mix (on EdgeTX and similar) that detects the rudder arm/disarm sequence and toggles a channel for ExpressLRS to detect.

I have an open question in the dev channel regarding plans to support.

I have mixed feelings on the subject. It’s nice to free an RC channel, however, it’s often best to assign Arm/Motor Stop when using switch arming for ArduPilot, particularly for multirotor applications. I’d just use the legacy Ch5 arming for that.

On TX side You still need to assign switch for arming, but it is just not connected with CH5 anymore. I pretty sure state of this switch still has to be transmitted to RX, but not as channel value.

So getting free chanel and having ARM status somehow from receiver would be a win-win.

1 Like

See my opinion. Not necessarily a win-win. I understand and have read the pull request that implements it. ExpressLRS arming state is sent via CRSF message in the case of switch arming.

Maybe we can implement an RC_OPTIONS bit to optionally assign Arm/Motor Stop to the feature, in which case, it’s a winner all around.

1 Like

I think this should go the other way around. We should tell the receiver that we are armed and therefore it should arm too. We probably shouldn’t tell it to disarm after landing, especially if we aren’t close to home/landing point, at least for some time.

IMHO we should have bits for that in RC_Opitions

ELRS_ARM - enable ELRS command arming
RC_DISARM_TMEOUT - time after vehicle disarm RC is disarmed (0 disables timeout)
RC_DISARM_RADIUS - radius from home/landing point disarm is allowed in. (0 disables radius check)

But arming is triggered from TX side, so what would be the trigger in this case for AP to arm? And why You would like to disarm radio link when pilot requests armed state?

If You have crashed somewhere it would disarm radio and go into low power? How to attempt to do some turtle flip on distance?

Arming state is indicated by “*” prefix for flight mode, and IMO this is just fine.

I wouldn’t. It was about delegating control over ELRS arming to the Ardupilot, avoiding situations where ELRS loses link on disarm is the reason why I wanted home radius for optional disarming of the link after the vehicle is disarmed.

Using radio link armed state to command Ardupilot arming is backwards.

The whole point of this is to do exactly that and free an RC channel. It would be an option, not a requirement.

I don’t know that there’s a provision to send the receiver a message (from the autopilot) that it’s armed and then downlink that to the handset. It’s more important that the transmitter be in the armed state to enable dynamic power.

EDIT:

But upon further review, I’m not even sure that this feature ever leaves the ExpressLRS hardware. This video showcases use of the feature, but all it does is allow him to change the way he uses logical switches/mixes, and in the end, RC5 is toggled anyway. Betaflight has no patches (that we can find) to enable RC channel-less arming.

https://www.youtube.com/watch?v=ovBjgIuDS8M

1 Like

Turns out this is much ado about nothing, and I made an incorrect assessment about how the feature is implemented. After discussion with the ExpressLRS devs, it seems this is a handset-only feature.

There is nothing we can do on the autopilot side of things to detect that, so ArduPilot will continue to require any combination of: rudder arming, RC switch arming (assigned to a channel and RCx_OPTION), or arming via MavLink.

I think the real value of this feature may be to those with pure RC models who do not wish to have an otherwise useless AUX1 tied up. You could also do as “RC Video Reviews” does with logical switches if that suits your needs. Additionally, it becomes possible to use a channel other than RC5 for arming with ArduPilot if that is somehow appealing.

1 Like

Based on the fact that ExpressLRS arming state exists solely within the handset, I can see the value of doing something like this (we tell the receiver, it tells the handset). However, I don’t see a reasonable/reliable provision to do so. Trying to enable it might require something hacky like detecting autopilot arm state via Yaapu telemetry and passing that back through to the ExpressLRS transmitter module.

1 Like