"Actuator Output" section is empty in QGC "Actuators" tab

Hi All,
I am working with QGC v4.3.0 and a custom PX4- v1.13 on STM32 F7, and I want to use Dynamic mixing.
After setting SYS_CTRL_ALLOC to 1, I’m able to see the new actuator tab, alas the “Actuator Output” section is empty - see image attached.

I am using a custom motor driver, and has defined its module.yaml file to contain the relevant fields:
“module_name: MAV ACTUATOR
actuator_output:
output_groups:
- param_prefix: MAV_ACT
channel_label: ‘MAV_ACT’
num_channels: 4”

What am I missing?
Is there a specific PX4 build output (xml file or something?) that I need to feed into the “QGroundControl.AppImage” file?

Would greatly appreciate your help to unblock this :slight_smile:

For dynamic mixing, make sure to use v1.14.

Hi @JulianOes , All
Thanks for the reply - but my question is more on QGC and its interaction with PX4, meaning:
When I define a new custom actuator output (== motor driver) or a new airframe,
How can I get QGC to recognize it?
Are there PX4 build artifacts (json, xml, etc.?) that I need to feed into QGC somehow?
I assume this is relevant for 1.14, 1.13 or any other version

It needs to be in the yaml file, similar to:

And make sure to do a clean build.

Thanks again @JulianOes for your quick response.
Please note that I wrote in my original question the content of the module.yaml file for my custom motor driver (aka: mav actuator) and this is exactly the point where I got stuck.
How will QGC parse/read/get the details from this yaml files?
Will there be a build artifact created from these module.yaml files that QGC needs?
Something else?

Adding some info from my debug:
Started looking into qground control code, I found that 2 XML files coming from PX4 are required to present custom/specific airframes and PX4 parameters in th UI:

  1. airframes.xml (build artifact from PX4) to be placed in /qgroundcontrol/src/AutoPilotPlugins/PX4/AirframeFactMetaData.xml
  2. parameters.xml (build artifact from PX4) to be placed in
    /qgroundcontrol/src/FirmwarePlugin/PX4/PX4ParameterFactMetaData.xml

But “actuator outputs” are not coming from those - rather I suspect those are coming from some metadata Json file, loaded in this code in QGC (see below).
I see there is a PX4 build artifact called “actuators.json”.

@JulianOes - perhaps you are able to recognize how to connect this PX4 json, into QGC?
What do you think?

/home/ANT.AMAZON.COM/rlamachi/workspace/qgroundcontrol/src/Vehicle/Vehicle.cc:1746

void Vehicle::setActuatorsMetadata([[maybe_unused]] uint8_t compid,
                                   const QString &metadataJsonFileName)
{
    if (!_actuators) {
        _actuators = new Actuators(this, this);
    }
    _actuators->load(metadataJsonFileName);
}

More updates:
I think that this JSON file (and other json files) are baked into the PX4 binary file.
and I assume QGC is using this somehow:
in “component_general.json” there is:
{“type”: 5, “uri”: “mftp://etc/extras/actuators.json.xz”…

Right, I’m sorry. Must have glanced over that.

Let me look at where I did that recently:

  • Added module.yaml
  • Started the module in rcS
  • Added the driver to default.px4board
  • Added the CMakeLists with a PARAM_PREFIX and a MODULE_CONFIG in px4_add_module.
  • Added the .cpp and .hpp files (inheriting from ModuleBase and OutputModuleInterface.
  • Added the Kconfig entry.

And make sure to do a clean build, and then it should generate everything required.