August 31, 2026 PX4 Weekly Dev Update: Core System Stabilization and Simulation Enhancement
PX4 Weekly Integrated Briefing
This week’s PX4-Autopilot development trends are characterized by a strong focus on stabilizing core flight control systems, improving drivers, and enhancing the simulation environment. A significant number of Pull Requests have been dedicated to bug fixes and feature enhancements for UAVCAN and IMU drivers, which can be seen as part of the ongoing effort to ensure reliability across various hardware platforms. Notably, the attempt to upgrade the platform to NuttX 12.12.0 is a crucial move towards strengthening foundational technologies and optimizing performance across the entire system.
Furthermore, the addition of dual IMU SIH (Software-in-the-Loop) and multi-battery simulation capabilities enables developers to test and validate drone software in more complex and realistic environments, contributing to the safety and reliability of autonomous flight systems. The continuous work on adding support for multiple boards and optimizing flash memory usage clearly demonstrates PX4’s strategic direction to encompass a wide spectrum of hardware specifications and maintain high performance even with limited resources. Overall, this week highlighted the PX4 community’s active pursuit of both stability and scalability.
PX4 Releases and Key Changes by Version
The most recent official release is **PX4 Autopilot v1.18.0-beta2**, distributed on August 09, 2026. This pre-release version is intended for flight testing and focuses on resolving key issues identified since the previous beta1 version and enhancing stability.
v1.18.0-beta2 GitHub Release Details Page
Key changes include:
- Flight Control and Navigation:
- Fixed potential NaN errors during zero-velocity flight in fixed-wing mode (
eas2tas). - Corrected malfunction caused by incorrect attitude frame in tailsitter aircraft.
- Improved navigation logic to correctly handle the
DO_JUMPmission item. - EKF2: Resolved hard reset issues while external position estimates were active. Corrected DroneCAN rangefinder out-of-range readings from being fused into terrain information.
- Added time-based fixed-wing takeoff climbout feature (
feat(fw): time based fixed-wing takeoff climbout, #28427).
- Fixed potential NaN errors during zero-velocity flight in fixed-wing mode (
- Drivers and Hardware Support:
- Addressed SD card read corruption issue (NuttX SDMMC cache consistency) on STM32H7 boards.
- Improved FlexSPI DLL calibration at boot on FMUv6X-RT boards, fixing load-dependent hardfaults.
- Improved parameter storage stability by moving FMUv6X-RT FRAM multi-page writes and
flashparamscompression logic to boot time. - Separated GPS RTCM correction and moving baseline data into distinct uORB topics for processing.
- Applied heater sensor ID parameter name changes for CUAV X25-mega board.
- FMUv4 (Pixracer) board: UAVCAN, uXRCE-DDS, mag bias estimator, and SIH features are excluded from the default build to free up flash memory. This is a significant change for resource-constrained boards.
- Added new IMU drivers (LSM6DSV 80X/320X, IIM-20670).
- Added support for ARK FMU-v6XRT board.
- Ground Control Station and Communication:
- QGC compatibility: Fixed regression errors caused by strict command validation for multicopter guided takeoff, camera mission items, and VTOL landing patterns.
- Adjusted MAVLink receive thread stack size.
- Safety and Monitoring:
- Improved logic to prevent RTL (Return To Launch) trigger when battery remaining time is undetermined.
- Added
COM_PARACHUTEwarning-only mode. - Improved multicopter autotune functionality to allow re-triggering without reboot.
- Added pre-arm battery voltage delta check feature (
feat(commander): add pre-arm battery voltage delta check, #27709).
Core GitHub Updates (PX4-Autopilot)
Over the past 7 days, active development has been observed in the PX4-Autopilot GitHub repository. Specifically, Pull Requests (PRs) focusing on stability, feature expansion, and resource optimization across various domains have been merged, and important Issues have been discussed.
Merged Key Pull Requests (Closed PRs)
The PRs merged this week include many changes that contribute to system stability and hardware scalability. Improvements to the CAN/UAVCAN stack and sensor drivers are particularly notable.
- fix(crsf_rc): reject truncated variable-length status frames: Increased stability in the CRSF RC protocol by rejecting truncated variable-length status frames.
- fix(navigator): do not report the end of a mission as a storage failure: Improved user experience by fixing a bug that incorrectly reported mission completion as a storage failure.
- fix(ark/fmu-v6xrt): size the IOB pool for CAN receive: Appropriately sized the IOB (I/O Buffer) pool for CAN reception on the ARK FMU-v6XRT board.
- fix(ekf2): avoid failover to an instance with a failing test ratio: Enhanced estimation reliability in EKF2 by preventing failover to instances with a failing test ratio.
- fix(battery_status): keep analog filter state across parameter updates: Modified battery status detection to retain analog filter state across parameter updates.
- fix(mc_pos_control): handle rejected velocity filter cutoffs: Improved logic in multicopter position control to handle rejected velocity filter cutoffs.
- fix(ark/fmu-v6xrt): start the BMP390 as internal on Shared I2C2: Corrected ARK FMU-v6XRT to start the BMP390 barometer as an internal sensor on Shared I2C2.
- fix(rc): reject invalid ST24 packet lengths: Strengthened RC communication robustness by rejecting invalid packet lengths in the ST24 RC protocol.
- fix(testcards): Update mc_10_optical_flow_gps_mixed.md: Fixed a bug in the test card document.
- fix(commander): capture home altitude on the ground before motors spin: Made home position setup more accurate by capturing home altitude on the ground before motors spin.
- feat(boards): add the ARK FMU-v6XRT: Officially added support for the ARK FMU-v6XRT board, a significant step in expanding new hardware platform support.
- [BACKPORT 1.18] fix(ci): publish flashable CAN node firmware & fix(ci): publish flashable CAN node firmware: Fixed CI pipeline bugs related to publishing flashable firmware for CAN nodes.
- feat(sensors): classify sensors independently of bus topology: Enhanced sensor configuration flexibility by improving sensor classification to be independent of bus topology.
- fix(drivers/imu): clip FIFO samples against the declared range, not the int16 rail: Improved data accuracy in IMU drivers by clipping FIFO samples to within the declared range.
- fix(drivers/invensense): leave FIFO_HIRES_EN off when publishing 16-bit, fix(drivers/invensense): drop invalid gyro FIFO samples, fix(drivers/invensense): always publish full-scale FIFO data: Improved data processing logic for Invensense IMU drivers, fixing FIFO-related bugs and ensuring data publishing consistency.
- refactor(sensors)!: replace SENS_INT_BARO_EN with CAL_BAROn_PRIO: Refactored sensor parameters to improve clarity in barometer sensor priority settings.
- fix(ark): pin the primary IMU on fmu-v6x and pi6x: Corrected to pin the primary IMU on ARK fmu-v6x and pi6x boards.
- fix(drivers/imu/invensense/icm45686): constant scale and DRDY timestamps: Fixed scale and timestamp-related bugs in the ICM45686 IMU driver.
- feat(drivers/imu/st/lsm6dsv): LSM6DSV 80X and 320X & feat(drivers/imu/invensense/iim20670): add the IIM-20670 driver: Added new ST and Invensense IMU drivers, expanding sensor compatibility.
- refactor(drv_hrt): out-line hrt_elapsed_time to save flash, refactor(px4_work_queue): out-line ScheduledWorkItem ctor and ScheduleNow, refactor(mavlink): de-templatize handle_message_command_both to save flash, refactor(platform): out-line BusCLIArguments constructor to save flash, refactor(mavlink): make streams_list constexpr to save flash and RAM: Multiple refactoring PRs contributed to optimizing flash memory usage, which is critically important for resource-constrained boards.
- fix(dshot): set telemetry bit on DShot commands & fix(dshot): retry EDT enable until the ESC confirms it: Improved DShot communication stability by fixing telemetry bit setting and EDT enable retry logic in the DShot protocol.
- feat(dshot): EDT and BDShot HAL contract on i.MX RT: Added DShot EDT and BDShot HAL contract features for i.MX RT boards.
- fix(mavlink): safely expand cached FTP replies: Improved safety in MAVLink FTP reply handling.
- feat(heater): add more temp sources & heating modes: Enhanced environmental adaptability by adding more temperature sources and heating modes for heater control.
- fix(logger): correct mission log lifecycle for SDLOG_MODE 2 and 4: Ensured logging accuracy by correcting the mission log lifecycle for SDLOG_MODE 2 and 4.
- refactor(lib): take AlphaFilter time parameters in microseconds: Refactored AlphaFilter to accept time parameters in microseconds, increasing precision.
- fix(gz_bridge): support GPS failure injection: Modified the Gazebo bridge to support GPS failure injection, extending test coverage in simulation environments.
- [BACKPORT] fix(px4/fmu-v6xrt): give LPUART1/8/11 a 600-byte RX buffer: Improved UART communication stability by allocating a 600-byte RX buffer to LPUART1/8/11.
- feat(uavcan): SocketCAN CAN FD, dual-CDC SLCAN, and STM32H7 FDCAN bring-up: Significantly enhanced the UAVCAN communication stack by adding SocketCAN CAN FD, dual-CDC SLCAN, and STM32H7 FDCAN support.
- feat(boards/px4_fmu-v6x): add BMP581 fallback support [1.18]: Added BMP581 barometer fallback support to PX4 FMU-v6x boards.
- build(uxrce_dds_client): fix Micro-XRCE-DDS client build with GCC 14: Resolved Micro-XRCE-DDS client build issues with GCC 14.
- feat(fw): time based fixed-wing takeoff climbout: Improved takeoff sequences for fixed-wing aircraft by adding a time-based takeoff climbout feature.
- fix(motion_planning): stop auto setpoint drifting past an unreached waypoint: Corrected an issue where auto setpoints would drift past an unreached waypoint.
- fix(mavlinkftp): increase session timeout to 30s: Increased MAVLink FTP session timeout to 30 seconds to support more stable file transfers.
- fix(ekf2): prevent mag resets after manual heading: Maintained EKF2 consistency by preventing magnetic resets after manual heading.
- feat(actuators): Add option to center the UAVCAN servo: Improved actuator control by adding an option to center the UAVCAN servo.
- feat(commander): add pre-arm battery voltage delta check: Increased safety by adding a feature to detect battery voltage changes before arming.
In-depth Analysis of Open Critical Issues
Several important issues continue to be actively discussed this week. Particularly, bugs related to flight stability and MAVLink communication are drawing attention.
- [Bug] v1.17.0 – Altitude spikes in fixed wing mode: A bug where altitude spikes occur in fixed-wing mode in v1.17.0. Labeled
scope:estimation, it requires continuous attention as it can directly impact flight stability. This issue has been discussed for a long time with 19 comments. - COMMAND_INT: frame is ignored for altitude — DO_SET_ROI_LOCATION always treats z as AMSL: An issue where the altitude frame is ignored in
COMMAND_INTmessages, andDO_SET_ROI_LOCATIONalways treats z as AMSL (Above Mean Sea Level). This MAVLink command interpretation inconsistency can affect accurate mission execution. - mc_nn_control: action range mismatch disarms a motor at one end and saturates at the other: A problem reported in
mc_nn_controlwhere an action range mismatch causes a motor to disarm at one end and saturate at the other. Labeledstatus:needs-triage, this poses a potential risk of unexpected motor behavior during flight. - Impossible to initialize RAMTRON: An issue related to RAMTRON initialization failure. This is a low-level problem that can affect hardware parameter storage and loading and may appear on specific boards or firmware versions.
- [Bug] Sagetech Flight ID decoder can overflow destination buffer: A potential bug where the Sagetech Flight ID decoder can cause a buffer overflow. This is a security and stability concern that could lead to system instability during data processing.
- should GPS parsers enforce message-specific payload lengths?: A discussion on whether GPS parsers should enforce message-specific payload lengths. This is a question about an important design decision to enhance the robustness of GPS data processing.
Among the open PRs, feat(platforms): upgrade NuttX to 12.12.0 (#26215) remains open with 72 comments and multiple scopes (including risk:safety-critical), indicating that the NuttX core OS upgrade has a significant and carefully managed impact across the PX4 system. Additionally, feat(simulator_xplane): add X-Plane SITL backend... (#27472) suggests a significant long-term task for expanding the simulation environment.
Weekly Dev Call & Community Trends
Weekly Dev Call Highlights
The PX4 Dev Call took place on Wednesday, August 26, 2026. This call, a regular team synchronization and community Q&A session, likely covered discussions on past week’s GitHub activity and upcoming development directions. It serves as a crucial forum where key developers and community members gather to share the latest issues and progress, and to make important decisions.
Key Community Questions and Solutions (Discourse Forum)
The Discourse forum facilitates the sharing of various technical questions and solutions arising from real-world development and operational environments. This week, topics related to hardware integration and advanced feature implementation were particularly prominent.
- PX4 Autopilot Section:
- FMU-v6X-RT (i.MX RT1176) — recurring HardFault: A report of recurring hardfaults on the FMU-v6X-RT board was made. This explains the active bug fixes related to this board on GitHub (e.g.,
fix(ark/fmu-v6xrt)PRs) and shows that board stability is a current critical task. - No Bidirectional DShot / EDT telemetry on PX4 (Works on Betaflight): This issue concerns the bidirectional DShot/EDT telemetry feature not working on PX4. It is directly related to the DShot-related
featandfixPRs on GitHub (e.g., #28412, #28436, #28438), reflecting the community’s demand for actual implementation and stabilization of this feature. - Real-Time Non-Linear Derivative Filter Engine for IMU Vibration Mitigation: A discussion on a real-time non-linear derivative filter engine for IMU vibration mitigation took place, with a request for raw flight logs. This indicates active research and development efforts to improve flight performance and IMU data quality.
- FMU-v6X-RT (i.MX RT1176) — recurring HardFault: A report of recurring hardfaults on the FMU-v6X-RT board was made. This explains the active bug fixes related to this board on GitHub (e.g.,
- Pixhawk Section:
- Solution: Jetson Orin (Seeed A603) UART not receiving (Silent) after JetPack upgrade: A solution was shared for a UART reception issue (silent) when connecting Jetson Orin with PX4 TELEM2 after a JetPack upgrade. This is a good example illustrating practical problems and their solutions when integrating Pixhawk-based systems with companion computers.
- Dronecode Section:
- Hiring: Founding Engineer / potential Technical Co-Founder: A job posting for a founding engineer / potential technical co-founder for an aerial camera platform in Austin, TX, was shared. This indicates active commercial utilization and startup activities within the Dronecode ecosystem.
Sub-system Trends (MAVLink, MAVSDK, QGC)
MAVLink
While no new MAVLink threads were created on the Discourse forum, important MAVLink-related PRs continue to be processed in the GitHub repository. For example, feat(mavlink): serve packed parameters as @PARAM/param.pck (#28435) is a significant feature for streamlining parameter management via MAVLink, and fix(mavlink): honor COMMAND_INT frame for altitude on global-frame commands (#28372) is a correction for accurate MAVLink command interpretation. fix(mavlinkftp) and refactor(mavlink) related PRs contribute to MAVLink FTP stability and flash memory efficiency improvements in the MAVLink codebase. This demonstrates the continuous refinement of the MAVLink protocol as a core communication method for PX4 systems.
MAVSDK
On the MAVSDK forum, users inquired about acceleration setpoint features, showing interest in advanced flight control.
These two threads indicate active community exploration of precise autonomous flight control using MAVSDK, particularly acceleration-based control. This suggests that MAVSDK is being used not just for simple command transmission but also for implementing dynamic and sophisticated flight missions. Questions about the accurate operation of acceleration setpoints and related issue reports highlight the potential need for a deeper understanding and improvement of the interaction between PX4 firmware control loops and the MAVSDK interface.
QGroundControl (QGC)
In the QGroundControl section, a post titled “Experts in QGroundControl Wanted” appeared. This indicates a demand for personnel with specialized knowledge for specific feature development, customization, or complex problem-solving within QGC. As the core ground control station for PX4-based drone systems, QGC provides a wide range of functionalities including user interface, mission planning, and telemetry monitoring. Therefore, the demand for QGC experts can be interpreted as a natural phenomenon as the PX4 ecosystem matures and finds application in various industry sectors.
