Pixhawk5 MAVLink Offboard: cannot autoconnect without QGroundControl


I am working with a Holybro X500 frame and a Pixhawk5. I am trying to mount an UP Core 0464 computer as the companion computer. The problem I am having is that I cannot setup the MAVLink instance 1 on TELEM2 connection via MAVSDK or MAVROS unless I have first connected the Pixhawk5 to QGroundControl and then exited the app. For instance: connecting the Pixhawk5 to any Ubuntu computer and then running
roslaunch mavros px4.launch
results in no connection. However, running the above command after having opened and closed the QGroundControl app results in successful connection. The same happens if I connect with MAVSDK and also if I connect with the TELEM2 FTDI USB adapter instead of the Pixhawk5 default USB-C port.

I successfully compiled and uploaded the firmware from the master branch of PX4-Autopilot repository by running:
make px4_fmu-v5x_default upload
I did this instead of the QGroundControl default “PX4 Pro Stable Release v1.12.X” because I could not find certain parameters (like MAV_1_MODE) with the PX4 Pro version. I set parameters:

The connection to the companion computer I plan to use is: mRo USB FTDI Serial to JST-GH (Basic). I also re-soldered the board to switch it to 3.3V level.

It seems that the QGroundControl app changes something about the Pixhawk5 to “enable” the MAVLink communication. It would be more convenient if I could connect to Pixhawk5 directly without going first through the QGroundControl app. For reference, I also have a Pixhawk4 with a similar setup and this board is able to automatically connect to MAVROS/MAVSDK without first passing through QGroundControl.

I would appreciate any insight into what settings I am missing to enable the automatic connection to MAVROS/MAVSDK.

Thank you for your time.


One of the problems was that my mRo USB FTDI Serial to JST-GH (Basic) was not working. Not sure if hardware failure or driver issues. I used instead a SparkFun USB to Serial Breakout - FT232RL set to 3.3V level. With this new board, connected as described in the hardware setup guide, I am able to connect with MAVROS/MAVSDK without having to go first through QGC. The other key issue I was facing is that I wasn’t specifying the Baud rate when trying to connect. For example, I can now launch MAVROS through TELEM2 with the following command:
roslaunch mavros px4.launch fcu_url:=/dev/ttyUSB0:921600

The Pixhawk5 is not detected if I don’t specify the Baud rate.

I still cannot connect through /ttyACM0 (the default USB port in the Pixhawk5) without first going through QGC. Although this is not critical for my application, I still wonder what I am doing wrong.