Making a parameter "Used" (therefore visible in QGroundControl)


What does it take for a parameter to become used?

I know I’ve defined it correctly (in parameters.c under my sensor driver subdir and it is visible under build/build_name/parameters.xml with correct annotations), I’ve also referenced the parameter in ROMFS/px4fmu_common/init.d/rc.sensors (as the parameter itself is a simple on/off switch for a sensor driver), but it is not visible in QGroundControl and param show in nsh does not mark it as used.

If I reference it in ROMFS/px4fmu_common/init.d/rcS (the reason why I tried that is that the only distance sensor-related parameter visible in QGroundControl is for LL40LS and it is referenced in rcS), my parameter DOES become used, however the annotations in QGC are missing (i.e. it seems that I can change the value, but I don’t get nice drop-down).

Thank you in advance!


So I learnt yesterday in the dev call that in order for a param to show up the call param_find needs to happen before the last rcS item which is mavlink boot_complete.

So if you somehow make sure that your parameter is “used” with param_find before that, then it should work.

1 Like

Thank you, that explains why adding a check on a parameter in rcS solves it - LL40LS has a check in that file, which marks it as used. Core thing here is that my flight controller is running with SYS_HITL as Enabled, meaning rc.sensors never gets executed.

Now the question is - why are the annotations not picked up? I only get to enter the raw value.

Also, is there documentation on sensors app? In particular, the behaviour of -h flag.

This describes the sensors args:

The annotations land in QGC on new releases when the latest xml file is copied into the source:

I don’t think it’s updated otherwise but I might be mistaken.

1 Like

Thank you, this makes sense!