docs(releases): v1.18 release notes (#27808)

* docs(releases): fix malformed SIH wind PR link in v1.18 notes

Signed-off-by: Ramon Roche <mrpollo@gmail.com>

* docs(releases): draft v1.18 release notes

Signed-off-by: Ramon Roche <mrpollo@gmail.com>

* docs(releases): mark v1.18 beta and add changes merged since the draft

Signed-off-by: Ramon Roche <mrpollo@gmail.com>

* docs(releases): add v1.18 upgrade guide, hardware fixes, and section structure

Signed-off-by: Ramon Roche <mrpollo@gmail.com>

* docs(releases): resort v1.18 major changes

Signed-off-by: Ramon Roche <mrpollo@gmail.com>

* docs(releases): link sensor and peripheral docs pages in v1.18 notes

Signed-off-by: Ramon Roche <mrpollo@gmail.com>

* docs(releases): describe new boards and highlight serial passthrough in v1.18 notes

Signed-off-by: Ramon Roche <mrpollo@gmail.com>

* docs(releases): fold standalone sensors section into hardware and common

Signed-off-by: Ramon Roche <mrpollo@gmail.com>

* docs(releases): fill v1.18 ethernet section with networking fixes

Signed-off-by: Ramon Roche <mrpollo@gmail.com>

* docs(releases): merge ROS 2 and middleware sections with DDS and Zenoh subsections

Signed-off-by: Ramon Roche <mrpollo@gmail.com>

* docs(releases): group vehicle-type notes under vehicle-specific section

Signed-off-by: Ramon Roche <mrpollo@gmail.com>

* docs(releases): reorder v1.18 other-changes sections by topic group

Signed-off-by: Ramon Roche <mrpollo@gmail.com>

* docs(releases): drop other-changes wrapper heading in v1.18 notes

Signed-off-by: Ramon Roche <mrpollo@gmail.com>

* docs(releases): organize debug-logging subsections and add infrastructure section

Signed-off-by: Ramon Roche <mrpollo@gmail.com>

* docs(releases): fix main.md template wording and mark v1.18 beta in sidebar

Signed-off-by: Ramon Roche <mrpollo@gmail.com>

---------

Signed-off-by: Ramon Roche <mrpollo@gmail.com>
This commit is contained in:
Ramon Roche
2026-07-08 11:54:37 -07:00
committed by GitHub
parent fb83cd5485
commit fd13202851
3 changed files with 263 additions and 71 deletions

View File

@@ -958,7 +958,7 @@
- [Releases](releases/index.md)
- [Release Process](releases/release_process.md)
- [main (alpha)](releases/main.md)
- [v1.18 (alpha)](releases/1.18.md)
- [v1.18 (beta)](releases/1.18.md)
- [1.17 (stable)](releases/1.17.md)
- [1.16](releases/1.16.md)
- [1.15](releases/1.15.md)

View File

@@ -1,6 +1,6 @@
# PX4-Autopilot v1.18.0 Release Notes
<Badge type="danger" text="Alpha" />
<Badge type="warning" text="Beta" />
<script setup>
import { useData } from 'vitepress'
@@ -17,35 +17,136 @@ const { site } = useData();
PX4 v1.18 builds on [PX4 v1.17](../releases/1.17.md)
::: warning
PX4 v1.18 is in alpha testing.
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`](../releases/main.md).
:::
## Read Before Upgrading
- Log rotation is now enabled by default. Previously, a single log file grew for the entire flight and old logs were only deleted at boot once free space fell below a fixed 300 MB floor. The logger now caps each log file at [SDLOG_MAX_SIZE](../advanced_config/parameter_reference.md#SDLOG_MAX_SIZE) (new parameter, default `1024` MB) and keeps a configurable percentage of the disk free via [SDLOG_ROTATE](../advanced_config/parameter_reference.md#SDLOG_ROTATE) (new parameter, default `90`, so at least 10% free). Cleanup runs at log start rather than boot, so logs can still be downloaded via FTP before they are deleted. See [Log Cleanup](../dev_log/logging.md#log-cleanup) for details.
- `SDLOG_DIRS_MAX` behaviour changed: it is now an orthogonal directory-count cap that runs on top of the new space-based cleanup, and the default is `0` (disabled). Previously it enforced a fixed ~300 MB free-space floor even when set to `0`. If you relied on that implicit floor, set [SDLOG_ROTATE](../advanced_config/parameter_reference.md#SDLOG_ROTATE) instead.
Please continue reading for [upgrade instructions](#upgrade-guide).
## Major Changes
- TBD
- **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](https://github.com/PX4/PX4-Autopilot/pull/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](https://github.com/PX4/PX4-Autopilot/pull/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](https://github.com/PX4/PX4-Autopilot/pull/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](../advanced_config/parameter_reference.md#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](https://github.com/PX4/PX4-Autopilot/pull/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](../advanced_config/parameter_reference.md#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](https://github.com/PX4/PX4-Autopilot/pull/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](https://github.com/PX4/PX4-Autopilot/pull/26634), [PX4-Autopilot#26660](https://github.com/PX4/PX4-Autopilot/pull/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](https://github.com/PX4/PX4-Autopilot/pull/27043))
- **[Serial Passthrough](../uart/serial_passthrough.md) 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](https://github.com/PX4/PX4-Autopilot/pull/27605))
- **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](../test_and_ci/bench_testing.md). ([PX4-Autopilot#27823](https://github.com/PX4/PX4-Autopilot/pull/27823))
## Upgrade Guide
## Other changes
For users upgrading from v1.17, please take a moment to review the following before flying:
### Hardware Support
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](../advanced_config/parameter_reference.md#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](https://github.com/PX4/PX4-Autopilot/pull/27041))
- TBD
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](https://github.com/PX4/PX4-Autopilot/pull/26894))
### Common
3. **Migrate EKF2 fusion source selection.**
`EKF2_EN_BOOT` is replaced by the [EKF2_SENS_EN](../advanced_config/parameter_reference.md#EKF2_SENS_EN) bitmask selecting which sensor fusion sources are enabled; fusion sources can additionally be toggled at runtime over MAVLink.
([PX4-Autopilot#26739](https://github.com/PX4/PX4-Autopilot/pull/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](https://github.com/PX4/PX4-Autopilot/pull/26634), [PX4-Autopilot#26660](https://github.com/PX4/PX4-Autopilot/pull/26660))
5. **Review log rotation defaults.**
Log rotation is now enabled by default: each log file is capped at [SDLOG_MAX_SIZE](../advanced_config/parameter_reference.md#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](../advanced_config/parameter_reference.md#SDLOG_ROTATE) instead. See [Log Cleanup](../dev_log/logging.md#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](https://github.com/PX4/PX4-Autopilot/pull/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](#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](../advanced_config/parameter_reference.md#MPC_AUTO_NUDGING) (auto-migrated). Bit 0 enables the new yaw nudging in all auto modes.
([PX4-Autopilot#27691](https://github.com/PX4/PX4-Autopilot/pull/27691))
9. **Re-tune motor failure detection offsets.**
`MOTFAIL_LOW_OFF` and `MOTFAIL_HIGH_OFF` are replaced by a single [MOTFAIL_OFF](../advanced_config/parameter_reference.md#MOTFAIL_OFF) (default `10` A) triggering on absolute current deviation.
([PX4-Autopilot#26990](https://github.com/PX4/PX4-Autopilot/pull/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](https://github.com/PX4/PX4-Autopilot/pull/27251), [PX4-Autopilot#27252](https://github.com/PX4/PX4-Autopilot/pull/27252))
11. **Update AFBR-S50 startup scripts.**
The `-r` command-line rotation flag is removed; set the mounting orientation via [SENS_AFBR_ROT](../advanced_config/parameter_reference.md#SENS_AFBR_ROT) instead.
([PX4-Autopilot#27385](https://github.com/PX4/PX4-Autopilot/pull/27385))
## Hardware Support
### New Flight Controllers
- [CUAV X25-MEGA](../flight_controller/cuav_x25-mega.md): STM32H743 autopilot for commercial integration, with triple-redundant heated IMUs (ADIS16607 primary), dual barometers, and an RM3100 compass. ([PX4-Autopilot#26664](https://github.com/PX4/PX4-Autopilot/pull/26664))
- [CUAV X25-SUPER](../flight_controller/cuav_x25-super.md): 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](https://github.com/PX4/PX4-Autopilot/pull/26474))
- [Corvon V5](../flight_controller/corvon_v5.md): Pixhawk FMUv5-standard board (STM32F765) with triple IMUs (ICM-20689, ICM-20602, BMI088), IST8310 magnetometer, and MS5611 barometer. ([PX4-Autopilot#26286](https://github.com/PX4/PX4-Autopilot/pull/26286))
- [Corvon 743v2](../flight_controller/corvon_743v2.md): upgrade of the 743v1 with dual IMUs (ICM-42688P, BMI088), BMP581 barometer, a DJI O4 Air Unit connector, and onboard Bluetooth. ([PX4-Autopilot#27569](https://github.com/PX4/PX4-Autopilot/pull/27569))
- [AEDROX AEDROXH7](../flight_controller/aedrox_aedroxh7.md): STM32H743-based FPV/racing flight controller (ICM-42688-P IMU, DPS310 barometer, W25N NAND flash, MAX7456 OSD, 8 bidirectional-DShot outputs). ([PX4-Autopilot#27226](https://github.com/PX4/PX4-Autopilot/pull/27226))
- [CBUnmanned H753-SOM](../flight_controller/cbunmanned_h753-som.md): 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](https://github.com/PX4/PX4-Autopilot/pull/27234))
- [3DR Control N1](../flight_controller/3dr_ctrl-n1.md): 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](https://github.com/PX4/PX4-Autopilot/pull/27395))
- **ARK FMU-v6s**: a low-cost variant of the ARK V6X (single IIM-42653 IMU, IIS2MDC magnetometer, BMP390 barometer). ([PX4-Autopilot#26631](https://github.com/PX4/PX4-Autopilot/pull/26631))
- [Gear Up AirBrainH743](../flight_controller/gearup_airbrainh743.md): STM32H743 flight controller with DPS310 barometer, LIS2MDL magnetometer, and 128 MB NAND flash for SD-card-free logging. ([PX4-Autopilot#26239](https://github.com/PX4/PX4-Autopilot/pull/26239))
- [X-MAV AP-H743r1](../flight_controller/x-mav_ap-h743r1.md): STM32H743 autopilot with a dedicated STM32F103 IO processor, dual IMUs (ICM-42688-P or BMI270 depending on version), and SPL06 barometer. ([PX4-Autopilot#25967](https://github.com/PX4/PX4-Autopilot/pull/25967))
- [MicoAir H743-Lite](../flight_controller/micoair743-lite.md): compact STM32H743 flight controller with an ICM-45686 IMU and integrated Bluetooth telemetry. ([PX4-Autopilot#25777](https://github.com/PX4/PX4-Autopilot/pull/25777))
- [SVehicle-E2](../flight_controller/svehicle_e2.md): STM32H753 autopilot with a dedicated STM32F103 IO processor, triple IMUs (BMI088, ICM-42688-P, ICM-20649), and dual ICP-20100 barometers. ([PX4-Autopilot#25578](https://github.com/PX4/PX4-Autopilot/pull/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](https://github.com/PX4/PX4-Autopilot/pull/27739))
- Firmware-release build target for the SAAM saampixv1_1 flight controller.
### New Sensors & Peripherals
- ARK MAG DroneCAN magnetometer node. ([PX4-Autopilot#25822](https://github.com/PX4/PX4-Autopilot/pull/25822))
- [sbgECom INS](../sensor/sbgecom.md) driver for SBG Systems inertial navigation sensors. ([PX4-Autopilot#24137](https://github.com/PX4/PX4-Autopilot/pull/24137))
- Sony AS-DT1 [distance sensor](../sensor/sony_asdt1.md) driver, with mounting orientation configurable via a rotation parameter (enabled on FMU-v6XRT). ([PX4-Autopilot#27769](https://github.com/PX4/PX4-Autopilot/pull/27769))
- Analog Devices ADIS1657x IMU driver. ([PX4-Autopilot#27239](https://github.com/PX4/PX4-Autopilot/pull/27239))
- Analog Devices ADIS1650x IMU driver (ADIS16500/16501/16505/16507 family). ([PX4-Autopilot#27240](https://github.com/PX4/PX4-Autopilot/pull/27240))
- ST LSM6DSV16X IMU driver, enabled as a probe-based alternative IMU on [Pixhawk 6C](../flight_controller/pixhawk6c.md). ([PX4-Autopilot#26951](https://github.com/PX4/PX4-Autopilot/pull/26951))
- LSM6DSV 32X and DSK320X variant support in the ST LSM6DSV IMU driver. ([PX4-Autopilot#27523](https://github.com/PX4/PX4-Autopilot/pull/27523))
- [Hiwonder 4-channel encoder motor module](../peripherals/hiwonder_emm.md) driver, enabled via [HIWONDER_EMM_EN](../advanced_config/parameter_reference.md#HIWONDER_EMM_EN) (started from `rc.rover`). ([PX4-Autopilot#27229](https://github.com/PX4/PX4-Autopilot/pull/27229))
- TI ADS7128 I2C ADC driver. ([PX4-Autopilot#26471](https://github.com/PX4/PX4-Autopilot/pull/26471))
- AUAV L60D support in the AUAV differential pressure sensor driver. ([PX4-Autopilot#27219](https://github.com/PX4/PX4-Autopilot/pull/27219))
- Infineon DPS368 support in the DPS310 barometer driver, selectable with the `-8` start flag. ([PX4-Autopilot#27724](https://github.com/PX4/PX4-Autopilot/pull/27724))
- [VectorNav INS](../sensor/vectornav.md) driver: added options to select the IMU output rate and the serial output port. ([PX4-Autopilot#27318](https://github.com/PX4/PX4-Autopilot/pull/27318))
- AFBR-S50 rangefinder: mounting orientation is now set via [SENS_AFBR_ROT](../advanced_config/parameter_reference.md#SENS_AFBR_ROT) instead of the removed `-r` command-line flag. ([PX4-Autopilot#27385](https://github.com/PX4/PX4-Autopilot/pull/27385))
### Existing Boards: Improvements
- Accton Godwit GA1: ICM45686 IMU support. ([PX4-Autopilot#27281](https://github.com/PX4/PX4-Autopilot/pull/27281))
- ZeroOne X6 Series V2: TDK IIM42652 IMU and Bosch BMP581 barometer support. ([PX4-Autopilot#27475](https://github.com/PX4/PX4-Autopilot/pull/27475))
- ZeroOne X6: BMM350 compass compatibility. ([PX4-Autopilot#26870](https://github.com/PX4/PX4-Autopilot/pull/26870))
- [Pixhawk 6C](../flight_controller/pixhawk6c.md): RM3100 fallback for the internal compass. ([PX4-Autopilot#27299](https://github.com/PX4/PX4-Autopilot/pull/27299))
- 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](https://github.com/PX4/PX4-Autopilot/pull/26840), [PX4-Autopilot#27620](https://github.com/PX4/PX4-Autopilot/pull/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](../advanced_config/parameter_reference.md#SYS_BL_UPDATE) without a debugger. ([PX4-Autopilot#27715](https://github.com/PX4/PX4-Autopilot/pull/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](https://github.com/PX4/PX4-Autopilot/pull/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](https://github.com/PX4/PX4-Autopilot/pull/27117))
- SPL06 barometer: fixed an SPI read off-by-one that dropped data bytes. ([PX4-Autopilot#27074](https://github.com/PX4/PX4-Autopilot/pull/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](https://github.com/PX4/PX4-Autopilot/pull/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](https://github.com/PX4/PX4-Autopilot/pull/27214), [PX4-Autopilot#27355](https://github.com/PX4/PX4-Autopilot/pull/27355), [PX4-Autopilot#27308](https://github.com/PX4/PX4-Autopilot/pull/27308))
- PCA9685 PWM output board now uses the correct internal oscillator frequency, so configured servo PWM rates match the actual output. ([PX4-Autopilot#27425](https://github.com/PX4/PX4-Autopilot/pull/27425))
- MAVLink OpenDroneID Basic ID messages are now forwarded to DroneCAN Remote ID peripherals. ([PX4-Autopilot#27274](https://github.com/PX4/PX4-Autopilot/pull/27274))
## Common
- [Remote ID (Open Drone ID) in-flight failsafe](../peripherals/remote_id.md): extended [COM_ARM_ODID](../advanced_config/parameter_reference.md#COM_ARM_ODID) to also trigger a configurable failsafe action (Return, Land, or Terminate) if the Remote ID heartbeat is lost while airborne. Users previously on `COM_ARM_ODID=2` retain the same arming behaviour; set to `3` or higher to enable the in-flight action. ([PX4-Autopilot#27029](https://github.com/PX4/PX4-Autopilot/pull/27029))
- [QGroundControl Bootloader Update](../advanced_config/bootloader_update.md#qgc-bootloader-update-sys-bl-update) via the [SYS_BL_UPDATE](../advanced_config/parameter_reference.md#SYS_BL_UPDATE) parameter has been re-enabled after being broken for a number of releases. ([PX4-Autopilot#25032: build: romf: fix generation of rc.board_bootloader_upgrade](https://github.com/PX4/PX4-Autopilot/pull/25032)).
- [Feature: Allow prioritization of manual control inputs based on their instance number in ascending or descending order](../config/manual_control.md#px4-configuration). ([PX4-Autopilot#25602: Ascending and descending manual control input priorities](https://github.com/PX4/PX4-Autopilot/pull/25602)).
- Quick magnetometer calibration now supports specifying an arbitrary initial heading ([PX4-Autopilot#24637](https://github.com/PX4/PX4-Autopilot/pull/24637))
- Removed parameters:
| Name | Notes |
@@ -63,74 +164,53 @@ Please continue reading for [upgrade instructions](#upgrade-guide).
- [Serial Passthrough (MAVLink SERIAL_CONTROL)](../uart/serial_passthrough.md): new `serialpassthrough` driver enables MAVLink clients to read from and write to FC serial ports (TEL1/2, GPS1/2, TEL3/4).
On STM32F7/H7 boards, ESC signal pins can also be written via a software bit-bang UART (device IDs 2027): note that a bridge application is also required, so this functionality is not usable out of the box.
([PX4-Autopilot#27605: feat(drivers): implemented serial passthrough](https://github.com/PX4/PX4-Autopilot/pull/27605)).
- UAVCAN: firmware can now be flashed onto connected CAN nodes directly from the SD card. Place node firmware `.bin` files at the card root or in `/fs/microsd/ufw_staging/`; on boot the UAVCAN server migrates them into `/fs/microsd/ufw/`, tracks them in an `FW.db` database, and flashes any connected node whose firmware version does not match. ([PX4-Autopilot#27043](https://github.com/PX4/PX4-Autopilot/pull/27043))
### Control
## Control
- Added new flight mode(s): [Altitude Cruise (MC)](../flight_modes_mc/altitude_cruise.md), 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](https://github.com/PX4/PX4-Autopilot/pull/25435)).
- 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](../advanced_config/parameter_reference.md#MC_REF_W_N), [MC_REF_FF](../advanced_config/parameter_reference.md#MC_REF_FF) (default `0` = disabled), and [MC_REF_FF_MAX](../advanced_config/parameter_reference.md#MC_REF_FF_MAX). Shipped disabled by default; `MC_REF_FF=0` is the exact legacy behavior. ([PX4-Autopilot#27255](https://github.com/PX4/PX4-Autopilot/pull/27255))
- New [COM_FLTMODE_BOOT](../advanced_config/parameter_reference.md#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](https://github.com/PX4/PX4-Autopilot/pull/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](../advanced_config/parameter_reference.md#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](https://github.com/PX4/PX4-Autopilot/pull/27607))
### Safety
## Safety
- Rotary-wing vehicles now support uncommanded altitude loss detection: if the vehicle descends more than [FD_ALT_LOSS](../advanced_config/parameter_reference.md#FD_ALT_LOSS) meters below its setpoint in altitude-controlled flight, flight termination (and parachute deployment) is triggered. See [Altitude Loss Trigger](../config/safety.md#altitude-loss-trigger). ([PX4-Autopilot#26837](https://github.com/PX4/PX4-Autopilot/pull/26837))
- [Parachute health failsafe](../peripherals/parachute.md): extended [COM_PARACHUTE](../advanced_config/parameter_reference.md#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](https://github.com/PX4/PX4-Autopilot/pull/26918))
- [GNSS check failsafe](../config/safety.md#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](../advanced_config/parameter_reference.md#SYS_HAS_NUM_GNSS) and the failsafe action via [COM_GNSSLOSS_ACT](../advanced_config/parameter_reference.md#COM_GNSSLOSS_ACT). ([PX4-Autopilot#26863](https://github.com/PX4/PX4-Autopilot/pull/26863))
- New companion computer over-temperature warning: [COM_CC_TEMP_WARN](../advanced_config/parameter_reference.md#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](https://github.com/PX4/PX4-Autopilot/pull/27637))
- New ESC over-temperature warning: [COM_ESC_OT_WARN](../advanced_config/parameter_reference.md#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](https://github.com/PX4/PX4-Autopilot/pull/27626))
- New actuator group preflight check verifies configured functional actuator groups (torque/thrust/tilt) before arming. ([PX4-Autopilot#27283](https://github.com/PX4/PX4-Autopilot/pull/27283))
- Motor under/over-current failure detection offsets `MOTFAIL_LOW_OFF` and `MOTFAIL_HIGH_OFF` are replaced by a single [MOTFAIL_OFF](../advanced_config/parameter_reference.md#MOTFAIL_OFF) parameter (default `10` A); the check now triggers on the absolute current deviation. ([PX4-Autopilot#26990](https://github.com/PX4/PX4-Autopilot/pull/26990))
- Rejected missions now report the reason to the GCS (e.g. empty mission, dataman read failure) instead of failing silently. ([PX4-Autopilot#27254](https://github.com/PX4/PX4-Autopilot/pull/27254))
- Arming with [RTL_TYPE](../advanced_config/parameter_reference.md#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](https://github.com/PX4/PX4-Autopilot/pull/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](https://github.com/PX4/PX4-Autopilot/pull/26820))
- New [NAV_RCL_ACT](../advanced_config/parameter_reference.md#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](https://github.com/PX4/PX4-Autopilot/pull/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](https://github.com/PX4/PX4-Autopilot/pull/26494))
### Estimation
## Estimation
- Added [EKF2_POS_LOCK](../advanced_config/parameter_reference.md#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](../advanced_config/parameter_reference.md#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](https://github.com/PX4/PX4-Autopilot/pull/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](https://github.com/PX4/PX4-Autopilot/pull/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](https://github.com/PX4/PX4-Autopilot/pull/27551))
- EKF2 adds ranging beacon (range-only) fusion support, with a MAVLink `RANGING_BEACON` parser and new parameters [EKF2_RNGBC_CTRL](../advanced_config/parameter_reference.md#EKF2_RNGBC_CTRL), [EKF2_RNGBC_DELAY](../advanced_config/parameter_reference.md#EKF2_RNGBC_DELAY), [EKF2_RNGBC_GATE](../advanced_config/parameter_reference.md#EKF2_RNGBC_GATE), and [EKF2_RNGBC_NOISE](../advanced_config/parameter_reference.md#EKF2_RNGBC_NOISE). Beacon range is fused horizontally only (no altitude correction). ([PX4-Autopilot#26772](https://github.com/PX4/PX4-Autopilot/pull/26772))
- GPS antenna position offsets are now configured per receiver via [SENS_GPS0_OFFX](../advanced_config/parameter_reference.md#SENS_GPS0_OFFX)/`_OFFY`/`_OFFZ` (and the `SENS_GPS1_*` set), matched to a physical receiver by device ID ([SENS_GPS0_ID](../advanced_config/parameter_reference.md#SENS_GPS0_ID)/`SENS_GPS1_ID`), replacing the single `EKF2_GPS_POS_X/Y/Z` set. ([PX4-Autopilot#26634](https://github.com/PX4/PX4-Autopilot/pull/26634))
- GPS measurement delay is now configured per receiver via [SENS_GPS0_DELAY](../advanced_config/parameter_reference.md#SENS_GPS0_DELAY) and [SENS_GPS1_DELAY](../advanced_config/parameter_reference.md#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](https://github.com/PX4/PX4-Autopilot/pull/26660))
- PPS time synchronization can now select which GPS receiver to correlate against by device ID via the new [PPS_CAP_GPS_ID](../advanced_config/parameter_reference.md#PPS_CAP_GPS_ID) parameter (reboot required), avoiding dependence on uORB instance ordering in multi-GPS setups. See [PPS Time Synchronization](../advanced/pps_time_sync.md). ([PX4-Autopilot#26719](https://github.com/PX4/PX4-Autopilot/pull/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](https://github.com/PX4/PX4-Autopilot/pull/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](https://github.com/PX4/PX4-Autopilot/pull/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](https://github.com/PX4/PX4-Autopilot/pull/27538))
### Sensors
- Add [sbgECom INS driver](../sensor/sbgecom.md) ([PX4-Autopilot#24137](https://github.com/PX4/PX4-Autopilot/pull/24137))
- Quick magnetometer calibration now supports specifying an arbitrary initial heading ([PX4-Autopilot#24637](https://github.com/PX4/PX4-Autopilot/pull/24637))
### Simulation
- Gazebo: Add [ridge world](../sim_gazebo_gz/worlds.md#ridge) for testing terrain following with 1D lidar. ([PX4-Autopilot#27600](https://github.com/PX4/PX4-Autopilot/pull/27600))
- SIH: Add option to set wind velocity ([PX4-Autopilot#26467](https://github.com/PX4-Autopilot/pull/26467))
<!-- MOVED THIS TO v1.17
- Overhaul rover simulation:
- Add synthetic differential rover model: [PX4-gazebo-models#107](https://github.com/PX4/PX4-gazebo-models/pull/107)
- Add synthetic mecanum rover model: [PX4-gazebo-models#113](https://github.com/PX4/PX4-gazebo-models/pull/113)
- Update synthetic ackermann rover model: [PX4-gazebo-models#117](https://github.com/PX4/PX4-gazebo-models/pull/117)
-->
### Debug & Logging
- [Asset Tracking](../debug/asset_tracking.md): Automatic tracking and logging of external device information including vendor name, firmware and hardware version, serial numbers. Currently supports DroneCAN devices. ([PX4-Autopilot#25617](https://github.com/PX4/PX4-Autopilot/pull/25617))
- 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: 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](../advanced_config/parameter_reference.md#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](../advanced_config/parameter_reference.md#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`.
- New `mklittlefs` systemcmd for reformatting a littlefs volume from the NSH console, analogous to `mkfatfs` for FAT filesystems.
### Ethernet
- TBD
### uXRCE-DDS / Zenoh / ROS 2
- uXRCE-DDS, add support for DDS `v3`, ROS 2 Lyrical and Rolling ([PX4-Autopilot#27597](https://github.com/PX4/PX4-Autopilot/pull/27597))
<!-- MOVED THIS TO v1.17
- [PX4 ROS 2 Interface Library](../ros2/px4_ros2_control_interface.md) support for [Fixed Wing lateral/longitudinal setpoint](../ros2/px4_ros2_control_interface.md#fw-lateral-longitudinal-setpoint) (`FwLateralLongitudinalSetpointType`) and [VTOL transitions](../ros2/px4_ros2_control_interface.md#controlling-a-vtol). ([PX4-Autopilot#24056](https://github.com/PX4/PX4-Autopilot/pull/24056)).
- [PX4 ROS 2 Interface Library](../ros2/px4_ros2_control_interface.md) support for [ROS-based waypoint missions](../ros2/px4_ros2_waypoint_missions.md).
-->
### MAVLink
- 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](https://github.com/PX4/PX4-Autopilot/pull/27251), [PX4-Autopilot#27252: fix(mavlink): Remove legacy mavlink message requestors#27252](https://github.com/PX4/PX4-Autopilot/pull/27252))
### RC
## RC
- Parse ELRS Status and Link Statistics TX messages in the CRSF parser.
- Merged the stick override parameters `COM_RC_OVERRIDE` and `COM_RC_STICK_OV` into a single [MAN_OVERRIDE_SPD](../advanced_config/parameter_reference.md#MAN_OVERRIDE_SPD) and made override reject erratic signal jumps. ([PX4-Autopilot#27041](https://github.com/PX4/PX4-Autopilot/pull/27041)).
- 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](../advanced_config/parameter_reference.md#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](https://github.com/PX4/PX4-Autopilot/pull/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](https://github.com/PX4/PX4-Autopilot/pull/26790))
## Vehicle-Specific
### Multi-Rotor
@@ -148,7 +228,13 @@ Please continue reading for [upgrade instructions](#upgrade-guide).
### Fixed-wing
- TBD
- New [Guided Course mode](../flight_modes_fw/guided_course.md): 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](https://github.com/PX4/PX4-Autopilot/pull/27156))
- Rate feed-forward parameters [FW_RR_FF](../advanced_config/parameter_reference.md#FW_RR_FF), [FW_PR_FF](../advanced_config/parameter_reference.md#FW_PR_FF), and [FW_YR_FF](../advanced_config/parameter_reference.md#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](https://github.com/PX4/PX4-Autopilot/pull/27736))
- New [FW_WP_RST_DIST](../advanced_config/parameter_reference.md#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](https://github.com/PX4/PX4-Autopilot/pull/27722))
- Internal combustion engine control gains a feed-forward PI idle-RPM governor, enabled by setting [ICE_IDLE_RPM](../advanced_config/parameter_reference.md#ICE_IDLE_RPM) above `0` (disabled by default). New gains [ICE_IDLE_RPM_P](../advanced_config/parameter_reference.md#ICE_IDLE_RPM_P), [ICE_IDLE_RPM_I](../advanced_config/parameter_reference.md#ICE_IDLE_RPM_I), and feed-forward throttle [ICE_IDLE_THR_FF](../advanced_config/parameter_reference.md#ICE_IDLE_THR_FF) tune the idle hold. ([PX4-Autopilot#27650](https://github.com/PX4/PX4-Autopilot/pull/27650))
- The performance model now warns when [FW_R_LIM](../advanced_config/parameter_reference.md#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](../config_fw/weight_and_altitude_tuning.md). ([PX4-Autopilot#27547](https://github.com/PX4/PX4-Autopilot/pull/27547))
- TECS default for the height-rate feed-forward [FW_T_HRATE_FF](../advanced_config/parameter_reference.md#FW_T_HRATE_FF) increased from `0.3` to `0.5`. ([PX4-Autopilot#27218](https://github.com/PX4/PX4-Autopilot/pull/27218))
- Catapult/hand [launch detection](../flight_modes_fw/takeoff.md) now uses total acceleration magnitude instead of only the body-forward component, making detection insensitive to launcher mounting orientation. ([PX4-Autopilot#26857](https://github.com/PX4/PX4-Autopilot/pull/26857))
<!-- MOVED THIS TO v1.17
- [Fixed Wing Takeoff mode](../flight_modes_fw/takeoff.md) will now keep climbing with level wings on position loss.
@@ -158,7 +244,11 @@ Please continue reading for [upgrade instructions](#upgrade-guide).
### Rover
- TBD
- 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](https://github.com/PX4/PX4-Autopilot/pull/26296))
### Airship
- Added a Generic Airship airframe with two forward thrusters and a cruciform tail (elevators and rudders), alongside the existing Cloudship geometry. ([PX4-Autopilot#27697](https://github.com/PX4/PX4-Autopilot/pull/27697))
<!-- MOVED THIS TO v1.17
@@ -168,6 +258,108 @@ Please continue reading for [upgrade instructions](#upgrade-guide).
-->
### ROS 2
## MAVLink
- TBD
- 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](https://github.com/PX4/PX4-Autopilot/pull/27251), [PX4-Autopilot#27252: fix(mavlink): Remove legacy mavlink message requestors#27252](https://github.com/PX4/PX4-Autopilot/pull/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](https://github.com/PX4/PX4-Autopilot/pull/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](https://github.com/PX4/PX4-Autopilot/pull/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](https://github.com/PX4/PX4-Autopilot/pull/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](../advanced/rtk_gps.md). ([PX4-Autopilot#27084](https://github.com/PX4/PX4-Autopilot/pull/27084))
- New `ESTIMATOR_SENSOR_FUSION_STATUS` MAVLink stream exposes per-sensor intended and active fusion bitmasks to the GCS. ([PX4-Autopilot#26739](https://github.com/PX4/PX4-Autopilot/pull/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](https://github.com/PX4/PX4-Autopilot/pull/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](https://github.com/PX4/PX4-Autopilot/pull/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](https://github.com/PX4/PX4-Autopilot/pull/24697), [PX4-Autopilot#27789](https://github.com/PX4/PX4-Autopilot/pull/27789))
- The `cellular_status` uORB message and MAVLink `CELLULAR_STATUS` stream gained extended fields for richer modem/link reporting. ([PX4-Autopilot#27760](https://github.com/PX4/PX4-Autopilot/pull/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](https://github.com/PX4/PX4-Autopilot/pull/26988))
- The uXRCE-DDS client no longer stalls under high UDP load. ([PX4-Autopilot#26161](https://github.com/PX4/PX4-Autopilot/pull/26161))
## ROS 2
- [External modes](../ros2/px4_ros2_control_interface.md) 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](https://github.com/PX4/PX4-Autopilot/pull/27683))
<!-- MOVED THIS TO v1.17
- [PX4 ROS 2 Interface Library](../ros2/px4_ros2_control_interface.md) support for [Fixed Wing lateral/longitudinal setpoint](../ros2/px4_ros2_control_interface.md#fw-lateral-longitudinal-setpoint) (`FwLateralLongitudinalSetpointType`) and [VTOL transitions](../ros2/px4_ros2_control_interface.md#controlling-a-vtol). ([PX4-Autopilot#24056](https://github.com/PX4/PX4-Autopilot/pull/24056)).
- [PX4 ROS 2 Interface Library](../ros2/px4_ros2_control_interface.md) support for [ROS-based waypoint missions](../ros2/px4_ros2_waypoint_missions.md).
-->
### uXRCE-DDS
- uXRCE-DDS, add support for DDS `v3`, ROS 2 Lyrical and Rolling ([PX4-Autopilot#27597](https://github.com/PX4/PX4-Autopilot/pull/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](https://github.com/PX4/PX4-Autopilot/pull/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](https://github.com/PX4/PX4-Autopilot/pull/27157))
- Added a Zenoh build variant (`zenoh.px4board`) for the ARKV6X flight controller. ([PX4-Autopilot#25887](https://github.com/PX4/PX4-Autopilot/pull/25887))
## Simulation
### SITL
- [X-Plane SITL](../sim_xplane/index.md): new SITL integration with airframes for the Cessna 172, Bayraktar TB2, EHang 184, Alia-250, and a quad tailsitter. ([PX4-Autopilot#22493](https://github.com/PX4/PX4-Autopilot/pull/22493))
- [RotorPy SITL](../sim_rotorpy/index.md): added support for the RotorPy multirotor simulator, launchable via the standard simulator start scripts. ([PX4-Autopilot#27116](https://github.com/PX4/PX4-Autopilot/pull/27116))
- MAVLink can now be bound to a specific network interface by setting the `PX4_NET_INTERFACE` environment variable. ([PX4-Autopilot#26385](https://github.com/PX4/PX4-Autopilot/pull/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](https://github.com/PX4/PX4-Autopilot/pull/27396))
- The simulated airspeed sensor (`sensor_airspeed_sim`) now supports off, stuck, and wrong failure injection via `MAV_CMD_INJECT_FAILURE`. ([PX4-Autopilot#27006](https://github.com/PX4/PX4-Autopilot/pull/27006))
### Gazebo
- Add [ridge world](../sim_gazebo_gz/worlds.md#ridge) for testing terrain following with 1D lidar. ([PX4-Autopilot#27600](https://github.com/PX4/PX4-Autopilot/pull/27600))
- The [gstreamer plugin](../sim_gazebo_gz/index.md) now supports streaming video from multiple cameras/vehicles simultaneously over UDP (base port plus instance offset); RTMP remains single-stream. ([PX4-Autopilot#27275](https://github.com/PX4/PX4-Autopilot/pull/27275))
### SIH
- Add option to set wind velocity ([PX4-Autopilot#26467](https://github.com/PX4/PX4-Autopilot/pull/26467))
- Added a quadratic thrust model and a hexacopter (`sihsim_hex`) airframe for more realistic multirotor simulation. ([PX4-Autopilot#26587](https://github.com/PX4/PX4-Autopilot/pull/26587))
- Added a propeller aerodynamic model with advance ratio, plus new HIL airframes including a hexacopter (`1105_rc_hexa_x_sih`). ([PX4-Autopilot#26720](https://github.com/PX4/PX4-Autopilot/pull/26720))
- Added ranging-beacon simulation with configurable measurement noise via [SIH_RNGBC_NOISE](../advanced_config/parameter_reference.md#SIH_RNGBC_NOISE) (default `30` m). ([PX4-Autopilot#26772](https://github.com/PX4/PX4-Autopilot/pull/26772))
- The simulator now publishes ESC telemetry (per-motor RPM and temperature) for testing ESC status handling in SITL. ([PX4-Autopilot#27626](https://github.com/PX4/PX4-Autopilot/pull/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](https://github.com/PX4/PX4-Autopilot/pull/26672))
### HIL
- Sensor calibration is now disabled while running in hardware-in-the-loop, preventing accidental calibration of simulated sensors. ([PX4-Autopilot#26942](https://github.com/PX4/PX4-Autopilot/pull/26942))
<!-- MOVED THIS TO v1.17
- Overhaul rover simulation:
- Add synthetic differential rover model: [PX4-gazebo-models#107](https://github.com/PX4/PX4-gazebo-models/pull/107)
- Add synthetic mecanum rover model: [PX4-gazebo-models#113](https://github.com/PX4/PX4-gazebo-models/pull/113)
- Update synthetic ackermann rover model: [PX4-gazebo-models#117](https://github.com/PX4/PX4-gazebo-models/pull/117)
-->
## Debug & Logging
### 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](../advanced_config/parameter_reference.md#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](../advanced_config/parameter_reference.md#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](https://github.com/PX4/PX4-Autopilot/pull/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](https://github.com/PX4/PX4-Autopilot/pull/26922))
- [Asset Tracking](../debug/asset_tracking.md): Automatic tracking and logging of external device information including vendor name, firmware and hardware version, serial numbers. Currently supports DroneCAN devices. ([PX4-Autopilot#25617](https://github.com/PX4/PX4-Autopilot/pull/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](https://github.com/PX4/PX4-Autopilot/pull/26731))
- New `px4bench` [hardware bench testing](../test_and_ci/bench_testing.md) 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](https://github.com/PX4/PX4-Autopilot/pull/27823))
- SITL can now be built with [AddressSanitizer and ThreadSanitizer](../test_and_ci/sanitizers.md) 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](https://github.com/PX4/PX4-Autopilot/pull/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](https://github.com/PX4/PX4-Autopilot/pull/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](https://github.com/PX4/PX4-Autopilot/pull/27162), [PX4-Autopilot#27178](https://github.com/PX4/PX4-Autopilot/pull/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](https://github.com/PX4/PX4-Autopilot/pull/27127), [PX4-Autopilot#27148](https://github.com/PX4/PX4-Autopilot/pull/27148), [PX4-Autopilot#26702](https://github.com/PX4/PX4-Autopilot/pull/26702))
- PX4-OpticalFlow is now a git submodule instead of a build-time download, making SITL builds reproducible and offline-friendly. ([PX4-Autopilot#27184](https://github.com/PX4/PX4-Autopilot/pull/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](https://github.com/PX4/PX4-Autopilot/pull/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.

View File

@@ -13,11 +13,11 @@ const { site } = useData();
</div>
</div>
This contains changes to PX4 `main` branch after the next major release ([PX v1.18](../releases/1.16.md)).
This contains changes to the PX4 `main` branch that are not included in the next release ([PX4 v1.18](../releases/1.18.md)).
::: warning
PX4 v1.18 is in alpha/beta testing.
Update these notes with features that are going to be in `main` (PX4 v1.18 or later) but not the PX4 v1.18 release.
PX4 v1.18 is in beta testing.
Update these notes with features that are going to be in `main` (PX4 v1.19 or later) but not the PX4 v1.18 release.
:::
## Read Before Upgrading