How to assign actions to more than 16 buttons in QGC

Hi @WilliamDomben,

For some context, this discussion thread was opened when Blue Robotics was maintaining separate ArduSub-focused forks of both QGroundControl and the ArduPilot firmware project. We have since merged those forks back into the upstream repositories, so the original GitHub Issues from our repositories were transferred over to the base repositories.

Yes:

  1. The MAVLink MANUAL_CONTROL protocol has been updated, to allow some extra motion axis inputs and 16 extra button functions (so 32 total, instead of the original 16)

  2. ArduSub has been updated to support that new protocol, as of version 4.1.2

  3. QGroundControl does not yet support the protocol extension, but there is an open issue about doing so, which is where relevant QGC-specific updates can be tracked

    • For controllers where QGC recognises additional buttons from your controller but can’t currently assign ArduSub-specific functions to them, it is at least possible to configure custom MAVLink commands for it to send instead
  4. Cockpit has been updated to fully support the extended protocol, as of v1.0.0-beta.7

By assigning one of your joystick buttons to act as a “shift” function you can almost double the effective number of buttons available, which can be very useful when you have more functions you want to support than buttons on your joystick.

That said, there are some joysticks with more than 16 buttons, so it’s useful when all of them can be assigned to directly as well.

1 Like