Etienne, I’m sorry this is not possible at this time. The state of the buttons is communicated to the autopilot in a 16bit field. I want to rework the pilot input implementation to be much more flexible (keyboard input, multiple joysticks, as many buttons and axes as you want… This will take some time, however.
I had a look ad the Joy2Key software but it doesn’t look like it can help in this case.
QGC does not support keyboard strokes in lieu of joystick buttons unless I am missing something.
Joy2Key can change the mapping of the buttons to be triggered by another but you can’t assign more than one trigger per button. (IE button 16 is my “shift” key and I want it triggered if buttons 17 or 18 or … 32 is pressed)
None of theses options allow to remap more than one trigger per button. I’ll just have to wait until BR releases a version of QGC that supports more buttons.
What you want to do seems simple enough, there’s got to be something out there that will work. I’d also post on the Auto HotKey forums. They might have some suggestions.
This is the limitation as of now. It is an implementation detail in the autopilot software, no third party software will change this. It will require an update in our software.
Is it currently possible to assign buttons 16 through to 32 in joystick setup? A device I am programming shows the buttons work fine in the windows “Game Controllers” and QGC but I am unable to assign the button, the selector menus don’t show on buttons after 15.
QGC can detect the extra buttons, but currently does not yet support them for vehicle functionalities, and they are also not yet supported in ArduSub. It’s possible they could work for the QGC-specific functionalities that aren’t reliant on MAVLink communication to the autopilot, like switching between video streams (for multi-camera vehicles), but I haven’t tried or checked.
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:
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)
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
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.