Deploying Custom Controllers on Pixhawk 6X with PX4 Firmware 1.12.3: Compatibility Challenges

Hello everyone,

I’m working on deploying a custom control algorithm from MATLAB to a Pixhawk 6X board running PX4 firmware 1.12.3. However, I’ve encountered compatibility challenges, possibly due to the interaction between the firmware version, the board, and MATLAB’s PX4 support.

Issue Overview

The primary issue appears during the deployment process, where MATLAB struggles to communicate effectively with the Pixhawk 6X. From my research, it seems PX4 1.12.3 may not fully support the hardware improvements in Pixhawk 6X, resulting in functionality gaps, especially for custom deployments.

Specific Symptoms

  • Motor Count Detection: QGroundControl displays an “unable to determine motor count” error, possibly due to parameter or communication issues.
  • MATLAB Deployment Issues: MATLAB fails during upload, indicating a mismatch between the controller setup and the firmware’s hardware support.

Tried Solutions

I’ve attempted the following:

  1. Checking and reloading the airframe configuration to verify compatibility.
  2. Testing with alternative QGroundControl versions, including 4.1.7 and newer.
  3. Investigating compatibility by considering upgrades to PX4 1.13 or 1.14, which seem to include fixes for newer hardware like Pixhawk 6X.

Seeking Advice

Does anyone have experience deploying custom controllers on Pixhawk 6X with PX4 firmware, especially using MATLAB? Any insights on firmware version choices, parameters, or potential patches would be greatly appreciated!

Thanks for your help!

That’s what I would expect. I would complain to the MATLAB people that they ought to support something more recent than a release from more than 4 years ago.

I solved this problem, it is related to the setup of MatLab and PX4 together. I can tell you the procedure of this work if anyone is interested.

If you publish the steps in a github gist and link it here that would probably be helpful for anyone that finds it in the future.