
PX4 Autopilot, the open-source flight control system for uncrewed vehicles, has released its latest stable version, v1.16.0. Building on the momentum of v1.15, this update brings major functional upgrades, new hardware support, and deeper integration for developers across all platforms.
With contributions from our global community, the newest additions in PX4 v1.16 include bidirectional ESC protocols, a full rover architecture overhaul, more reliable simulation, smarter middleware tools, and built-in log encryption. Let’s dive into the key highlights.
Link to the full release notes.
Rover Support Rework

PX4 v1.16 reworks rover support from the ground up and no longer takes a one-size-fits-all approach. We now provide a dedicated rover firmware image for airframe IDs 50000-52000 tailored to wheeled robots. Instead of a single controller handling every drive style, PX4 includes separate modules for Ackermann, differential, and mecanum rovers that all share a pure-pursuit guidance library. This setup delivers consistent and reliable path following. The legacy rover controller will remain for backwards compatibility but is now deprecated. By isolating each drive style in its own module, maintenance, extension, and fine-tuning become much simpler and avoid cross-module interference.
At startup, PX4 reads your airframe ID and loads the matching rover module. Each module offers manual, acro, stabilized, position, and auto modes while relying on the shared guidance library to translate waypoints into steering and velocity setpoints. The guidance library uses a lookahead circle algorithm to compute lateral and heading errors and feeds those into PX4’s standard control allocators. This clear separation of drive-specific logic keeps each rover module lean, testable, and ready for new wheel configurations.
Bidirectional DShot Support

PX4 v1.16 brings native bidirectional DShot support sponsored by ARK. Instead of only sending throttle commands over the signal line, PX4 can now read RPM data back from the ESC on that same interface. That’s right, now your motors can talk back to the flight controller and tell it what they are doing. This eliminates extra wiring for telemetry, enables closed-loop speed control, and makes RPM-based thrust estimation available on any DShot-capable ESC. This means less complexity, faster and more resilient verification, and greater adaptability.
When the DSHOT_BIDIR_EN parameter is enabled, PX4 detects available DMA channels and timers at boot. It first configures a timer in burst mode to send commands, then switches that timer into capture-compare mode to record ESC telemetry pulses. On boards with four DMA channels, all channels are captured in parallel; on others, PX4 falls back to a round-robin capture scheme. An HRT callback processes the incoming pulse frames to compute RPM and publishes them on the uORB ESC_STATUS topic. This design reuses existing hardware resources, keeps overhead minimal in the flight loop and slots seamlessly into PX4’s real-time architecture.
Link to updated DShot telemetry.
Simulation Enhancements with Gazebo Harmonic LTS

In v1.16, we replaced Gazebo Garden with Gazebo Harmonic, the long-term-support release to avoid end-of-life issues and align with the upstream LTS schedule. The default installer scripts and documentation now fetch the Harmonic packages by name, and our CI workflows launch gzserver and gzclient from that release. Users can keep running make px4_sitl gz_<vehicle> as before and enjoy a stable API, consistent physics plugin behavior, and ongoing bug fixes.
We’ve done some housekeeping on the plumbing to make the transition as seamless as possible. Behind the scenes, the SITL CMake macros point to the Harmonic branches, the Docker images used in CI have been rebuilt with Harmonic dependencies, and the SDF worlds and plugin paths were updated for full compatibility. This ensures reproducible simulation environments across development machines and CI runners on Ubuntu (22.04 and newer). Teams benefit from fewer regressions, a clearer upgrade path, and faster access to Gazebo community patches.
Link to Gazebo Simulation for PX4.
Dynamic ROS 2 Message Translation Node
For systems that mix PX4 versions or custom message definitions, the new ROS 2 Message Translation Node lets you translate PX4 uORB messages from one version to another at runtime. It sits between the PX4 middleware and your ROS 2 network so you can run nodes that expect different message schemas without rebuilding or maintaining parallel bridges. In practice, you launch the translator alongside your normal PX4 ROS 2 interface and point it at a YAML mapping file that specifies how fields are renamed, added, or dropped. That way, you can phase in new uORB fields or support legacy ground stations without disrupting existing nodes.
Under the hood, the translator uses ROS 2’s type introspection and the DynamicMessage features of the rmw implementation. It subscribes to the original topic with its native message type, uses the introspection API to unpack the payload into a generic container, applies your field‐mapping rules, and then repackages the result into the target message definition before publishing on a new topic. All of this happens without code generation or plugins, so you can handle arbitrary uORB-to-uORB or uORB-to-ROS 2 message translations entirely at runtime. Quality-of-service settings from the source subscription are carried over to the translated publisher to preserve reliability and deadline guarantees, making this a seamless, low-overhead solution for mixed-version deployments.
Link to ROS 2 Message Translation docs for PX4.
Seamless Log Encryption
-------------------------
| Header |
-------------------------
| Wrapped symmetric key | <---
-------------------------
| Encrypted ulog data |
-------------------------
PX4 v1.16 integrates ChaCha20-based log encryption with RSA key wrapping to simplify secure data handling. This is an intuitive and dynamic double lock system that will keep your sensitive log data secure from interception, or post-crash downloading and hacking. When a flight starts, PX4 generates a random ChaCha20 key and uses it together with a stored nonce to encrypt all log packets, guaranteeing both confidentiality and integrity. That ChaCha20 key is then encrypted with the user’s public RSA key via OAEP and placed in the log header. During decryption, the private RSA key unwraps the ChaCha20 key, which in turn decrypts the log payload. This self-contained design removes the need for separate key files, cuts down on manual key management, and plugs directly into automated pipelines for secure log processing.
Link to seamless log encryption.
Expanded Hardware and Sensor Support
In v1.16, flight controller support expands through close collaboration with our hardware partners.

Auterion Skynode S – Compact all-in-one solution with onboard compute, sensors, and secure connectivity made for PX4
ARK FPV FC – Delivers race-ready performance and advanced tuning options, based on the ARKV6X.
NXP Semiconductor Tropic VMU – Board for Teensy 4.1, bringing efficient MCU integration and low-latency I/O
ZeroOne x6 – Board designed for rapid prototyping and flexible payload interfaces
CUAV 7-Nano and MicroAir variants – New boards that enhance GNSS capability
BlueRobotics Navigator – New board to support underwater vehicle control
3DR Control Zero H7 OEM Rev G – Built for production-grade deployments
Feikong Technology Corvon743v1 and X-MAV AP-H743v2 – Expands the flight controller market, giving users a broad spectrum of flight controller choices
Sensor support has been strengthened with key additions and improvements. AUAV’s absolute and differential pressure sensors provide high-accuracy flow and altitude data. Texas Instruments’ INA228 and INA238 temperature monitors ensure reliable thermal tracking under changing loads. Bosch brings both the BMP581 barometer and BMM350 magnetometer for robust environmental sensing. Murata’s SCH16T IMU and ST’s IIS2MDC magnetometer broaden inertial and heading accuracy. Asahi Kasei Microdevices’ AK09915 digital compass delivers refined heading performance. The Ublox ZED-F9P-15B receiver enhances multi-constellation GNSS support. Distance sensor data now flows directly into DDS topics, and the updated compass calibration automatically disables onboard units when an external compass is present, reducing noise and false alarms.
These updates showcase the growing diversity of hardware in the PX4 ecosystem and evolving support for open hardware within the aerial robotics space.
Flight Testing

PX4 v1.16 has been through an extensive flight testing campaign led by the Ascend Engineering team with support from the wider community. From the first 1.16-alpha builds through to the 1.16-rc3 release candidate, we collected and analyzed more than 70 flight logs across a wide range of vehicles and configurations.
This level of real-world validation helps us catch regressions early, fine-tune performance, and ensure a stable release for everyone. Our thanks go out to every pilot, engineer, and tester who contributed their time and hardware to make v1.16 better. You can browse the full set of test logs and discussions here: PX4 v1.16 Flight Testing.
And Much More…
This release also includes dozens of bug fixes, smaller improvements, and quality-of-life changes that may not be headline features but still make a real difference. Many of these are behind the scenes, improving stability, reliability, and overall performance across the stack.
You can explore the full list of changes in the PX4 v1.16 Release Notes.
Community Contributions and How to Get the Release
In the v1.16 cycle, the PX4 community delivered 1557 commits from 122 contributors. Forty-five of those developers made their first PX4 pull request, a clear sign of a project that continues to grow and attract new talent. Thank you to everyone who wrote code, fixed bugs, or improved our docs.
Top 10 contributors by commit count
- Matthias Grob — 155 commits
- Daniel Agar — 148 commits
- Silvan Fuhrer — 148 commits
- Mathieu Bresciani — 147 commits
- Julian Oes — 79 commits
- Jacob Dahl — 75 commits
- Christian Friedrich — 62 commits
- Hamish Willee — 55 commits
- Ramón Roche — 47 commits
- Peter van der Perk — 44 commits
Getting the Release
Read the full release notes on the PX4 documentation portal and download the v1.16.0 firmware from our GitHub releases page. To build from source or flash via QGroundControl, follow the same steps as before.
We welcome your feedback and issue reports on GitHub. Enjoy the new release and happy flying!