Skip to content Link Search Menu Expand Document
ModalAI DOCS
Store

VOXL PX4

The voxl-px4 package provides the infrastructure to install and run the PX4 flight controller as a Linux service on QRB5165 based platforms (VOXL 2 and VOXL 2 Mini).

voxl-px4

Overview

The voxl-px4 project is essentially a wrapper for the QRB5165 based build of the PX4 Flight Controller. The PX4 flight controller and other related components are open source projects and have extensive online documentation to describe what they are, how to use them, and how to develop with them. It is recommended to start with that documentation to build an understanding of PX4 and how it is generally used. This documentation focuses more on how the QRB5165 based implementation of PX4 is unique and the aspects of it’s use and/or development that differ from the standard use cases.

How PX4 is Packaged on VOXL 2

PX4 reaches a VOXL 2 as a pair of Debian packages built from three open-source repositories:

voxl-px4   Debian package + systemd service     gitlab.com/voxl-public/voxl-sdk/services/voxl-px4
└── px4-firmware   git submodule, pinned  ──►  github.com/modalai/px4-firmware   ModalAI's PX4 fork
                                                (upstream: github.com/PX4/PX4-Autopilot)

voxl-px4-params   Debian package               gitlab.com/voxl-public/voxl-sdk/utilities/voxl-px4-params
    per-vehicle parameter sets, selected by SKU and applied on top of PX4's defaults
  • ModalAI maintains its own fork of PX4 at github.com/modalai/px4-firmware. Active development happens on the voxl-dev branch. QRB5165 support is upstreamed to mainline PX4, but upstreaming takes time, so the tip of the fork always carries the newest VOXL support ahead of upstream.
  • The voxl-px4 project wraps that fork as a git submodule and provides the packaging and installation layer — the Debian package, the systemd service, and the startup configuration — that runs PX4 as a Linux service.
  • Parameters ship separately in the voxl-px4-params package. It holds per-PX4-version parameter sets: one file per vehicle platform (Starling 2, Sentinel, PX4 Autonomy Dev Kit, …) plus helper groups (radio, VOA, battery). These are subsets of non-default parameters applied over PX4’s defaults; they are applied by the voxl-configure-px4-params script (shipped in the same repo), whose arguments select the vehicle’s platform file — reading that script is the quickest way to see exactly which parameter files a given vehicle gets. It is invoked automatically, based on the vehicle’s SKU, by voxl-configure-mpa at the end of every SDK install.
  • Versions match by design: a voxl-px4 release tag pins the px4-firmware submodule at the fork tag of the same version. Both use the scheme v<upstream PX4 base>-<ModalAI revision>, so for example voxl-px4 v1.14.0-2.0.146 contains exactly the fork’s v1.14.0-2.0.146 source. The installed package version (dpkg -l voxl-px4 on target) therefore identifies the exact PX4 source it was built from.

Please refer to the following sections for more details. It is recommended to start with the system architecture section to get an idea of how the QRB5165 based build of PX4 differs from other implementations.


Table of contents