RC(n)_OPTION - The things PWM buttons can do

When I set up my HereLink, I heeded the warnings to not use the HereLink settings to map buttons to channels and PWM values that set flight mode. Flightmode changes are best done by MavLink commands issued by the ground control app. (Solex, QGC, etc.)

But I hadn’t realized that CubePilot also recommends that where possible, any other command sent from the HereLink should use the button mapping to RC channels and PWM values. If it’s in the CubePilot wiki, I overlooked it.

My understanding is that for RC Channel PWM signals to initiate action on the flight controller, the RC(n)_OPTION for that function must be set for that channel. (along with the associated parameters such as RC(n)_MIN, RC(n)_MAX and RC(n)_TRIM)

The options available for RC(n)_OPTION are listed in the wiki here:
https://ardupilot.org/copter/docs/common-auxiliary-functions.html

One of the available options is to initiate LUA scripts - which makes this capability very powerful.

There are some tasks however that might be better served by simply initiating a MavLink command. The capability for example, of assigning a button short press to tilt a gimbal into position for NADIR photography, and a long press to tilt the gimbal back to level - would be really helpful.

I’ve issued a post over in discuss.ardupilot.org to inquire about this. If CubePilot feels such a proposal would benefit HereLink users, putting in a word with the ArduPilot DEV’s might be useful.

As an illustration, at the beginning of a photo survey mission, the camera gimbal can be placed into position with the DO_MOUNT_CONTROL statement as such:

This DO_MOUNT_CONTROL statement is simply the MavLink command with it’s seven parameters here:

The ability to have a HereLink button initiate an RC(n)_OPTION function that issues this simple MavLink command would be a great value - here in many other ways.

1 Like

Have you thought about running a concurrent app that handles custom commands for wants like this?

Stryngs - No - not really.

Since RC(n)_OPTION can initiate a LUA script the problem could be addressed that way. But that requires knowledge of LUA, and a bit more work. Seems simpler to merely launch a MavLink command with it’s 7 parameters.