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).

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-devbranch. 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-paramsscript (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-px4release tag pins thepx4-firmwaresubmodule at the fork tag of the same version. Both use the schemev<upstream PX4 base>-<ModalAI revision>, so for examplevoxl-px4v1.14.0-2.0.146 contains exactly the fork’s v1.14.0-2.0.146 source. The installed package version (dpkg -l voxl-px4on 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
- Hardware
- System Architecture
- Param Files and Log Files
- Configuration and Startup Script
- Connectivity
- VOXL 2 PX4 Developer and Build Guide
- VOXL2 PX4 HITL
- M0197-FPV Hardware-in-the-Loop- Hardware-in-the-loop simulation for VOXL2 FPV platforms using Gazebo Sim
- PX4 Simulation in Hardware (SIH)