PX4 Autopilot is an open-source flight control system for drones and other uncrewed vehicles. It is currently utilized in industrial drone applications and consumer drones and is the leading research platform for drones. And it is made possible by a robust community of contributors working together to improve it daily. 

And speaking of improving it, the latest major release, v1.13 is available now. It has brought to life several new features and enhancements requested by the community, along with increased hardware compatibility.

“With the release of PX4 v1.13, we have seen a huge increase in performance across the board on our entire fleet, and with more than 2000 flight hours on 1.13, it has been extremely reliable as well.”

 Kyle Dorosz, President of Firefly Drone Shows, has seen the value of the new release,

What is in the release

Let’s get right to it and look at some of the highlights from the release. 

  • Explicit joystick source selection. This makes it possible to:
    • Explicitly allow just one source.
    • Fall back to another source in the air
    • Disable stick input completely
  • Estimate remaining flight time. How much longer can you fly? This will tell you so you can get the drone back safely, or the system automatically knows when to return home. The calculations are better than your gut (probably), and the algorithm continually improves based on actual flight data. More details on the battery improvements are below. 
  • Autonomous gentle touch down using distance sensor. If a distance sensor is present, the system can slow down the approach speed to improve the user experience – keeping it slower than land speed but quick enough, so it doesn’t drag out the landing time too much. 
  • Orbit Flight Mode improvements for approach smoothness, radius limiting, and stick input with heading not to the center 
  • And, since we all love when our drones try to avoid catastrophe, for drones fortunate enough to have a MAVLink parachute system, you can now determine the status of the chute before and after it is triggered. 

Additionally, dynamic control allocation was added. While it is disabled by default when enabled, it adds easy and flexible actuator configuration, support for more hardware setups with manual mixer file adjustments; and the possibility to dynamically adjust allocation in flight (e.g., rotor loss). You can see a flight demonstration of the new dynamic mixing system used in an omnicopter based on a design by Dario Brescianini (a parts list, build instructions, and instructions on the mixing system are in the notes on the video).

“The newly released dynamic control allocation drastically simplifies the actuator configuration in PX4 and extends the actuation possibilities a lot,” explains Beat Küng.  His colleague, Silvan Fuhrer adds, “Before Dynamic control allocation, it was much harder to set up a custom-built VTOL, for example. With PX4 1.13, the community will now be able to easily configure and fly vehicles which before required many code modifications to get airborne.”

Beat Küng, Senior Software Engineer & Silvan Fuhrer Software Engineer at Auterion and top PX4 contributors.

Expanded Sensor and Hardware Support

Of course, a variety of sensors bring features to the drones, and support was added or improved for a number of drivers, including: 

  • Barometer. Drivers were added for: 
    • Goertek SPL06
    • TDK ICP10100 & ICP10111
    • Maiertek MPC2520
    • TE MS5837
    • Bosch BMP390
  • Temperature and humidity. A driver was added for the Sensirion SHT3X hygrometer.
  • Inertial measurement unit (IMU). Drivers were added to support: 
    • TDK ICM42670p
    • BMI088 I2C (Support Improved)
  • Optical flow. Support for the Pixart PAA3905  
  • Power monitor. Drivers were added for the TI INA228 and TI INA238
  • GPS PPS input capture and NXP Ultra Wide Band (UWB) SR150

“PX4 1.13 is a major leap forward for the open source UAV community with more supported hardware targets like the ARKV6X flight controller, ARK RTK GPS, and ARK CANnode.” —Alex Klimaj, Founder of ARK Electronics, “PX4 v1.13 represents the best of what the open-source community can deliver. The possibilities are endless with the new control allocator; you can enable dynamic mixing and greater flexibility in airframe configuration and PWM output selection.”

Alex Klimaj, Founder of ARK Electronics

In addition to sensors, support for the following hardware was added/improved: 

  • Pixhawk FMUv6C
  • ARKV6X
  • ARK CAN RTK GPS
  • ARK CANnode
  • mRo Control Zero Classic
  • Holybro Kakute H7 
  • Diatone Mamba F405 MK2  flight controller
  • Matek GNSS-M9N-F4
  • Matek H743-slim
  • Raspberry Pi Pico
  • Sky Drones SmartAP Airlink
  • Advanced Technology Labs (ATL) Mantis EDU

Improved Cubepilot Support

Lastly, we have been working with the CubePilot team on improving PX4 support on their hardware. We are happy to announce their boards are now “Manufacturer Supported,” which means you can expect a great PX4 experience out of the box that comes with support from CubePilot engineers and PX4 dev team members.

“The CubePilot team has been part of the extended PX4 community for over 10 years now, working on the original Pixhawk hardware, hardware to enable UAVCAN (now DroneCAN), so we are pleased to announce that we will be working closely with the PX4 community to ensure that all our hardware works smoothly with the PX4 community. To the next ten years and beyond!”

Philip Rowse, CubePilot CTO

Battery Improvements

Speaking of protecting your drone, improvements were made in battery management so you can maximize flight time while also getting your drone back safely. These include: 

  • Estimate remaining flight time. Calculate the remaining flight time based on a heavily filtered “average” current consumption and the configured battery capacity.
  • Return to launch (RTL) is based on the remaining flight time estimation. The approach uses the remaining battery time from the battery estimation and compares it against a precise estimate of how long the RTL will take. RTL is triggered with a configurable margin, so there’s enough time to return before the battery is empty. The return time varies depending on the average current consumption and the distance the vehicle is away from where it wants to land again, e.g., home.
  • Default to electrical current-based load compensation. Use the actual resistance if a current reading is available; otherwise, use the updated default value for the internal resistance of a battery – a conservatively low value of 5mOhm; increase default empty cell voltage to 3.6v. The chart below documents what we were seeing and the improvements.

Thanks to all our contributors

Driving the advancements in the release was 10 months of work and nearly 8,000 commits from 140 contributors.

Commits by Organization
Top 10 Contributors

More Information

You can read the condensed release notes here and the full release notes here

How to get the release

You can get the latest release (and older ones) directly from GitHub. You can build the source or try the pre-built binaries that can be found now on the GitHub releases for the PX4 Autopilot repository. You can also load v1.13 directly into your supported flight controller of choice using QGroundControl, through the same procedures as before.

Additional Resources

PX4 on YouTube

PX4 projects on Hackster

PX4 Software Overview 

PX4 User Guide

PX4 Getting Started Guide

PX4 on Discord

PX4 Contribution Stats on LFX Insights

About

PX4 is an open-source flight control software for drones and other uncrewed vehicles. The project provides a flexible set of tools for drone developers to share technologies to create tailored solutions for drone applications. PX4 is hosted by Dronecode, a Linux Foundation non-profit.