Mav_0_config not seen

I am trying to set up a unique mavlink configuration for my drone using the px4 but we are running into issues. The setup we need to use is a baud rate of 115200 on telem2. When looking over the documentation for the px4 it mentions that we should be using mav_0_config setting and a few of the other mav_0_* settings so that we can set the mavlink setting. When we look for this parameter on QGroundControl we can not find any of these parameters.

Is this something that is a hidden parameter? Are we able to see these at all or how are we able to change these parameters?

We have updated our px4 to the latest firmware and are still running into the same issue. Any help would be much appreciated.

Have you followed all these steps? https://docs.px4.io/en/peripherals/serial_configuration.html - at which point does it fail?

We are looking at the trouble shooting section of that link. The failing part is that our parameters do not show up and we do not know how to actually change the firmware so that we are able to see the mavlink commands that are found here https://docs.px4.io/en/advanced_config/parameter_reference.html#mavlink

I am facing similar issues too. Unable to find some parameters from QGC. However, this is not consistent across all Pixhawk boards. I am interested in understanding how some parameters appear and some do not. Is this PX4 Firmware issue or board issue? Any help here is very much appreciated.

@team18049 You should not have to do anything special for these to show up.

I just tested this with daily build, QGC 3.5 and Pixhawk 4 Mini. The parameters do show up in QGC in the settings when I look for them: Redirecting to latest version of document (master)

What hardware are you using?

Parameters show up when the module that uses them is included in the build. That is why on FMUv2 boards you’ll sometimes see missing parameters - because a lot has had to be disabled to allow the firmware to fit into the 1Mb limit on those boards.

@hamishwillee, Thanks for the reply. This makes sense. I am also customizing the complete boot up sequence using a rc.txt (as mentioned here: https://dev.px4.io/en/concept/system_startup.html#replacing-the-system-startup ) in which I start only the modules that I want.

So my question is:

  1. Does the parameters depend on the modules being built as mentioned in CMAKE, or the modules being started as mentioned in rc.txt ?
  2. How do I find the mapping between the parameters and the modules?

Thanks in advance

@hamishwillee We are using the pixhawk 1 px4. It is the FMUv2 board which is why are not seeing the parameters. I thought I remember reading that it was possible to show these disabled parameters by adding/removing a few things from the firmware (https://docs.px4.io/en/peripherals/serial_configuration.html#parameter_not_in_firmware), I just don’t know how to do this.

It is in the cmake configuration. So for FMUv2 you can see a bunch being disabled here: https://github.com/PX4/Firmware/blob/master/boards/px4/fmu-v2/default.cmake

A bit of docs on this here: Writing your First Application · PX4 Developer Guide

There is no documentation of the mapping, but often you can guess from the name or purpose. The easiest way though is to just do a search on PX4/Firmware repo for the parameter name. The module name is then obvious from the file path of the definition.

See the comment I made to asheshad.

NOTE! There is a reason these are disabled. If you are really using Pixhawk 1 board that must have FMUv2 then it only has 1 MB of memory. That is not a lot. If you enable a module to add whatever functionality you need, you may have to disable another module. I can’t offer much advice on that.

If your hardware is relatively new, it may not actually require FMUv2 - you may be able to install FMUv3. But to do this you might need to do a bootloader update Redirecting to latest version of document (master)

Hi @asheshad & @team18049,

I had the same issue with firmware v1.8.2, have to compile v1.9.0 (from master) and now I can see MAV_* parameters as expected. Note that I’m using Pixhawk 1 (HW 2.4.8), so my chipset STM32F427 is Rev3, and I built and flashed px4fmu-v3_default firmware

see my post:

BTW, vs changing MAV_* parameters directly, I would recommend to use the following approach, so if any issues, you can remove the SD card and connect pixhawk to QGC via usb:

  1. create following path & file in your SD card: /etc/extras.txt
  2. add the following content:
    mavlink stop-all
    mavlink start -d /dev/ttyS2 -b 921600 -r 20000 -m onboard
  3. powercycle pihawk with SD card

note the following mapping for Pixhawk 1:
Micro-USB -> /dev/ttyACM0 (Console)
TELEM1 -> /dev/ttyS1 (MAVLink)
TELEM2 -> /dev/ttyS2 (MAVLink)
GPS -> /dev/ttyS3 (GPS1)
SERIAL5 -> /dev/ttyS5 (NSH Console)
SERIAL4 -> /dev/ttyS6 (GPS2)

for more info, see the following links:
https://dev.px4.io/en/concept/system_startup.html#starting-additional-applications
https://dev.px4.io/en/middleware/modules_communication.html#mavlink

Another reason why parameters may not be showing is because of port conflicts.

I was trying to set up a companion computer on a Pixhawk 4 mini.
It only has one telemetry port, so I tried to change MAV_1_CONFIG from Disabled to TELEM1, then reboot. But other MAV_1_* params would still not show, because MAV_0_CONFIG was pointing to TELEM1.

After setting MAV_0_CONFIG to a random port, and TELEM1 was only set at MAV_1_CONFIG, then the other params showed again.

However, I will use MAV_0 for the comapanion computer.

https://docs.px4.io/master/en/advanced_config/parameters.html

https://docs.px4.io/master/en/peripherals/serial_configuration.html