Skip to content

PX4-Autopilot v1.18.0 Release Notes

Beta

PX4 v1.18 builds on PX4 v1.17

WARNING

PX4 v1.18 is in beta testing. Update these notes with features that are going to be in v1.18. For new features that aren't going into v1.18, update main.

Прочитайте перед оновленням

Please continue reading for upgrade instructions.

Основні зміни

  • New Guided Course flight mode (Fixed-Wing). Holds a constant ground-track bearing, altitude, and airspeed with no manual input, controllable in flight from a GCS via MAV_CMD_GUIDED_CHANGE_HEADING, MAV_CMD_DO_CHANGE_ALTITUDE, and MAV_CMD_DO_CHANGE_SPEED. (PX4-Autopilot#27156)
  • Software Bill of Materials (SBOM). Every firmware build now automatically generates an SPDX 2.3 SBOM describing the sources that went into it (opt out with PX4_SBOM_DISABLE=1). (PX4-Autopilot#26731)
  • MAVLink signing is now spec-compliant (breaking change). Signing activates only when a valid key is present on the SD card, SETUP_SIGNING is accepted on any link (not just USB) but rejected while armed, and signing can be disabled with a signed all-zero key. The non-standard MAV_SIGN_CFG parameter was removed, and there is zero CPU/bandwidth overhead when signing is inactive. (PX4-Autopilot#26894)
  • Manual control (RC) override reworked (breaking change). The pilot now regains control based on how fast a stick is moved rather than by how far it is deflected. New MAN_OVERRIDE_SPD (normalized stick travel per second, default 1, negative to disable) replaces the removed COM_RC_OVERRIDE bitmask and COM_RC_STICK_OV threshold; override now applies uniformly across auto and offboard modes. Existing COM_RC_OVERRIDE=0 settings migrate to MAN_OVERRIDE_SPD=-1. Affects multicopters and VTOLs in MC mode. (PX4-Autopilot#27041)
  • Runtime EKF2 sensor fusion control over MAVLink. Fusion sources can now be toggled at runtime (VEHICLE_CMD_ESTIMATOR_SENSOR_ENABLE), a new EKF2_SENS_EN bitmask (replacing EKF2_EN_BOOT) selects enabled fusion sources, and a new ESTIMATOR_SENSOR_FUSION_STATUS MAVLink stream reports intended and active fusion masks to the GCS. (PX4-Autopilot#26739)
  • Per-receiver GPS configuration. Antenna lever-arm offsets, measurement delay, and device-ID matching moved from single global EKF2 parameters to per-receiver SENS_GPS{0,1}_* sets, enabling correct multi-GPS blending. Removes EKF2_GPS_POS_X/Y/Z and EKF2_GPS_DELAY (auto-migrated). (PX4-Autopilot#26634, PX4-Autopilot#26660)
  • UAVCAN node firmware flashing from the SD card. The UAVCAN server can now flash connected CAN nodes directly from .bin files on the SD card, tracking versions in an FW.db database and reflashing any node whose version does not match. (PX4-Autopilot#27043)
  • Serial Passthrough over MAVLink. The new serialpassthrough driver lets MAVLink clients read from and write to flight controller serial ports (TEL1/2, GPS1/2, TEL3/4) via SERIAL_CONTROL, so connected devices can be configured without unplugging them from the vehicle. On STM32F7/H7 boards, ESC signal pins can also be written via a software bit-bang UART. (PX4-Autopilot#27605)
  • PX4 for ModalAI VOXL 2 ships as a Debian package. The separate VOXL 2 board variants were merged into a single build, packaged as voxl-px4_*_arm64.deb in CI and published with every PX4 release. (PX4-Autopilot#26727)
  • Hardware bench testing (px4bench). New toolkit (Tools/bench_test/) for automated firmware qualification on a real flight controller over USB: it flashes and verifies the firmware identity, runs boot, communication, storage, parameter-persistence, and serial-loopback checks, and can fly a full SIH auto mission on the FMU itself, writing machine-readable reports with full firmware traceability. See Hardware Bench Testing. (PX4-Autopilot#27823)

Інструкції для оновлення

For users upgrading from v1.17, please take a moment to review the following before flying:

  1. Re-check manual control override behaviour. The pilot now regains control based on how fast a stick is moved rather than by how far it is deflected, and override applies uniformly across auto and offboard modes. The COM_RC_OVERRIDE bitmask and COM_RC_STICK_OV threshold are replaced by MAN_OVERRIDE_SPD (normalized stick travel per second, default 1, negative to disable). COM_RC_OVERRIDE=0 is migrated to MAN_OVERRIDE_SPD=-1; any other customization must be re-tuned. Affects multicopters and VTOLs in MC mode. (PX4-Autopilot#27041)

  2. Re-provision MAVLink signing. Signing is now spec-compliant: it activates only when a valid key is present on the SD card, and the non-standard MAV_SIGN_CFG parameter has been removed. SETUP_SIGNING is accepted on any link but rejected while armed. If you used signing in v1.17, re-provision the key from your GCS and confirm it supports the standard flow. (PX4-Autopilot#26894)

  3. Migrate EKF2 fusion source selection.EKF2_EN_BOOT is replaced by the EKF2_SENS_EN bitmask selecting which sensor fusion sources are enabled; fusion sources can additionally be toggled at runtime over MAVLink. (PX4-Autopilot#26739)

  4. Verify per-receiver GPS configuration. Antenna lever-arm offsets and measurement delay moved from the global EKF2_GPS_POS_X/Y/Z and EKF2_GPS_DELAY parameters to per-receiver SENS_GPS0_* / SENS_GPS1_* sets matched by device ID. Values are auto-migrated, but multi-GPS setups should verify each receiver's offsets after upgrading. (PX4-Autopilot#26634, PX4-Autopilot#26660)

  5. Review log rotation defaults. Log rotation is now enabled by default: each log file is capped at SDLOG_MAX_SIZE (default 1024 MB) and cleanup keeps at least (100 - SDLOG_ROTATE)% of the disk free (default 10%), running at log start rather than boot. SDLOG_DIRS_MAX is now an orthogonal directory-count cap defaulting to 0 (disabled) and no longer enforces the old implicit ~300 MB free-space floor; if you relied on that floor, set SDLOG_ROTATE instead. See Log Cleanup.

  6. Update custom logger topic files.etc/logging/logger_topics.txt on the SD card is now appended on top of the selected logging profile instead of replacing the entire topic set. Keep only the extra topics you want in the file. (PX4-Autopilot#27462)

  7. Check removed commander parameters.COM_FLT_PROFILE, COM_KILL_DISARM, COM_MOT_TEST_EN, COM_TAKEOFF_ACT, COM_HLDL_REG_T, COM_ARM_SDCARD, COM_IMB_PROP_ACT, COM_OBC_LOSS_T, and COM_LKDOWN_TKO are removed and their previous default behaviour is now fixed (see the removed-parameters table under Common). In particular, the vehicle now always switches to Hold after takeoff; if you relied on COM_TAKEOFF_ACT to continue into a mission, take off in Mission mode instead.

  8. Migrate landing yaw/position nudging.MPC_LAND_RC_HELP is replaced by Bit 1 of MPC_AUTO_NUDGING (auto-migrated). Bit 0 enables the new yaw nudging in all auto modes. (PX4-Autopilot#27691)

  9. Re-tune motor failure detection offsets.MOTFAIL_LOW_OFF and MOTFAIL_HIGH_OFF are replaced by a single MOTFAIL_OFF (default 10 A) triggering on absolute current deviation. (PX4-Autopilot#26990)

  10. Update GCS/companion software that uses deprecated MAVLink request commands.MAV_CMD_REQUEST_AUTOPILOT_CAPABILITIES, MAV_CMD_REQUEST_PROTOCOL_VERSION, MAV_CMD_GET_HOME_POSITION, MAV_CMD_REQUEST_FLIGHT_INFORMATION, and MAV_CMD_REQUEST_STORAGE_INFORMATION are removed; use MAV_CMD_REQUEST_MESSAGE instead. (PX4-Autopilot#27251, PX4-Autopilot#27252)

  11. Update AFBR-S50 startup scripts. The -r command-line rotation flag is removed; set the mounting orientation via SENS_AFBR_ROT instead. (PX4-Autopilot#27385)

Підтримка обладнання

New Flight Controllers

  • CUAV X25-MEGA: STM32H743 autopilot for commercial integration, with triple-redundant heated IMUs (ADIS16607 primary), dual barometers, and an RM3100 compass. (PX4-Autopilot#26664)
  • CUAV X25-SUPER: STM32H743 autopilot in the same family as the X25-MEGA, with a Murata SCH16T primary IMU, triple-redundant heated IMUs, dual barometers, and an RM3100 compass. (PX4-Autopilot#26474)
  • Corvon V5: Pixhawk FMUv5-standard board (STM32F765) with triple IMUs (ICM-20689, ICM-20602, BMI088), IST8310 magnetometer, and MS5611 barometer. (PX4-Autopilot#26286)
  • Corvon 743v2: upgrade of the 743v1 with dual IMUs (ICM-42688P, BMI088), BMP581 barometer, a DJI O4 Air Unit connector, and onboard Bluetooth. (PX4-Autopilot#27569)
  • AEDROX AEDROXH7: STM32H743-based FPV/racing flight controller (ICM-42688-P IMU, DPS310 barometer, W25N NAND flash, MAX7456 OSD, 8 bidirectional-DShot outputs). (PX4-Autopilot#27226)
  • CBUnmanned H753-SOM: System-on-Module built around the STM32H753 with dual ICM-42670-P IMUs, designed to be mounted on a vehicle-specific carrier board. (PX4-Autopilot#27234)
  • 3DR Control N1: compact low-profile STM32H743 flight controller (dual IIM-42653 IMUs, AK09940A magnetometer, DPS368 barometer) for use with a carrier board. This board bring-up also introduced the AKM AK09940A magnetometer driver. (PX4-Autopilot#27395)
  • ARK FMU-v6s: a low-cost variant of the ARK V6X (single IIM-42653 IMU, IIS2MDC magnetometer, BMP390 barometer). (PX4-Autopilot#26631)
  • Gear Up AirBrainH743: STM32H743 flight controller with DPS310 barometer, LIS2MDL magnetometer, and 128 MB NAND flash for SD-card-free logging. (PX4-Autopilot#26239)
  • X-MAV AP-H743r1: STM32H743 autopilot with a dedicated STM32F103 IO processor, dual IMUs (ICM-42688-P or BMI270 depending on version), and SPL06 barometer. (PX4-Autopilot#25967)
  • MicoAir H743-Lite: compact STM32H743 flight controller with an ICM-45686 IMU and integrated Bluetooth telemetry. (PX4-Autopilot#25777)
  • SVehicle-E2: STM32H753 autopilot with a dedicated STM32F103 IO processor, triple IMUs (BMI088, ICM-42688-P, ICM-20649), and dual ICP-20100 barometers. (PX4-Autopilot#25578)

New Build Targets for Existing Hardware

  • Airship build variant for the FMU-v6x (make px4_fmu-v6x_airship), enabling the airship attitude controller and Cloudship airframe while disabling the multicopter, fixed-wing, and VTOL controllers. (PX4-Autopilot#27739)
  • Firmware-release build target for the SAAM saampixv1_1 flight controller.

New Sensors & Peripherals

Existing Boards: Improvements

  • Accton Godwit GA1: ICM45686 IMU support. (PX4-Autopilot#27281)
  • ZeroOne X6 Series V2: TDK IIM42652 IMU and Bosch BMP581 barometer support. (PX4-Autopilot#27475)
  • ZeroOne X6: BMM350 compass compatibility. (PX4-Autopilot#26870)
  • Pixhawk 6C: RM3100 fallback for the internal compass. (PX4-Autopilot#27299)
  • ModalAI VOXL 2: the separate board variants were merged into a single build, and PX4 for VOXL 2 is now packaged as a Debian package (voxl-px4_*_arm64.deb) that is built in CI and published with every PX4 release. (PX4-Autopilot#26727)
  • ModalAI VOXL 2: INA226 and INA228 power monitor support, selectable via the POWER_MANAGER startup option, and the Lightware laser rangefinder driver enabled. (PX4-Autopilot#26840, PX4-Autopilot#27620)

Notable Fixes

  • STM32H7 bootloaders rebuilt with the uncorrectable-flash-ECC scrub, preventing a torn parameter-flash write from bricking the board on every subsequent boot. The bl_update command is now included so fielded boards can apply the new bootloader via SYS_BL_UPDATE without a debugger. (PX4-Autopilot#27715)
  • DShot 3D mode: deadzone inputs now send an explicit motor-stop command instead of spinning the motor at minimum throttle, and the deadband is inclusive on both ends. (PX4-Autopilot#26685)
  • Multi-bank Invensense IMUs (IIM-426xx/ICM-42xxx families) no longer get stuck failing to probe until a power cycle when a soft reset leaves a non-zero register bank selected. (PX4-Autopilot#27117)
  • SPL06 barometer: fixed an SPI read off-by-one that dropped data bytes. (PX4-Autopilot#27074)
  • PAW3902/PAA3905 optical flow sensors now report the actual accumulated integration timespan instead of a hardcoded per-mode interval, fixing flow scaling whenever reads span more than one frame period. (PX4-Autopilot#27418)
  • VL53L0X rangefinder: invalid 8.19 m readings are filtered out and measurements now carry a quality field; VL53L1X maps its range status to the quality field. (PX4-Autopilot#27214, PX4-Autopilot#27355, PX4-Autopilot#27308)
  • PCA9685 PWM output board now uses the correct internal oscillator frequency, so configured servo PWM rates match the actual output. (PX4-Autopilot#27425)
  • MAVLink OpenDroneID Basic ID messages are now forwarded to DroneCAN Remote ID peripherals. (PX4-Autopilot#27274)

Загальні

Управління

  • Added new flight mode(s): Altitude Cruise (MC), Altitude Cruise (FW). For fixed-wing the mode behaves the same as Altitude mode but you can disable the manual control loss failsafe. (PX4-Autopilot#25435: Add new flight mode: Altitude Cruise).
  • Multicopter attitude control gains an optional feed-forward reference model: a 2nd-order critically-damped model smooths the attitude setpoint and feeds its angular-rate derivative onto the rate setpoint, removing the steady-state ramp-tracking lag of the pure-P attitude law. Configured via MC_REF_W_N, MC_REF_FF (default 0 = disabled), and MC_REF_FF_MAX. Shipped disabled by default; MC_REF_FF=0 is the exact legacy behavior. (PX4-Autopilot#27255)
  • New COM_FLTMODE_BOOT sets the flight mode the vehicle boots into before any RC input or mode command is received. Default is Hold; Manual, Altitude, Position, Mission, Stabilized, Takeoff, and external modes can also be selected. (PX4-Autopilot#27641)
  • Stick inputs are now ignored while an arm or kill gesture is being held: during an arm gesture the throttle and yaw sticks are neutralized, and during a kill gesture all four channels are neutralized, so holding the sticks in the gesture corners no longer feeds spurious commands into the controller.
  • New MPC_Z_ERR_MAX (default 1.0 m) caps how far the smoothed vertical trajectory may lead the vehicle, the vertical analog of MPC_XY_ERR_MAX. This suppresses altitude overshoots caused by a noisy altitude reference, such as a mission setpoint jittering as the home altitude estimate is refined in flight. (PX4-Autopilot#27607)

Безпека

  • Rotary-wing vehicles now support uncommanded altitude loss detection: if the vehicle descends more than FD_ALT_LOSS meters below its setpoint in altitude-controlled flight, flight termination (and parachute deployment) is triggered. See Altitude Loss Trigger. (PX4-Autopilot#26837)
  • Parachute health failsafe: extended COM_PARACHUTE from a boolean into a configurable in-flight failsafe action (Return or Land) parameter. The previously enabled value COM_PARACHUTE=1 causes a warning like before. (PX4-Autopilot#26918)
  • GNSS check failsafe: new failsafe that monitors the number of usable GNSS receivers with a 3D fix and their position consistency. The required number of receivers is set via SYS_HAS_NUM_GNSS and the failsafe action via COM_GNSSLOSS_ACT. (PX4-Autopilot#26863)
  • New companion computer over-temperature warning: COM_CC_TEMP_WARN (default 80 C, set -1 to disable) raises a warning when the reported companion computer temperature exceeds the threshold. (PX4-Autopilot#27637)
  • New ESC over-temperature warning: COM_ESC_OT_WARN (default 90 C, set -1 to disable) raises a warning when a reported ESC temperature exceeds the threshold. (PX4-Autopilot#27626)
  • New actuator group preflight check verifies configured functional actuator groups (torque/thrust/tilt) before arming. (PX4-Autopilot#27283)
  • Motor under/over-current failure detection offsets MOTFAIL_LOW_OFF and MOTFAIL_HIGH_OFF are replaced by a single MOTFAIL_OFF parameter (default 10 A); the check now triggers on the absolute current deviation. (PX4-Autopilot#26990)
  • Rejected missions now report the reason to the GCS (e.g. empty mission, dataman read failure) instead of failing silently. (PX4-Autopilot#27254)
  • Arming with RTL_TYPE set to 5 (safe points only) no longer requires a rally point to be uploaded: the vehicle falls back to returning to the home position when no rally point is defined. (PX4-Autopilot#27773)
  • GCS connection-loss failsafe no longer triggers flight termination while the vehicle is disarmed, preventing a termination state from latching before or at arming after a ground station link loss. (PX4-Autopilot#26820)
  • New NAV_RCL_ACT option 7 (Hold without failsafe): on manual control (RC) loss the vehicle holds position but does not enter a failsafe state, so an external mode or offboard controller can keep commanding it. (PX4-Autopilot#27792)
  • Control allocator now stops the motors when it receives a NaN thrust setpoint, instead of forwarding invalid values to the ESCs. (PX4-Autopilot#26494)

Оцінки

  • Added EKF2_POS_LOCK to force constant position fusion while landed, useful for vehicles relying on dead-reckoning sensors (airspeed, optical flow) that provide no aiding on the ground.
  • EKF2 fusion sources can now be toggled at runtime over MAVLink (VEHICLE_CMD_ESTIMATOR_SENSOR_ENABLE), and the new EKF2_SENS_EN bitmask (replacing EKF2_EN_BOOT) selects which sensor fusion sources are enabled. A new ESTIMATOR_SENSOR_FUSION_STATUS MAVLink stream reports the intended and active fusion source bitmasks to the GCS. (PX4-Autopilot#26739)
  • EKF2 now uses latitude-dependent normal gravity (Somigliana model) in the state and output predictor instead of a fixed 9.80665 m/s^2, removing a ~0.5% error that fed directly into the vertical-velocity prediction. Before a global latitude is known it stays at the constant value, preserving prior behavior. (PX4-Autopilot#27602)
  • EKF2 now limits the maximum heading change rate from magnetometer fusion to prevent rapid convergence to a wrong heading when heading variance is high. (PX4-Autopilot#27551)
  • EKF2 adds ranging beacon (range-only) fusion support, with a MAVLink RANGING_BEACON parser and new parameters EKF2_RNGBC_CTRL, EKF2_RNGBC_DELAY, EKF2_RNGBC_GATE, and EKF2_RNGBC_NOISE. Beacon range is fused horizontally only (no altitude correction). (PX4-Autopilot#26772)
  • GPS antenna position offsets are now configured per receiver via SENS_GPS0_OFFX/_OFFY/_OFFZ (and the SENS_GPS1_* set), matched to a physical receiver by device ID (SENS_GPS0_ID/SENS_GPS1_ID), replacing the single EKF2_GPS_POS_X/Y/Z set. (PX4-Autopilot#26634)
  • GPS measurement delay is now configured per receiver via SENS_GPS0_DELAY and SENS_GPS1_DELAY, replacing EKF2_GPS_DELAY (automatically migrated). The delay is applied before receiver blending; PPS time correction, when active, takes priority. (PX4-Autopilot#26660)
  • PPS time synchronization can now select which GPS receiver to correlate against by device ID via the new PPS_CAP_GPS_ID parameter (reboot required), avoiding dependence on uORB instance ordering in multi-GPS setups. See PPS Time Synchronization. (PX4-Autopilot#26719)
  • DroneCAN GNSS receivers can now provide UTC-coherent timestamps: a new leaky-min clock-offset estimator maps a node's PPS-anchored Fix2.timestamp into the flight controller's HRT and subtracts the node's processing delay. Nodes that do not provide a valid UTC timestamp fall back to the SENS_GPS*_DELAY path. (PX4-Autopilot#27427)
  • EKF2 can now use GNSS height as the height reference when GNSS is in dead-reckoning mode, provided it can start without requiring a reset. (PX4-Autopilot#27766)
  • EKF2 now counts NED-frame external vision velocity fusion as a horizontal (NE) aiding source (and only counts vision position when it is in the NED frame), so vehicles aided only by vision velocity are no longer treated as dead-reckoning. (PX4-Autopilot#27538)

RC

  • Parse ELRS Status and Link Statistics TX messages in the CRSF parser.
  • Manual control (RC) override reworked: the pilot now regains control based on how fast a stick is moved rather than by how far it is deflected, so a statically-held or trimmed-off stick can no longer trigger an unwanted takeover. New MAN_OVERRIDE_SPD (normalized stick travel per second, default 1, negative to disable) replaces the removed COM_RC_OVERRIDE bitmask and COM_RC_STICK_OV threshold; override now applies uniformly across auto and offboard modes. Existing COM_RC_OVERRIDE=0 settings are migrated to MAN_OVERRIDE_SPD=-1 on import. Only affects multicopters and VTOLs in MC mode. (PX4-Autopilot#27041)
  • CRSF receivers can now be put into bind mode from QGroundControl or the NSH console via MAV_CMD_START_RX_PAIR; the driver sends the CRSF bind frame over UART and rejects binding while armed or on singlewire setups. (PX4-Autopilot#26790)

Vehicle-Specific

Мульти-Ротор

  • Removed parameters:

    НазваПримітки
    MPC_LAND_RC_HELPReplaced by Bit 1 of MPC_AUTO_NUDGING. (PX4-Autopilot#27691)
  • Yaw stick nudging in auto modes (MPC_AUTO_NUDGING). Bit 0 lets the yaw stick rotate vehicle heading during any auto mode (mission, RTL, hold, landing, takeoff) without switching modes. The heading is held when the stick is released and cleared on a flight mode switch. Requires stick override to be disabled (MAN_OVERRIDE_SPD = -1). (PX4-Autopilot#27691)

VTOL

Fixed-wing

  • New Guided Course mode: maintains a constant ground-track bearing, altitude, and airspeed with no manual stick input. Activated over MAVLink and accepts in-flight updates via MAV_CMD_GUIDED_CHANGE_HEADING (course), MAV_CMD_DO_CHANGE_ALTITUDE (altitude), and MAV_CMD_DO_CHANGE_SPEED (airspeed). (PX4-Autopilot#27156)
  • Rate feed-forward parameters FW_RR_FF, FW_PR_FF, and FW_YR_FF now accept negative values (min lowered from 0 to -10). Negative values reduce setpoint-tracking aggressiveness while preserving disturbance rejection and are scaled quadratically with airspeed, whereas positive values compensate aerodynamic damping and scale linearly. (PX4-Autopilot#27736)
  • New FW_WP_RST_DIST parameter (default -1, disabled): if a horizontal position reset larger than this distance occurs while flying between two mission waypoints, the vehicle flies directly to the current waypoint instead of rejoining the original line. (PX4-Autopilot#27722)
  • Internal combustion engine control gains a feed-forward PI idle-RPM governor, enabled by setting ICE_IDLE_RPM above 0 (disabled by default). New gains ICE_IDLE_RPM_P, ICE_IDLE_RPM_I, and feed-forward throttle ICE_IDLE_THR_FF tune the idle hold. (PX4-Autopilot#27650)
  • The performance model now warns when FW_R_LIM is infeasible because the roll-compensated airspeed range is empty, prompting the user to raise the maximum airspeed. See Weight and Altitude Tuning. (PX4-Autopilot#27547)
  • TECS default for the height-rate feed-forward FW_T_HRATE_FF increased from 0.3 to 0.5. (PX4-Autopilot#27218)
  • Catapult/hand launch detection now uses total acceleration magnitude instead of only the body-forward component, making detection insensitive to launcher mounting orientation. (PX4-Autopilot#26857)

Rover

  • Added a rover build target for the ARK Pi6X (make ark_pi6x_rover), enabling the Ackermann, differential, and mecanum rover modules and the RoboClaw motor driver. (PX4-Autopilot#26296)

Дирижабль

  • Added a Generic Airship airframe with two forward thrusters and a cruciform tail (elevators and rudders), alongside the existing Cloudship geometry. (PX4-Autopilot#27697)
  • Removed support for deprecated request commands MAV_CMD_REQUEST_AUTOPILOT_CAPABILITIES, MAV_CMD_REQUEST_PROTOCOL_VERSION, MAV_CMD_GET_HOME_POSITION, MAV_CMD_REQUEST_FLIGHT_INFORMATION, MAV_CMD_REQUEST_STORAGE_INFORMATION (Replaced by MAV_CMD_REQUEST_MESSAGE). (PX4-Autopilot#27251: fix(mavlink): Remove deprecated MAV_CMD_REQUEST_AUTOPILOT_CAPABILITIES, PX4-Autopilot#27252: fix(mavlink): Remove legacy mavlink message requestors#27252)
  • MAVLink signing is now spec-compliant: signing activates only when a valid key is present on the SD card, SETUP_SIGNING is accepted on any link (not just USB) but rejected while armed, and signing can be disabled with a signed all-zero key. The non-standard MAV_SIGN_CFG parameter was removed and there is zero CPU/bandwidth overhead when signing is inactive. (PX4-Autopilot#26894)
  • MAVLink FTP now maps the @MAV_LOG virtual directory (per the MAVLink FTP spec) to the flight-stack log root, so a GCS can browse logs without knowing the on-disk path. (PX4-Autopilot#27151)
  • MAVLink FTP adds support for the ListDirectoryWithTime command, returning each file's last-modification time alongside the listing so a GCS can retrieve log timestamps without downloading the files (clients fall back to plain ListDirectory when unsupported). (PX4-Autopilot#27542)
  • Fragmented GPS_RTCM_DATA messages are now reassembled before injection to the GPS receiver, with a compatibility fallback for older QGroundControl builds that omit the final zero-length fragment, fixing RTK correction handling for multi-fragment RTCM streams. See RTK GPS. (PX4-Autopilot#27084)
  • New ESTIMATOR_SENSOR_FUSION_STATUS MAVLink stream exposes per-sensor intended and active fusion bitmasks to the GCS. (PX4-Autopilot#26739)
  • The mission protocol now resends MISSION_COUNT if no MISSION_ACK is received, recovering from a dropped MISSION_COUNT during upload. (PX4-Autopilot#26872)
  • The MAVLink development dialect (development.xml) is no longer built into default targets; dedicated mavlink-dev build variants (fmu-v6x, sitl) are provided for prototyping unstable messages. (PX4-Autopilot#25834)
  • Added support for the MAV_CMD_DO_SET_GLOBAL_ORIGIN command, letting a GCS set the global origin used to convert local to global position. Enabled in release builds. (PX4-Autopilot#24697, PX4-Autopilot#27789)
  • The cellular_status uORB message and MAVLink CELLULAR_STATUS stream gained extended fields for richer modem/link reporting. (PX4-Autopilot#27760)

Ethernet & Networking

  • MAVLink over UDP on NuttX now sets a send timeout on the socket, so a saturated or stalled network link can no longer block the MAVLink sender indefinitely while waiting for IO buffers. (PX4-Autopilot#26988)
  • The uXRCE-DDS client no longer stalls under high UDP load. (PX4-Autopilot#26161)

ROS 2

  • External modes can now negotiate their setpoint type with PX4: a mode publishes a SetpointConfig declaring which setpoint it will send (direct actuators, goto, trajectory, rates, attitude, rover, 6-DOF trajectory, thrust/torque, position triplet, etc.) and PX4 replies with a SetpointConfigReply indicating whether the configuration is valid for the current vehicle, along with a configurable setpoint timeout. (PX4-Autopilot#27683)

uXRCE-DDS

  • uXRCE-DDS, add support for DDS v3, ROS 2 Lyrical and Rolling (PX4-Autopilot#27597)
  • uXRCE-DDS topic bridging gained per-topic drain and unlimited-rate options, letting a topic be published as fast as it updates instead of at a fixed interval. (PX4-Autopilot#27688)

Zenoh

  • Zenoh publisher options (reliability, priority, congestion control, express) are now configurable, both as common defaults and per-publisher overrides gated by the ZENOH_PUB_OPTION_OVERRIDE build option. (PX4-Autopilot#27157)
  • Added a Zenoh build variant (zenoh.px4board) for the ARKV6X flight controller. (PX4-Autopilot#25887)

Симуляція

SITL

  • X-Plane SITL: new SITL integration with airframes for the Cessna 172, Bayraktar TB2, EHang 184, Alia-250, and a quad tailsitter. (PX4-Autopilot#22493)
  • RotorPy SITL: added support for the RotorPy multirotor simulator, launchable via the standard simulator start scripts. (PX4-Autopilot#27116)
  • MAVLink can now be bound to a specific network interface by setting the PX4_NET_INTERFACE environment variable. (PX4-Autopilot#26385)
  • The simulated GPS (sensor_gps_sim) now supports failure injection via MAV_CMD_INJECT_FAILURE (FAILURE_UNIT_SENSOR_GPS) with off, stuck, and wrong modes, selectable per receiver. (PX4-Autopilot#27396)
  • The simulated airspeed sensor (sensor_airspeed_sim) now supports off, stuck, and wrong failure injection via MAV_CMD_INJECT_FAILURE. (PX4-Autopilot#27006)

Gazebo

SIH

  • Add option to set wind velocity (PX4-Autopilot#26467)
  • Added a quadratic thrust model and a hexacopter (sihsim_hex) airframe for more realistic multirotor simulation. (PX4-Autopilot#26587)
  • Added a propeller aerodynamic model with advance ratio, plus new HIL airframes including a hexacopter (1105_rc_hexa_x_sih). (PX4-Autopilot#26720)
  • Added ranging-beacon simulation with configurable measurement noise via SIH_RNGBC_NOISE (default 30 m). (PX4-Autopilot#26772)
  • The simulator now publishes ESC telemetry (per-motor RPM and temperature) for testing ESC status handling in SITL. (PX4-Autopilot#27626)
  • Added a dedicated SIH SITL build target (px4_sitl_sih) that disables the Gazebo bridge/plugins, and taught sitl_multiple_run.sh to accept model and build-target arguments for multi-instance SIH runs. (PX4-Autopilot#26672)

HIL

  • Sensor calibration is now disabled while running in hardware-in-the-loop, preventing accidental calibration of simulated sensors. (PX4-Autopilot#26942)

Debug & Logging

Логування

  • Logger: reworked log rotation and cleanup. Log rotation is now on by default, and cleanup runs at log start rather than boot so logs can be downloaded via FTP before being deleted.
    • New SDLOG_MAX_SIZE (default 1024 MB) caps the size of a single log file; once reached, the logger closes the current file and starts a new one.
    • New SDLOG_ROTATE (default 90) sets the maximum disk usage percentage. Cleanup guarantees (100 - SDLOG_ROTATE)% of the disk stays free at all times, even while writing a new log file. Set 0 to disable space-based cleanup, 100 to allow filling the disk completely.
    • SDLOG_DIRS_MAX is now an orthogonal cap on the number of log directories (default 0 = disabled), on top of the space-based cleanup driven by SDLOG_ROTATE and SDLOG_MAX_SIZE. SITL defaults to 7.
  • Logger: support for small flash storage (e.g. 128 MB W25N NAND on kakuteh7mini, kakuteh7v2, airbrainh743). Logs can now be written directly to an internal littlefs volume instead of requiring an SD card.
  • Logger: topics listed in etc/logging/logger_topics.txt on the SD card are now appended on top of the selected logging profile instead of replacing the entire topic set. Previous behavior (the file overriding all profile topics) is gone; add only the extra topics you want. (PX4-Autopilot#27462)
  • Logger: the high-rate sensors logging profile now records sensor_baro, sensor_mag, sensor_gps, sensor_gnss_relative, distance_sensor, sensor_optical_flow, vehicle_air_data, vehicle_magnetometer, vehicle_thrust_setpoint, and estimator_aid_src_baro_hgt at 100 Hz. (PX4-Autopilot#26922)
  • Asset Tracking: Automatic tracking and logging of external device information including vendor name, firmware and hardware version, serial numbers. Currently supports DroneCAN devices. (PX4-Autopilot#25617)

Storage

  • MTD/storage: added NOR flash support (with bulk erase) to the mtd subsystem and manifest, allowing NOR flash to be used as a storage backend (e.g. for parameters and littlefs volumes) on boards that provide it, such as FMU-v6s.
  • New mklittlefs systemcmd for reformatting a littlefs volume from the NSH console, analogous to mkfatfs for FAT filesystems.

Infrastructure

  • SPDX 2.3 SBOM (software bill of materials) generation is now integrated into the firmware build via cmake/sbom.cmake. SBOMs are produced automatically as part of the build and can be disabled by setting the PX4_SBOM_DISABLE=1 environment variable. (PX4-Autopilot#26731)
  • New px4bench hardware bench testing suite (Tools/bench_test/) qualifies a firmware build on a real NuttX board over USB: it flashes and verifies the firmware identity, then runs boot, communication, storage, parameter-persistence, and serial-loopback checks, plus an optional SIH auto mission flown on the FMU itself, writing machine-readable reports with full firmware traceability. Adds bench test build variants (e.g. FMU-v6XRT). (PX4-Autopilot#27823)
  • SITL can now be built with AddressSanitizer and ThreadSanitizer to catch memory errors and data races; a series of data races found this way in MAVLink and the lockstep scheduler were fixed. (PX4-Autopilot#27606)
  • Firmware upload now works from WSL2. When building inside WSL2, the uploader detects and uses the Windows Python interpreter (python.exe) to reach COM<N> serial ports that WSL2 cannot expose directly. (PX4-Autopilot#27674)
  • SITL Debian packages now declare their runtime dependencies (including Gazebo Harmonic) via .deb Depends, so apt resolves everything needed to run the simulator. (PX4-Autopilot#27162, PX4-Autopilot#27178)
  • macOS development setup reworked: the toolchain installs via inline Homebrew dependencies in Tools/setup/macos.sh (the px4-dev meta-formula is deprecated), Python dependencies can install into a virtual environment, and Gazebo SITL works out of the box with Homebrew 4.5+. (PX4-Autopilot#27127, PX4-Autopilot#27148, PX4-Autopilot#26702)
  • PX4-OpticalFlow is now a git submodule instead of a build-time download, making SITL builds reproducible and offline-friendly. (PX4-Autopilot#27184)
  • New make format_changed target formats only files that differ from HEAD (via astyle), which is much faster than make format scanning the whole tree. (PX4-Autopilot#27122)
  • Added DroneCAN sensor latency calibration scripts under Tools/dronecan_calibration/ (range_sensor_latency.py, flow_sensor_latency.py) that cross-correlate CAN sensor signals against the FC's directly-connected IMU in flight logs to estimate CAN transport/pipeline delay.