diff --git a/docs/zh/SUMMARY.md b/docs/zh/SUMMARY.md
index 1456010a30..8fa3acdc49 100644
--- a/docs/zh/SUMMARY.md
+++ b/docs/zh/SUMMARY.md
@@ -386,6 +386,7 @@
- [Peripherals](peripherals/index.md)
- [ADSB/FLARM/UTM (Traffic Avoidance)](peripherals/adsb_flarm.md)
+ - [On-Screen Display (OSD)](peripherals/osd.md)
- [降落伞](peripherals/parachute.md)
- [Remote ID](peripherals/remote_id.md)
@@ -492,6 +493,7 @@
- [Gazebo Models Repository](sim_gazebo_gz/gazebo_models.md)
- [Multi-Vehicle Sim](sim_gazebo_gz/multi_vehicle_simulation.md)
- [SIH Simulation](sim_sih/index.md)
+ - [Hawkeye Visualizer](sim_hawkeye/index.md)
- [Gazebo Classic Simulation](sim_gazebo_classic/index.md)
- [Vehicles](sim_gazebo_classic/vehicles.md)
- [Worlds](sim_gazebo_classic/worlds.md)
diff --git a/docs/zh/advanced/community_supported_dev_env.md b/docs/zh/advanced/community_supported_dev_env.md
index 99bd13ba5c..3f89fe0589 100644
--- a/docs/zh/advanced/community_supported_dev_env.md
+++ b/docs/zh/advanced/community_supported_dev_env.md
@@ -1,6 +1,6 @@
# 社区支持的开发者工具
-本节包含 _社区支持的_ 开发搭建、集成开发环境、模拟器和其他工具的信息。
+本章节包含社区支持的开发环境搭建,IDE,模拟器和其他工具。
:::warning
这些设置没有核心开发团队的维护、测试或支持
@@ -15,9 +15,9 @@
- 开发平台/设置
- [CentOS Linux](../dev_setup/dev_env_linux_centos.md)
- [Arch Linux](../dev_setup/dev_env_linux_arch.md)
- - [Windows VM Toolchain](../dev_setup/dev_env_windows_vm.md) — 在 Windows 虚拟机中运行的 Ubuntu 。
- - [Windows Cygwin Toolchain](../dev_setup/dev_env_windows_cygwin.md) — 仅适用于 PX4 v1.12 的 Windows 设置
+ - [Windows VM 工具链](../dev_setup/dev_env_windows_vm.md) — 在 Windows 虚拟机中安装 Ubuntu。
+ - [Windows Cygwin 工具链](../dev_setup/dev_env_windows_cygwin.md) — 仅适用于 PX4 v1.12 的 Windows 设置
- [Windows Cygwin 工具链维护](../dev_setup/dev_env_windows_cygwin_packager_setup.md)
- 集成开发环境
- [Qt Creator IDE](../dev_setup/qtcreator.md)
-- [仿真模拟器](../simulation/community_supported_simulators.md) — [Simulation-In-Hardware](../sim_sih/index.md), [FlightGear](../sim_flightgear/index.md), [JSBSim](../sim_jsbsim/index.md), [AirSim](../sim_airsim/index.md), [HITL](../simulation/hitl.md)
+- [模拟器](../simulation/community_supported_simulators.md) — [Simulation-In-Hardware](../sim_sih/index.md), [FlightGear](../sim_flightgear/index.md), [JSBSim](../sim_jsbsim/index.md), [AirSim](../sim_airsim/index.md), [HITL](../simulation/hitl.md)
diff --git a/docs/zh/advanced_features/index.md b/docs/zh/advanced_features/index.md
index 997d8340b8..758f825ee8 100644
--- a/docs/zh/advanced_features/index.md
+++ b/docs/zh/advanced_features/index.md
@@ -2,11 +2,11 @@
本节包含了部分关于 PX4 自驾仪的高级功能:
-- [Air Traffic Avoidance: ADS-B/FLARM/UTM](../peripherals/adsb_flarm.md)
-- [Computer Vision](../computer_vision/index.md)
- - [Collision Prevention](../computer_vision/collision_prevention.md)
- - [Motion Capture (MoCap)](../computer_vision/motion_capture.md)
- - [Visual Inertial Odometry (VIO)](../computer_vision/visual_inertial_odometry.md)
-- [Iridium/RockBlock Satellite Communication System](../advanced_features/satcom_roadblock.md)
-- [Precision Landing](../advanced_features/precland.md)
+- [空中交通防撞: ADS-B/FLARM/UTM](../peripherals/adsb_flarm.md)
+- [机器视觉](../computer_vision/index.md)
+ - [碰撞预防](../computer_vision/collision_prevention.md)
+ - [运动捕捉(MoCap)](../computer_vision/motion_capture.md)
+ - [视觉惯性里程计 (VIO)] (../computer_vision/visual_inertial_odometry.md)
+- [铱星 / RockBlock 卫星通信系统](../advanced_features/satcom_roadblock.md)
+- [精准着陆](../advanced_features/precland.md)
- [RTK GNSS (GPS)](../gps_compass/rtk_gps.md)
diff --git a/docs/zh/camera/camera_architecture.md b/docs/zh/camera/camera_architecture.md
index d623386b64..4cccaf7b59 100644
--- a/docs/zh/camera/camera_architecture.md
+++ b/docs/zh/camera/camera_architecture.md
@@ -8,10 +8,10 @@ See [Camera](../camera/index.md) for information about _using_ cameras.
## 综述
-PX4 integrates with three types of cameras:
+PX4 集成了三种类型的相机:
-- [MAVLink cameras](../camera/mavlink_v2_camera.md) that support the [Camera Protocol v2](https://mavlink.io/en/services/camera.html) (**RECOMMENDED**).
-- [Simple MAVLink cameras](../camera/mavlink_v1_camera.md) that support the older [Camera Protocol v1](https://mavlink.io/en/services/camera.html).
+- [MAVLink 相机](../camera/mavlink_v2_camera.md) 支持 [Camera Protocol v2](https://mavlink.io/en/services/camera.html) (**推荐**)。
+- [简单的 MAVLink 摄像头](../camera/mavlink_v1_camera.md) 支持旧的 [Camera Protocol v1](https://mavlink.io/en/services/camera.html)。
- [Cameras attached to flight controller outputs](../camera/fc_connected_camera.md), which are controlled using the [Camera Protocol v1](https://mavlink.io/en/services/camera.html).
All of these cameras need to respond to MAVLink commands received over MAVLink or found in missions (the specific protocol depends on the camera).
diff --git a/docs/zh/camera/fc_connected_camera.md b/docs/zh/camera/fc_connected_camera.md
index 40a4774f41..691dc85e09 100644
--- a/docs/zh/camera/fc_connected_camera.md
+++ b/docs/zh/camera/fc_connected_camera.md
@@ -1,4 +1,4 @@
-# Cameras Connected to Flight Controller Outputs
+# 连接飞控输出的相机
This topic explains how to use PX4 with a [camera](../camera/index.md) that is attached to flight controller outputs.
diff --git a/docs/zh/camera/index.md b/docs/zh/camera/index.md
index 6367fb82c0..eebbdabcef 100644
--- a/docs/zh/camera/index.md
+++ b/docs/zh/camera/index.md
@@ -1,14 +1,14 @@
-# Cameras
+# 相机
相机对许多[有效载荷使用](../payloads/use_cases.md)很重要,包括绘图和勘测、监视、搜索和救援、作物健康和虫害检测等等。
它们通常安装在一个 [云台](../advanced/gimbal_control.md)上,它能够提供相机稳定性、点跟踪和独立运动。
## 相机类型
-PX4 integrates with three types of cameras:
+PX4 集成了三种类型的相机:
-- [MAVLink cameras](../camera/mavlink_v2_camera.md) that support the [Camera Protocol v2](https://mavlink.io/en/services/camera.html) (**RECOMMENDED**).
-- [Simple MAVLink cameras](../camera/mavlink_v1_camera.md) that support the older [Camera Protocol v1](https://mavlink.io/en/services/camera.html).
+- [MAVLink 相机](../camera/mavlink_v2_camera.md) 支持 [Camera Protocol v2](https://mavlink.io/en/services/camera.html) (**推荐**)。
+- [简单的 MAVLink 摄像头](../camera/mavlink_v1_camera.md) 支持旧的 [Camera Protocol v1](https://mavlink.io/en/services/camera.html)。
- [Cameras attached to flight controller outputs](../camera/fc_connected_camera.md), which are controlled using the [Camera Protocol v1](https://mavlink.io/en/services/camera.html).
推荐[MAVLink 摄像头](../camera/mavlink_v2_camera.md),因为它们使用简单一致的命令/消息集提供了最广泛的相机功能访问。
diff --git a/docs/zh/companion_computer/companion_computer_peripherals.md b/docs/zh/companion_computer/companion_computer_peripherals.md
index 97269851aa..db6c6e9225 100644
--- a/docs/zh/companion_computer/companion_computer_peripherals.md
+++ b/docs/zh/companion_computer/companion_computer_peripherals.md
@@ -43,7 +43,7 @@ Options include:
- [SparkFun Logic Level Converter - Bi-Directional](https://www.sparkfun.com/sparkfun-logic-level-converter-bi-directional.html)
- [4-channel I2C-safe Bi-directional Logic Level Converter - BSS138](https://www.adafruit.com/product/757)
-## Cameras
+## 相机
Cameras are used image and video capture, and more generally to provide data for [computer vision](../computer_vision/index.md) applications (in this case the "cameras" may only provide processed data, not raw images).
diff --git a/docs/zh/complete_vehicles/index.md b/docs/zh/complete_vehicles/index.md
index 5ec36bf09e..d1a5e9b42a 100644
--- a/docs/zh/complete_vehicles/index.md
+++ b/docs/zh/complete_vehicles/index.md
@@ -1,8 +1,8 @@
# 整机
-For frame-type specific information about fully-assembled vehicles that can run PX4 see:
+如需查看支持 PX4 的成品整机、各机架专属适配说明,详见:
-- Multicopters: [Complete Vehicles (MC)](../complete_vehicles_mc/index.md) (also see [Kits (MC)](../frames_multicopter/kits.md), [DIY Builds](../frames_multicopter/diy_builds.md))
-- VTOL: [Complete Vehicles (VTOL)](../complete_vehicles_vtol/index.md)
-- Fixed-wing: [Complete Vehicles (Fixed-Wing)](../complete_vehicles_fw/index.md) (also see [DIY Builds](../frames_plane/diy_builds.md))
+- 多旋翼: [Complete Vehicles (MC)](../complete_vehicles_mc/index.md) (也可以看 [Kits (MC)](../frames_multicopter/kits.md),[DIY Builds](../frames_multicopter/diy_builds.md))
+- 垂起:[整机 (VTOL)](../complete_vehicles_vtol/index.md)
+- 固定翼:[整机 (Fixed-Wing)](../complete_vehicles_fw/index.md) (也可以看 [DIY Builds](../frames_plane/diy_builds.md))
- Autogyro: [Autogyros (experimental) > Complete Frames with PX4 Preinstalled](../frames_autogyro/index.md#complete-frames-with-px4-preinstalled)
diff --git a/docs/zh/config/safety.md b/docs/zh/config/safety.md
index 32e76c740e..e0e7e9a77e 100644
--- a/docs/zh/config/safety.md
+++ b/docs/zh/config/safety.md
@@ -251,6 +251,18 @@ The relevant parameters are shown below:
| ---------------------------------------------------------------------------------------------------------------------- | ------------------------- |
| [NAV_TRAFF_AVOID](../advanced_config/parameter_reference.md#NAV_TRAFF_AVOID) | 设置故障保护动作:禁用、警告、返航模式、降落模式。 |
+## Remote ID Failsafe
+
+
+
+The Remote ID failsafe is triggered when the [Remote ID (Open Drone ID)](../peripherals/remote_id.md) module is not detected or reports as unhealthy while the vehicle is armed.
+
+The failsafe action and arming behaviour are both configured by the `COM_ARM_ODID` parameter:
+
+| 参数 | 描述 |
+| ----------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| [COM_ARM_ODID](../advanced_config/parameter_reference.md#COM_ARM_ODID) | Remote ID arming check and in-flight failsafe. `0`: Disabled (default), `1`: Warning only, `2`: Error only (prevents arming), `3`: Return, `4`: Land, `5`: Terminate.
On failsafe:
- `Error`, `Return`, `Land` and `Terminate` prevent arming.
- `Return`, `Land` and `Terminate` start the associated action/mode when airborne. |
+
## Quad-chute Failsafe
Failsafe for when a VTOL vehicle can no longer fly in fixed-wing mode, perhaps due to the failure of a pusher motor, airspeed sensor, or control surface.
@@ -298,6 +310,19 @@ Note that this check is _always enabled on takeoff_, irrespective of the `CBRK_F
The failure detector is active in all vehicle types and modes, except for those where the vehicle is _expected_ to do flips (i.e. [Acro mode (MC)](../flight_modes_mc/acro.md), [Acro mode (FW)](../flight_modes_fw/acro.md), and [Manual (FW)](../flight_modes_fw/manual.md)).
+### Altitude Loss Trigger {#altitude-loss-trigger}
+
+
+
+The failure detector can be configured to trigger if a rotary-wing vehicle loses too much altitude below its commanded setpoint while in an altitude-controlled flight mode (such as [Position mode](../flight_modes_mc/position.md) or [Altitude mode](../flight_modes_mc/altitude.md)).
+
+If the vehicle descends more than [FD_ALT_LOSS](#FD_ALT_LOSS) meters below the setpoint, [flight termination](../advanced_config/flight_termination.md) is triggered, which may deploy a [parachute](../peripherals/parachute.md).
+
+| 参数 | 描述 |
+| ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
+| [FD_ALT_LOSS](../advanced_config/parameter_reference.md#FD_ALT_LOSS) | Altitude loss threshold (m). Flight termination is triggered when the vehicle drops this far below the setpoint. 设置为 0 以禁用。 |
+| [FD_ALT_LOSS_T](../advanced_config/parameter_reference.md#FD_ALT_LOSS_T) | Time (s) the vehicle must remain below the threshold before flight termination is triggered. |
+
### 姿态触发器
The failure detector can be configured to trigger if the vehicle attitude exceeds predefined pitch and roll values for longer than a specified time.
@@ -433,15 +458,15 @@ The [relevant parameters](../advanced_config/parameters.md) are shown below:
These parameters can be used to set conditions that prevent arming.
-| 参数 | 描述 |
-| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| [COM_ARMABLE](../advanced_config/parameter_reference.md#COM_ARMABLE) | Enable arming (at all). `0`: Disabled, `1`: Enabled (default). |
-| [COM_ARM_BAT_MIN](../advanced_config/parameter_reference.md#COM_ARM_BAT_MIN) | Minimum battery level for arming. `0`: Disabled (default). Values: `0`-`0.9`, |
-| [COM_ARM_WO_GPS](../advanced_config/parameter_reference.md#COM_ARM_WO_GPS) | Enable arming without GPS. `0`: Disabled, `1`: Enabled (default). |
-| [COM_ARM_MIS_REQ](../advanced_config/parameter_reference.md#COM_ARM_MIS_REQ) | Require valid mission to arm. `0`: Disabled (default), `1`: Enabled . |
-| [COM_ARM_SDCARD](../advanced_config/parameter_reference.md#COM_ARM_SDCARD) | Require SD card to arm. `0`: Disabled (default), `1`: Warning, `2`: Enabled. |
-| [COM_ARM_AUTH_REQ](../advanced_config/parameter_reference.md#COM_ARM_AUTH_REQ) | Requires arm authorisation from an external (MAVLink) system. Flag to allow arming (at all). `1`: Enabled, `0`: Disabled (default). Associated configuration parameters are prefixed with `COM_ARM_AUTH_`. |
-| [COM_ARM_ODID](../advanced_config/parameter_reference.md#COM_ARM_ODID) | Require healthy Remote ID system to arm. `0`: Disabled (default), `1`: Warning, `2`: Enabled. |
+| 参数 | 描述 |
+| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| [COM_ARMABLE](../advanced_config/parameter_reference.md#COM_ARMABLE) | Enable arming (at all). `0`: Disabled, `1`: Enabled (default). |
+| [COM_ARM_BAT_MIN](../advanced_config/parameter_reference.md#COM_ARM_BAT_MIN) | Minimum battery level for arming. `0`: Disabled (default). Values: `0`-`0.9`, |
+| [COM_ARM_WO_GPS](../advanced_config/parameter_reference.md#COM_ARM_WO_GPS) | Enable arming without GPS. `0`: Disabled, `1`: Enabled (default). |
+| [COM_ARM_MIS_REQ](../advanced_config/parameter_reference.md#COM_ARM_MIS_REQ) | Require valid mission to arm. `0`: Disabled (default), `1`: Enabled . |
+| [COM_ARM_SDCARD](../advanced_config/parameter_reference.md#COM_ARM_SDCARD) | Require SD card to arm. `0`: Disabled (default), `1`: Warning, `2`: Enabled. |
+| [COM_ARM_AUTH_REQ](../advanced_config/parameter_reference.md#COM_ARM_AUTH_REQ) | Requires arm authorisation from an external (MAVLink) system. Flag to allow arming (at all). `1`: Enabled, `0`: Disabled (default). Associated configuration parameters are prefixed with `COM_ARM_AUTH_`. |
+| [COM_ARM_ODID](../advanced_config/parameter_reference.md#COM_ARM_ODID) | Remote ID arming check and in-flight failsafe. `0`: Disabled (default), `1`: Warning only, `2`: Error only, `3`: Return, `4`: Land, `5`: Terminate. See [Remote ID Failsafe](#remote-id-failsafe). |
In addition there are a number of parameters that configure system and sensor limits that make prevent arming if exceeded: [COM_CPU_MAX](../advanced_config/parameter_reference.md#COM_CPU_MAX), [COM_ARM_IMU_ACC](../advanced_config/parameter_reference.md#COM_ARM_IMU_ACC), [COM_ARM_IMU_GYR](../advanced_config/parameter_reference.md#COM_ARM_IMU_GYR), [COM_ARM_MAG_ANG](../advanced_config/parameter_reference.md#COM_ARM_MAG_ANG), [COM_ARM_MAG_STR](../advanced_config/parameter_reference.md#COM_ARM_MAG_STR).
diff --git a/docs/zh/config_mc/pid_tuning_guide_multicopter.md b/docs/zh/config_mc/pid_tuning_guide_multicopter.md
index 2a061a75dc..c4a0b7a251 100644
--- a/docs/zh/config_mc/pid_tuning_guide_multicopter.md
+++ b/docs/zh/config_mc/pid_tuning_guide_multicopter.md
@@ -65,7 +65,7 @@ The derivative term (**D**) is on the feedback path in order to avoid an effect
有关详细信息,请参阅︰
- [Not all PID controllers are the same](https://www.controleng.com/not-all-pid-controllers-are-the-same/) (www.controleng.com)
-- [PID controller > Standard versus parallel (ideal) PID form](https://en.wikipedia.org/wiki/PID_controller#Standard_versus_parallel_\(ideal\)_form) (Wikipedia)
+- [PID controller > Standard versus parallel (ideal) PID form](https://en.wikipedia.org/wiki/PID_controller#Standard_versus_parallel_(ideal)_form) (Wikipedia)
:::
diff --git a/docs/zh/dev_log/logging.md b/docs/zh/dev_log/logging.md
index 36bb608f46..a40a521be3 100644
--- a/docs/zh/dev_log/logging.md
+++ b/docs/zh/dev_log/logging.md
@@ -83,6 +83,31 @@ This configuration will log sensor_accel 0 at full rate, sensor_accel 1 at 10Hz,
There are several scripts to analyze and convert logging files in the [pyulog](https://github.com/PX4/pyulog) repository.
+## Log Cleanup
+
+PX4 automatically manages log storage by rotating log files during writing and cleaning up old logs when starting a new log.
+Rotation is **on by default**: when the current file reaches [SDLOG_MAX_SIZE](../advanced_config/parameter_reference.md#SDLOG_MAX_SIZE), the logger closes it and opens a new one, and old `.ulg` files are deleted (oldest first) to keep free space above the threshold set by [SDLOG_ROTATE](../advanced_config/parameter_reference.md#SDLOG_ROTATE).
+
+Three parameters control how much space logs may use:
+
+- [SDLOG_ROTATE](../advanced_config/parameter_reference.md#SDLOG_ROTATE) is the maximum disk usage percentage (default 90).
+ Cleanup prior to logging (see below) ensures at least `(100 - SDLOG_ROTATE)%` of the disk stays free at all times, **even while writing a new log file**.
+ Setting it to `0` disables space-based cleanup entirely; setting it to `100` lets logs fill the disk completely.
+- [SDLOG_MAX_SIZE](../advanced_config/parameter_reference.md#SDLOG_MAX_SIZE) is the maximum size of a single log file in MB
+ (default 1024). It also reserves headroom so that a full new file always fits after cleanup.
+- [SDLOG_DIRS_MAX](../advanced_config/parameter_reference.md#SDLOG_DIRS_MAX) optionally caps the number of log directories kept (default 0, disabled).
+ This runs on top of the space-based cleanup and is mainly useful for capping log usage by count independent of available disk size (e.g. in SITL, where it defaults to `7`).
+
+At log start, the cleanup threshold is `((100 - SDLOG_ROTATE)% of disk) + SDLOG_MAX_SIZE`.
+The oldest logs are deleted until the free space meets this threshold.
+For example, on an 8 GB card with defaults, cleanup keeps at least `820 + 1024 = ~1.8 GB` free at log start,
+so ~6 GB is usable for logs and disk usage never exceeds 90% during writing.
+Small flash targets override `SDLOG_MAX_SIZE` to a smaller value to keep more logs within the available space.
+
+PX4 stores logs in directories named with one of two formats, depending on whether the system has valid time: date directories (such as `2024-01-15` or `2024-01-16`) when it does, and session directories (`sess001`) when it doesn't.
+The cleanup algorithm prioritises deleting logs from whichever format is not currently in use.
+This ensures that stale logs from a different time mode are cleaned up before current logs.
+
## File size limitations
The maximum file size depends on the file system and OS.
diff --git a/docs/zh/dev_setup/dev_env_mac.md b/docs/zh/dev_setup/dev_env_mac.md
index da24c84155..671d9a6ff6 100644
--- a/docs/zh/dev_setup/dev_env_mac.md
+++ b/docs/zh/dev_setup/dev_env_mac.md
@@ -38,7 +38,7 @@ To build for [other targets](../dev_setup/dev_env.md#supported-targets) you will
4. **Ensure Python 3 is available.** Some PX4 build scripts require `python3` and `pip3` to be in your `PATH`. The Xcode Command Line Tools include Python 3 by default.
- :::tip
+ ::: tip
If you need to install or manage a different Python version, we recommend [pyenv](https://github.com/pyenv/pyenv), which lets you set global and per-directory Python versions.
:::
@@ -59,6 +59,19 @@ To build for [other targets](../dev_setup/dev_env.md#supported-targets) you will
./Tools/setup/macos.sh --sim-tools
```
+ ::: info
+ The setup script creates a Python virtual environment at `.venv` in the repo root and installs all Python dependencies into it. This keeps PX4's Python requirements isolated from your system Python and avoids conflicts with Homebrew's externally-managed Python.
+
+ Activate it before building:
+
+ ```sh
+ source .venv/bin/activate
+ ```
+
+ You'll need to re-run this command in each new terminal session. To activate it automatically when you `cd` into the repo, consider a tool like [direnv](https://direnv.net/) or add the activation to your `~/.zshrc`.
+
+:::
+
This installs:
- **Toolchain packages** from the `osx-cross/arm` and `PX4/px4` Homebrew taps — ARM cross-compiler (`arm-gcc-bin@13`), `cmake`, `ninja`, `ccache`, `fastdds`, `genromfs`, `kconfig-frontends`, and other build tools
diff --git a/docs/zh/features_mc/index.md b/docs/zh/features_mc/index.md
index 78e8970eb8..d64a5f41d1 100644
--- a/docs/zh/features_mc/index.md
+++ b/docs/zh/features_mc/index.md
@@ -3,7 +3,7 @@
This section lists features that are specific to (or customised for) multicopters:
- [Flight Modes](../flight_modes_mc/index.md)
-- [Collision Prevention](../computer_vision/collision_prevention.md)
-- [Precision Landing](../advanced_features/precland.md)
+- [碰撞预防](../computer_vision/collision_prevention.md)
+- [精准着陆](../advanced_features/precland.md)
- [Terrain Following/Holding](../flying/terrain_following_holding.md)
- [Throw Launch](../flight_modes_mc/throw_launch.md)
diff --git a/docs/zh/flight_controller/beaglebone_blue.md b/docs/zh/flight_controller/beaglebone_blue.md
index f2532acf4f..34f419c894 100644
--- a/docs/zh/flight_controller/beaglebone_blue.md
+++ b/docs/zh/flight_controller/beaglebone_blue.md
@@ -21,7 +21,7 @@ _BeagleBone Blue_ images can be found here:
- [Test OS images](https://rcn-ee.net/rootfs/bb.org/testing/) (updated frequently).
Information about flashing OS images can be found on [this page](https://github.com/beagleboard/beaglebone-blue/wiki/Flashing-firmware).
-Other useful information can be found in the [FAQ](https://github.com/beagleboard/beaglebone-blue/wiki/Frequently-Asked-Questions-\(FAQ\)).
+Other useful information can be found in the [FAQ](https://github.com/beagleboard/beaglebone-blue/wiki/Frequently-Asked-Questions-(FAQ)).
:::tip
Optionally you can update to a realtime kernel, and if you do, re-check if _librobotcontrol_ works properly with the realtime kernel.
diff --git a/docs/zh/flight_controller/gearup_airbrainh743.md b/docs/zh/flight_controller/gearup_airbrainh743.md
index ea671ff3c8..6c966cda55 100644
--- a/docs/zh/flight_controller/gearup_airbrainh743.md
+++ b/docs/zh/flight_controller/gearup_airbrainh743.md
@@ -91,6 +91,18 @@ Firmware can be installed in any of the normal ways:
- [Load the firmware](../config/firmware.md) using _QGroundControl_.
You can use either pre-built firmware or your own custom firmware.
+### Flash Storage Troubleshooting
+
+The AirBrainH743 uses a 128MB NAND flash (W25N) with a littlefs filesystem for [logging](../dev_log/logging.md).
+If the flash filesystem becomes corrupted, you can reformat it using the [System Console](../debug/system_console.md):
+
+```sh
+mklittlefs /dev/mtd0 /fs/flash
+```
+
+This will erase all data on the flash and create a fresh littlefs filesystem.
+The filesystem is immediately available after the command completes.
+
### 系统控制台
UART1 (ttyS0) is configured for use as the [System Console](../debug/system_console.md).
diff --git a/docs/zh/frames_plane/reptile_dragon_2.md b/docs/zh/frames_plane/reptile_dragon_2.md
index 1fa85eb461..232d1f0a5c 100644
--- a/docs/zh/frames_plane/reptile_dragon_2.md
+++ b/docs/zh/frames_plane/reptile_dragon_2.md
@@ -1,6 +1,6 @@
# Reptile Dragon 2 (RD2) Build
-The Reptile Dragon 2 is a twin motor RC airplane specifically designed for efficient FPV [(first person view)](https://en.wikipedia.org/wiki/First-person_view_\(radio_control\)) flying.
+The Reptile Dragon 2 is a twin motor RC airplane specifically designed for efficient FPV [(first person view)](https://en.wikipedia.org/wiki/First-person_view_(radio_control)) flying.
Being specific for FPV, the RD2 is optimized for easy mounting of cameras, sensors, logic electronics, large batteries, antennas, and other payload components which would be found on a typical FPV airplane.
This emphasis on payload makes this airplane an ideal candidate for a PX4 installation.
diff --git a/docs/zh/frames_plane/turbo_timber_evolution.md b/docs/zh/frames_plane/turbo_timber_evolution.md
index ba6a75d5f7..56ac8939b6 100644
--- a/docs/zh/frames_plane/turbo_timber_evolution.md
+++ b/docs/zh/frames_plane/turbo_timber_evolution.md
@@ -32,7 +32,7 @@ Key Build Features:
- Easy access to Pixhawk USB and debug connector
-- [First Person View (FPV)](https://en.wikipedia.org/wiki/First-person_view_\(radio_control\)) with camera pan mount
+- [First Person View (FPV)](https://en.wikipedia.org/wiki/First-person_view_(radio_control)) with camera pan mount
- Air data provided by wing slung pitot static pod
diff --git a/docs/zh/mavlink/mavlink_profiles.md b/docs/zh/mavlink/mavlink_profiles.md
index c95608ef27..c3ae6c8019 100644
--- a/docs/zh/mavlink/mavlink_profiles.md
+++ b/docs/zh/mavlink/mavlink_profiles.md
@@ -13,7 +13,7 @@ The available profiles (in source-code declaration order) are:
- _Gimbal_ (`MAVLINK_MODE_GIMBAL`): Messages for a gimbal. Note this also enables message forwarding.
- _External Vision_ (`MAVLINK_MODE_EXTVISION`): Messages for offboard vision systems.
- _External Vision Minimal_ (`MAVLINK_MODE_EXTVISIONMIN`): Messages for offboard vision systems on slower links.
-- _OSD_ (`MAVLINK_MODE_OSD`): Set of messages for an OSD system.
+- _OSD_ (`MAVLINK_MODE_OSD`): Set of messages for an [On-Screen Display (OSD)](../peripherals/osd.md#mavlink-osd) system.
- _Magic_ (`MAVLINK_MODE_MAGIC`): No messages streamed by default. Used when configuring streaming dynamically via MAVLink.
- _Custom_ (`MAVLINK_MODE_CUSTOM`): Same as `MAVLINK_MODE_MAGIC`.
- _Config_ (`MAVLINK_MODE_CONFIG`): Set of messages for configuration interface, sent at higher rates. This is used, for example, to send the `MAVLINK_MODE_NORMAL` message set via USB to a GCS.
@@ -29,7 +29,7 @@ The profile defines the _default_ messages and rates.
A connected MAVLink system can still request the streams/rates it wants using [MAV_CMD_SET_MESSAGE_INTERVAL](https://mavlink.io/en/messages/common.html#MAV_CMD_SET_MESSAGE_INTERVAL).
:::
-To find the exact messages in each profile, search for ` configure_streams_to_default` (or the above profile names) in [mavlink_main.cpp](https://github.com/PX4/PX4-Autopilot/blob/main/src/modules/mavlink/mavlink_main.cpp).
+To find the exact messages in each profile, search for `configure_streams_to_default` (or the above profile names) in [mavlink_main.cpp](https://github.com/PX4/PX4-Autopilot/blob/main/src/modules/mavlink/mavlink_main.cpp).
## Assigning Profiles to Ports
diff --git a/docs/zh/middleware/dds_topics.md b/docs/zh/middleware/dds_topics.md
index 0771ae426b..b29de5f607 100644
--- a/docs/zh/middleware/dds_topics.md
+++ b/docs/zh/middleware/dds_topics.md
@@ -96,210 +96,210 @@ They are not build into the module, and hence are neither published or subscribe
:::details
See messages
-- [EstimatorAidSource3d](../msg_docs/EstimatorAidSource3d.md)
-- [GimbalControls](../msg_docs/GimbalControls.md)
-- [LaunchDetectionStatus](../msg_docs/LaunchDetectionStatus.md)
-- [GpioConfig](../msg_docs/GpioConfig.md)
-- [ParameterResetRequest](../msg_docs/ParameterResetRequest.md)
-- [PwmInput](../msg_docs/PwmInput.md)
-- [DebugValue](../msg_docs/DebugValue.md)
-- [FixedWingLateralStatus](../msg_docs/FixedWingLateralStatus.md)
-- [MavlinkLog](../msg_docs/MavlinkLog.md)
-- [UlogStreamAck](../msg_docs/UlogStreamAck.md)
-- [EventV0](../msg_docs/EventV0.md)
-- [FixedWingRunwayControl](../msg_docs/FixedWingRunwayControl.md)
-- [EscEepromRead](../msg_docs/EscEepromRead.md)
-- [RoverSpeedStatus](../msg_docs/RoverSpeedStatus.md)
-- [PositionControllerStatus](../msg_docs/PositionControllerStatus.md)
-- [DebugArray](../msg_docs/DebugArray.md)
-- [DifferentialPressure](../msg_docs/DifferentialPressure.md)
-- [GimbalDeviceInformation](../msg_docs/GimbalDeviceInformation.md)
-- [FlightPhaseEstimation](../msg_docs/FlightPhaseEstimation.md)
-- [EstimatorEventFlags](../msg_docs/EstimatorEventFlags.md)
-- [GpsDump](../msg_docs/GpsDump.md)
-- [OrbTestLarge](../msg_docs/OrbTestLarge.md)
-- [VehicleImuStatus](../msg_docs/VehicleImuStatus.md)
-- [OpenDroneIdArmStatus](../msg_docs/OpenDroneIdArmStatus.md)
-- [NeuralControl](../msg_docs/NeuralControl.md)
-- [NormalizedUnsignedSetpoint](../msg_docs/NormalizedUnsignedSetpoint.md)
-- [ActuatorArmed](../msg_docs/ActuatorArmed.md)
-- [GainCompression](../msg_docs/GainCompression.md)
-- [GimbalDeviceSetAttitude](../msg_docs/GimbalDeviceSetAttitude.md)
-- [GimbalManagerInformation](../msg_docs/GimbalManagerInformation.md)
-- [EscStatus](../msg_docs/EscStatus.md)
-- [FailureDetectorStatus](../msg_docs/FailureDetectorStatus.md)
-- [HoverThrustEstimate](../msg_docs/HoverThrustEstimate.md)
-- [EstimatorStates](../msg_docs/EstimatorStates.md)
-- [VehicleImu](../msg_docs/VehicleImu.md)
-- [GeofenceResult](../msg_docs/GeofenceResult.md)
-- [VehicleGlobalPositionV0](../msg_docs/VehicleGlobalPositionV0.md)
-- [CanInterfaceStatus](../msg_docs/CanInterfaceStatus.md)
-- [MissionResult](../msg_docs/MissionResult.md)
-- [DistanceSensorModeChangeRequest](../msg_docs/DistanceSensorModeChangeRequest.md)
-- [RangingBeacon](../msg_docs/RangingBeacon.md)
-- [OrbitStatus](../msg_docs/OrbitStatus.md)
-- [MavlinkTunnel](../msg_docs/MavlinkTunnel.md)
-- [CameraCapture](../msg_docs/CameraCapture.md)
-- [RaptorInput](../msg_docs/RaptorInput.md)
-- [VehicleStatusV2](../msg_docs/VehicleStatusV2.md)
-- [ArmingCheckRequestV0](../msg_docs/ArmingCheckRequestV0.md)
-- [VehicleAngularAccelerationSetpoint](../msg_docs/VehicleAngularAccelerationSetpoint.md)
-- [OrbTestMedium](../msg_docs/OrbTestMedium.md)
-- [TiltrotorExtraControls](../msg_docs/TiltrotorExtraControls.md)
-- [UavcanParameterValue](../msg_docs/UavcanParameterValue.md)
-- [Gripper](../msg_docs/Gripper.md)
-- [FollowTarget](../msg_docs/FollowTarget.md)
-- [SensorsStatusImu](../msg_docs/SensorsStatusImu.md)
-- [ConfigOverridesV0](../msg_docs/ConfigOverridesV0.md)
-- [SatelliteInfo](../msg_docs/SatelliteInfo.md)
-- [PowerButtonState](../msg_docs/PowerButtonState.md)
-- [DeviceInformation](../msg_docs/DeviceInformation.md)
-- [ActuatorServosTrim](../msg_docs/ActuatorServosTrim.md)
-- [AirspeedValidatedV0](../msg_docs/AirspeedValidatedV0.md)
-- [RegisterExtComponentRequestV1](../msg_docs/RegisterExtComponentRequestV1.md)
-- [BatteryStatusV0](../msg_docs/BatteryStatusV0.md)
-- [EscEepromWrite](../msg_docs/EscEepromWrite.md)
-- [ActionRequest](../msg_docs/ActionRequest.md)
- [IrlockReport](../msg_docs/IrlockReport.md)
-- [CellularStatus](../msg_docs/CellularStatus.md)
-- [ActuatorOutputs](../msg_docs/ActuatorOutputs.md)
-- [FollowTargetStatus](../msg_docs/FollowTargetStatus.md)
-- [SystemPower](../msg_docs/SystemPower.md)
-- [SensorAccel](../msg_docs/SensorAccel.md)
-- [Vtx](../msg_docs/Vtx.md)
-- [EstimatorInnovations](../msg_docs/EstimatorInnovations.md)
-- [VehicleStatusV1](../msg_docs/VehicleStatusV1.md)
-- [SensorGyroFft](../msg_docs/SensorGyroFft.md)
-- [ParameterUpdate](../msg_docs/ParameterUpdate.md)
-- [Ekf2Timestamps](../msg_docs/Ekf2Timestamps.md)
-- [SensorGnssRelative](../msg_docs/SensorGnssRelative.md)
-- [VehicleLocalPositionSetpoint](../msg_docs/VehicleLocalPositionSetpoint.md)
-- [SensorAirflow](../msg_docs/SensorAirflow.md)
-- [DebugKeyValue](../msg_docs/DebugKeyValue.md)
+- [FailureDetectorStatus](../msg_docs/FailureDetectorStatus.md)
+- [MissionResult](../msg_docs/MissionResult.md)
+- [SensorSelection](../msg_docs/SensorSelection.md)
- [Event](../msg_docs/Event.md)
- [MountOrientation](../msg_docs/MountOrientation.md)
-- [EstimatorFusionControl](../msg_docs/EstimatorFusionControl.md)
-- [VehicleAcceleration](../msg_docs/VehicleAcceleration.md)
-- [EstimatorGpsStatus](../msg_docs/EstimatorGpsStatus.md)
-- [MagnetometerBiasEstimate](../msg_docs/MagnetometerBiasEstimate.md)
-- [LandingTargetInnovations](../msg_docs/LandingTargetInnovations.md)
-- [VehicleOpticalFlowVel](../msg_docs/VehicleOpticalFlowVel.md)
-- [Mission](../msg_docs/Mission.md)
-- [VehicleAirData](../msg_docs/VehicleAirData.md)
-- [SensorBaro](../msg_docs/SensorBaro.md)
-- [RegisterExtComponentReplyV0](../msg_docs/RegisterExtComponentReplyV0.md)
-- [Px4ioStatus](../msg_docs/Px4ioStatus.md)
-- [TecsStatus](../msg_docs/TecsStatus.md)
-- [InternalCombustionEngineControl](../msg_docs/InternalCombustionEngineControl.md)
-- [RcChannels](../msg_docs/RcChannels.md)
-- [DebugVect](../msg_docs/DebugVect.md)
-- [AirspeedWind](../msg_docs/AirspeedWind.md)
-- [QshellRetval](../msg_docs/QshellRetval.md)
-- [SensorUwb](../msg_docs/SensorUwb.md)
-- [HomePositionV0](../msg_docs/HomePositionV0.md)
-- [GimbalManagerSetAttitude](../msg_docs/GimbalManagerSetAttitude.md)
-- [CameraTrigger](../msg_docs/CameraTrigger.md)
-- [PositionSetpoint](../msg_docs/PositionSetpoint.md)
-- [VehicleStatusV0](../msg_docs/VehicleStatusV0.md)
-- [BatteryInfo](../msg_docs/BatteryInfo.md)
-- [FuelTankStatus](../msg_docs/FuelTankStatus.md)
-- [Rpm](../msg_docs/Rpm.md)
-- [RateCtrlStatus](../msg_docs/RateCtrlStatus.md)
-- [ControlAllocatorStatus](../msg_docs/ControlAllocatorStatus.md)
-- [AdcReport](../msg_docs/AdcReport.md)
-- [Cpuload](../msg_docs/Cpuload.md)
-- [FigureEightStatus](../msg_docs/FigureEightStatus.md)
-- [RoverAttitudeStatus](../msg_docs/RoverAttitudeStatus.md)
-- [VehicleConstraints](../msg_docs/VehicleConstraints.md)
-- [SensorGnssStatus](../msg_docs/SensorGnssStatus.md)
-- [RcParameterMap](../msg_docs/RcParameterMap.md)
-- [VehicleStatusV3](../msg_docs/VehicleStatusV3.md)
-- [GpsInjectData](../msg_docs/GpsInjectData.md)
-- [FixedWingLateralGuidanceStatus](../msg_docs/FixedWingLateralGuidanceStatus.md)
-- [ButtonEvent](../msg_docs/ButtonEvent.md)
-- [PpsCapture](../msg_docs/PpsCapture.md)
-- [LoggerStatus](../msg_docs/LoggerStatus.md)
-- [InternalCombustionEngineStatus](../msg_docs/InternalCombustionEngineStatus.md)
-- [ManualControlSwitches](../msg_docs/ManualControlSwitches.md)
-- [TakeoffStatus](../msg_docs/TakeoffStatus.md)
-- [TuneControl](../msg_docs/TuneControl.md)
-- [VelocityLimits](../msg_docs/VelocityLimits.md)
-- [DatamanRequest](../msg_docs/DatamanRequest.md)
-- [HeaterStatus](../msg_docs/HeaterStatus.md)
-- [LogMessage](../msg_docs/LogMessage.md)
-- [SensorMag](../msg_docs/SensorMag.md)
-- [GpioOut](../msg_docs/GpioOut.md)
-- [YawEstimatorStatus](../msg_docs/YawEstimatorStatus.md)
-- [SensorHygrometer](../msg_docs/SensorHygrometer.md)
-- [DronecanNodeStatus](../msg_docs/DronecanNodeStatus.md)
-- [EstimatorSelectorStatus](../msg_docs/EstimatorSelectorStatus.md)
-- [IridiumsbdStatus](../msg_docs/IridiumsbdStatus.md)
-- [PowerMonitor](../msg_docs/PowerMonitor.md)
-- [RegisterExtComponentRequestV0](../msg_docs/RegisterExtComponentRequestV0.md)
-- [VehicleOpticalFlow](../msg_docs/VehicleOpticalFlow.md)
-- [GimbalManagerStatus](../msg_docs/GimbalManagerStatus.md)
-- [EstimatorStatus](../msg_docs/EstimatorStatus.md)
-- [OpenDroneIdOperatorId](../msg_docs/OpenDroneIdOperatorId.md)
-- [RtlTimeEstimate](../msg_docs/RtlTimeEstimate.md)
-- [GpioIn](../msg_docs/GpioIn.md)
-- [ParameterSetValueRequest](../msg_docs/ParameterSetValueRequest.md)
-- [GeneratorStatus](../msg_docs/GeneratorStatus.md)
-- [MagWorkerData](../msg_docs/MagWorkerData.md)
-- [ActuatorControlsStatus](../msg_docs/ActuatorControlsStatus.md)
-- [LedControl](../msg_docs/LedControl.md)
-- [VehicleAngularVelocity](../msg_docs/VehicleAngularVelocity.md)
-- [SensorAccelFifo](../msg_docs/SensorAccelFifo.md)
-- [OpenDroneIdSystem](../msg_docs/OpenDroneIdSystem.md)
-- [SensorGyro](../msg_docs/SensorGyro.md)
-- [NavigatorMissionItem](../msg_docs/NavigatorMissionItem.md)
-- [DatamanResponse](../msg_docs/DatamanResponse.md)
-- [GeofenceStatus](../msg_docs/GeofenceStatus.md)
-- [VehicleLocalPositionV0](../msg_docs/VehicleLocalPositionV0.md)
-- [TrajectorySetpoint6dof](../msg_docs/TrajectorySetpoint6dof.md)
-- [SensorTemp](../msg_docs/SensorTemp.md)
-- [EstimatorBias](../msg_docs/EstimatorBias.md)
-- [OpenDroneIdSelfId](../msg_docs/OpenDroneIdSelfId.md)
-- [SensorsStatus](../msg_docs/SensorsStatus.md)
-- [EstimatorAidSource1d](../msg_docs/EstimatorAidSource1d.md)
-- [RaptorStatus](../msg_docs/RaptorStatus.md)
-- [ParameterSetValueResponse](../msg_docs/ParameterSetValueResponse.md)
-- [RoverRateStatus](../msg_docs/RoverRateStatus.md)
-- [PurePursuitStatus](../msg_docs/PurePursuitStatus.md)
-- [TaskStackInfo](../msg_docs/TaskStackInfo.md)
-- [CameraStatus](../msg_docs/CameraStatus.md)
-- [WheelEncoders](../msg_docs/WheelEncoders.md)
-- [GimbalManagerSetManualControl](../msg_docs/GimbalManagerSetManualControl.md)
-- [UlogStream](../msg_docs/UlogStream.md)
-- [SensorGyroFifo](../msg_docs/SensorGyroFifo.md)
-- [QshellReq](../msg_docs/QshellReq.md)
-- [SensorPreflightMag](../msg_docs/SensorPreflightMag.md)
-- [NavigatorStatus](../msg_docs/NavigatorStatus.md)
-- [LandingTargetPose](../msg_docs/LandingTargetPose.md)
-- [EstimatorSensorBias](../msg_docs/EstimatorSensorBias.md)
-- [SensorSelection](../msg_docs/SensorSelection.md)
-- [VehicleMagnetometer](../msg_docs/VehicleMagnetometer.md)
-- [ActuatorTest](../msg_docs/ActuatorTest.md)
-- [InputRc](../msg_docs/InputRc.md)
-- [Ping](../msg_docs/Ping.md)
-- [Airspeed](../msg_docs/Airspeed.md)
-- [GpioRequest](../msg_docs/GpioRequest.md)
-- [ArmingCheckReplyV0](../msg_docs/ArmingCheckReplyV0.md)
-- [EstimatorAidSource2d](../msg_docs/EstimatorAidSource2d.md)
-- [OrbTest](../msg_docs/OrbTest.md)
-- [RadioStatus](../msg_docs/RadioStatus.md)
-- [PositionControllerLandingStatus](../msg_docs/PositionControllerLandingStatus.md)
-- [EscReport](../msg_docs/EscReport.md)
+- [NeuralControl](../msg_docs/NeuralControl.md)
- [VehicleAttitudeSetpointV0](../msg_docs/VehicleAttitudeSetpointV0.md)
-- [ParameterSetUsedRequest](../msg_docs/ParameterSetUsedRequest.md)
-- [VehicleCommandAckV0](../msg_docs/VehicleCommandAckV0.md)
-- [AutotuneAttitudeControlStatus](../msg_docs/AutotuneAttitudeControlStatus.md)
-- [SensorCorrection](../msg_docs/SensorCorrection.md)
-- [LandingGearWheel](../msg_docs/LandingGearWheel.md)
-- [FollowTargetEstimator](../msg_docs/FollowTargetEstimator.md)
-- [UavcanParameterRequest](../msg_docs/UavcanParameterRequest.md)
-- [VehicleRoi](../msg_docs/VehicleRoi.md)
-- [EstimatorBias3d](../msg_docs/EstimatorBias3d.md)
-- [HealthReport](../msg_docs/HealthReport.md)
+- [DifferentialPressure](../msg_docs/DifferentialPressure.md)
+- [EstimatorGpsStatus](../msg_docs/EstimatorGpsStatus.md)
+- [LedControl](../msg_docs/LedControl.md)
- [RtlStatus](../msg_docs/RtlStatus.md)
+- [Rpm](../msg_docs/Rpm.md)
+- [QshellReq](../msg_docs/QshellReq.md)
+- [ArmingCheckReplyV0](../msg_docs/ArmingCheckReplyV0.md)
+- [OrbTest](../msg_docs/OrbTest.md)
+- [VehicleImuStatus](../msg_docs/VehicleImuStatus.md)
+- [OrbitStatus](../msg_docs/OrbitStatus.md)
+- [BatteryInfo](../msg_docs/BatteryInfo.md)
+- [RegisterExtComponentReplyV0](../msg_docs/RegisterExtComponentReplyV0.md)
+- [HeaterStatus](../msg_docs/HeaterStatus.md)
+- [VehicleAngularVelocity](../msg_docs/VehicleAngularVelocity.md)
+- [DeviceInformation](../msg_docs/DeviceInformation.md)
+- [VehicleLocalPositionV0](../msg_docs/VehicleLocalPositionV0.md)
+- [PowerButtonState](../msg_docs/PowerButtonState.md)
+- [SensorAirflow](../msg_docs/SensorAirflow.md)
+- [TrajectorySetpoint6dof](../msg_docs/TrajectorySetpoint6dof.md)
+- [VehicleStatusV0](../msg_docs/VehicleStatusV0.md)
+- [HealthReport](../msg_docs/HealthReport.md)
+- [FollowTargetEstimator](../msg_docs/FollowTargetEstimator.md)
+- [InternalCombustionEngineControl](../msg_docs/InternalCombustionEngineControl.md)
+- [AirspeedWind](../msg_docs/AirspeedWind.md)
+- [SensorGnssRelative](../msg_docs/SensorGnssRelative.md)
+- [VehicleImu](../msg_docs/VehicleImu.md)
+- [VehicleStatusV3](../msg_docs/VehicleStatusV3.md)
+- [NormalizedUnsignedSetpoint](../msg_docs/NormalizedUnsignedSetpoint.md)
+- [EstimatorSelectorStatus](../msg_docs/EstimatorSelectorStatus.md)
+- [ActuatorTest](../msg_docs/ActuatorTest.md)
+- [CanInterfaceStatus](../msg_docs/CanInterfaceStatus.md)
+- [VehicleOpticalFlowVel](../msg_docs/VehicleOpticalFlowVel.md)
+- [VehicleStatusV1](../msg_docs/VehicleStatusV1.md)
+- [SensorGnssStatus](../msg_docs/SensorGnssStatus.md)
+- [PwmInput](../msg_docs/PwmInput.md)
+- [RcParameterMap](../msg_docs/RcParameterMap.md)
+- [VehicleConstraints](../msg_docs/VehicleConstraints.md)
+- [SystemPower](../msg_docs/SystemPower.md)
+- [Ekf2Timestamps](../msg_docs/Ekf2Timestamps.md)
+- [InternalCombustionEngineStatus](../msg_docs/InternalCombustionEngineStatus.md)
+- [UavcanParameterValue](../msg_docs/UavcanParameterValue.md)
+- [EstimatorEventFlags](../msg_docs/EstimatorEventFlags.md)
+- [DebugVect](../msg_docs/DebugVect.md)
+- [FollowTarget](../msg_docs/FollowTarget.md)
+- [TiltrotorExtraControls](../msg_docs/TiltrotorExtraControls.md)
+- [TuneControl](../msg_docs/TuneControl.md)
+- [PositionSetpoint](../msg_docs/PositionSetpoint.md)
+- [ParameterSetUsedRequest](../msg_docs/ParameterSetUsedRequest.md)
+- [SensorAccelFifo](../msg_docs/SensorAccelFifo.md)
+- [EventV0](../msg_docs/EventV0.md)
+- [AutotuneAttitudeControlStatus](../msg_docs/AutotuneAttitudeControlStatus.md)
+- [SensorTemp](../msg_docs/SensorTemp.md)
+- [OpenDroneIdSelfId](../msg_docs/OpenDroneIdSelfId.md)
+- [FollowTargetStatus](../msg_docs/FollowTargetStatus.md)
+- [VehicleGlobalPositionV0](../msg_docs/VehicleGlobalPositionV0.md)
+- [LandingGearWheel](../msg_docs/LandingGearWheel.md)
+- [SensorsStatus](../msg_docs/SensorsStatus.md)
+- [HomePositionV0](../msg_docs/HomePositionV0.md)
+- [ParameterUpdate](../msg_docs/ParameterUpdate.md)
+- [EstimatorInnovations](../msg_docs/EstimatorInnovations.md)
+- [ButtonEvent](../msg_docs/ButtonEvent.md)
+- [RaptorInput](../msg_docs/RaptorInput.md)
+- [VehicleOpticalFlow](../msg_docs/VehicleOpticalFlow.md)
+- [GpioConfig](../msg_docs/GpioConfig.md)
+- [SensorMag](../msg_docs/SensorMag.md)
+- [LogMessage](../msg_docs/LogMessage.md)
+- [GeofenceResult](../msg_docs/GeofenceResult.md)
+- [LoggerStatus](../msg_docs/LoggerStatus.md)
+- [RcChannels](../msg_docs/RcChannels.md)
+- [MagWorkerData](../msg_docs/MagWorkerData.md)
+- [IridiumsbdStatus](../msg_docs/IridiumsbdStatus.md)
+- [SensorGyroFifo](../msg_docs/SensorGyroFifo.md)
+- [GeofenceStatus](../msg_docs/GeofenceStatus.md)
+- [UlogStreamAck](../msg_docs/UlogStreamAck.md)
+- [Airspeed](../msg_docs/Airspeed.md)
+- [ActuatorArmed](../msg_docs/ActuatorArmed.md)
+- [ParameterSetValueResponse](../msg_docs/ParameterSetValueResponse.md)
+- [SensorPreflightMag](../msg_docs/SensorPreflightMag.md)
+- [GimbalManagerStatus](../msg_docs/GimbalManagerStatus.md)
+- [GimbalDeviceSetAttitude](../msg_docs/GimbalDeviceSetAttitude.md)
+- [GimbalManagerInformation](../msg_docs/GimbalManagerInformation.md)
+- [EstimatorBias](../msg_docs/EstimatorBias.md)
+- [TecsStatus](../msg_docs/TecsStatus.md)
+- [GimbalControls](../msg_docs/GimbalControls.md)
+- [Mission](../msg_docs/Mission.md)
+- [GainCompression](../msg_docs/GainCompression.md)
+- [ConfigOverridesV0](../msg_docs/ConfigOverridesV0.md)
+- [Ping](../msg_docs/Ping.md)
+- [ActuatorControlsStatus](../msg_docs/ActuatorControlsStatus.md)
+- [CellularStatus](../msg_docs/CellularStatus.md)
+- [DronecanNodeStatus](../msg_docs/DronecanNodeStatus.md)
+- [EscEepromWrite](../msg_docs/EscEepromWrite.md)
+- [MagnetometerBiasEstimate](../msg_docs/MagnetometerBiasEstimate.md)
+- [FixedWingLateralGuidanceStatus](../msg_docs/FixedWingLateralGuidanceStatus.md)
+- [OrbTestMedium](../msg_docs/OrbTestMedium.md)
+- [PositionControllerStatus](../msg_docs/PositionControllerStatus.md)
+- [EscReport](../msg_docs/EscReport.md)
+- [SensorGyro](../msg_docs/SensorGyro.md)
+- [DatamanRequest](../msg_docs/DatamanRequest.md)
+- [FixedWingLateralStatus](../msg_docs/FixedWingLateralStatus.md)
+- [GeneratorStatus](../msg_docs/GeneratorStatus.md)
+- [SensorAccel](../msg_docs/SensorAccel.md)
+- [RangingBeacon](../msg_docs/RangingBeacon.md)
+- [RegisterExtComponentRequestV1](../msg_docs/RegisterExtComponentRequestV1.md)
+- [GpsDump](../msg_docs/GpsDump.md)
+- [GimbalManagerSetManualControl](../msg_docs/GimbalManagerSetManualControl.md)
+- [Vtx](../msg_docs/Vtx.md)
+- [VehicleStatusV2](../msg_docs/VehicleStatusV2.md)
+- [InputRc](../msg_docs/InputRc.md)
+- [DebugKeyValue](../msg_docs/DebugKeyValue.md)
+- [VehicleMagnetometer](../msg_docs/VehicleMagnetometer.md)
+- [OpenDroneIdSystem](../msg_docs/OpenDroneIdSystem.md)
+- [RoverAttitudeStatus](../msg_docs/RoverAttitudeStatus.md)
+- [GpsInjectData](../msg_docs/GpsInjectData.md)
+- [TaskStackInfo](../msg_docs/TaskStackInfo.md)
+- [FixedWingRunwayControl](../msg_docs/FixedWingRunwayControl.md)
+- [SensorsStatusImu](../msg_docs/SensorsStatusImu.md)
+- [VehicleAirData](../msg_docs/VehicleAirData.md)
+- [PpsCapture](../msg_docs/PpsCapture.md)
+- [CameraStatus](../msg_docs/CameraStatus.md)
+- [SensorGyroFft](../msg_docs/SensorGyroFft.md)
+- [ParameterResetRequest](../msg_docs/ParameterResetRequest.md)
+- [EstimatorBias3d](../msg_docs/EstimatorBias3d.md)
+- [PowerMonitor](../msg_docs/PowerMonitor.md)
+- [GimbalManagerSetAttitude](../msg_docs/GimbalManagerSetAttitude.md)
+- [EstimatorStates](../msg_docs/EstimatorStates.md)
+- [FlightPhaseEstimation](../msg_docs/FlightPhaseEstimation.md)
+- [SensorUwb](../msg_docs/SensorUwb.md)
+- [EscStatus](../msg_docs/EscStatus.md)
+- [RegisterExtComponentRequestV0](../msg_docs/RegisterExtComponentRequestV0.md)
+- [TakeoffStatus](../msg_docs/TakeoffStatus.md)
+- [EstimatorAidSource1d](../msg_docs/EstimatorAidSource1d.md)
+- [UavcanParameterRequest](../msg_docs/UavcanParameterRequest.md)
+- [EstimatorSensorBias](../msg_docs/EstimatorSensorBias.md)
+- [SatelliteInfo](../msg_docs/SatelliteInfo.md)
+- [MavlinkLog](../msg_docs/MavlinkLog.md)
+- [VehicleCommandAckV0](../msg_docs/VehicleCommandAckV0.md)
+- [VehicleAcceleration](../msg_docs/VehicleAcceleration.md)
+- [BatteryStatusV0](../msg_docs/BatteryStatusV0.md)
+- [CameraTrigger](../msg_docs/CameraTrigger.md)
+- [ActuatorOutputs](../msg_docs/ActuatorOutputs.md)
+- [EstimatorAidSource2d](../msg_docs/EstimatorAidSource2d.md)
+- [EstimatorFusionControl](../msg_docs/EstimatorFusionControl.md)
+- [ActionRequest](../msg_docs/ActionRequest.md)
+- [DebugArray](../msg_docs/DebugArray.md)
+- [AirspeedValidatedV0](../msg_docs/AirspeedValidatedV0.md)
+- [RtlTimeEstimate](../msg_docs/RtlTimeEstimate.md)
+- [DebugValue](../msg_docs/DebugValue.md)
+- [NavigatorMissionItem](../msg_docs/NavigatorMissionItem.md)
+- [ArmingCheckRequestV0](../msg_docs/ArmingCheckRequestV0.md)
+- [DistanceSensorModeChangeRequest](../msg_docs/DistanceSensorModeChangeRequest.md)
+- [FuelTankStatus](../msg_docs/FuelTankStatus.md)
+- [PurePursuitStatus](../msg_docs/PurePursuitStatus.md)
+- [EscEepromRead](../msg_docs/EscEepromRead.md)
+- [UlogStream](../msg_docs/UlogStream.md)
+- [VehicleAngularAccelerationSetpoint](../msg_docs/VehicleAngularAccelerationSetpoint.md)
+- [CameraCapture](../msg_docs/CameraCapture.md)
+- [NavigatorStatus](../msg_docs/NavigatorStatus.md)
+- [RoverRateStatus](../msg_docs/RoverRateStatus.md)
+- [DatamanResponse](../msg_docs/DatamanResponse.md)
+- [PositionControllerLandingStatus](../msg_docs/PositionControllerLandingStatus.md)
+- [WheelEncoders](../msg_docs/WheelEncoders.md)
+- [FigureEightStatus](../msg_docs/FigureEightStatus.md)
+- [GpioOut](../msg_docs/GpioOut.md)
+- [RateCtrlStatus](../msg_docs/RateCtrlStatus.md)
+- [SensorHygrometer](../msg_docs/SensorHygrometer.md)
+- [RaptorStatus](../msg_docs/RaptorStatus.md)
+- [Px4ioStatus](../msg_docs/Px4ioStatus.md)
+- [VehicleLocalPositionSetpoint](../msg_docs/VehicleLocalPositionSetpoint.md)
+- [RadioStatus](../msg_docs/RadioStatus.md)
+- [SensorBaro](../msg_docs/SensorBaro.md)
+- [YawEstimatorStatus](../msg_docs/YawEstimatorStatus.md)
+- [SensorCorrection](../msg_docs/SensorCorrection.md)
+- [Gripper](../msg_docs/Gripper.md)
+- [LandingTargetPose](../msg_docs/LandingTargetPose.md)
+- [EstimatorStatus](../msg_docs/EstimatorStatus.md)
+- [GpioRequest](../msg_docs/GpioRequest.md)
+- [QshellRetval](../msg_docs/QshellRetval.md)
+- [OrbTestLarge](../msg_docs/OrbTestLarge.md)
+- [ActuatorServosTrim](../msg_docs/ActuatorServosTrim.md)
+- [VehicleRoi](../msg_docs/VehicleRoi.md)
+- [GpioIn](../msg_docs/GpioIn.md)
+- [HoverThrustEstimate](../msg_docs/HoverThrustEstimate.md)
+- [RoverSpeedStatus](../msg_docs/RoverSpeedStatus.md)
+- [LaunchDetectionStatus](../msg_docs/LaunchDetectionStatus.md)
+- [ParameterSetValueRequest](../msg_docs/ParameterSetValueRequest.md)
+- [OpenDroneIdOperatorId](../msg_docs/OpenDroneIdOperatorId.md)
+- [Cpuload](../msg_docs/Cpuload.md)
+- [ControlAllocatorStatus](../msg_docs/ControlAllocatorStatus.md)
+- [OpenDroneIdArmStatus](../msg_docs/OpenDroneIdArmStatus.md)
+- [LandingTargetInnovations](../msg_docs/LandingTargetInnovations.md)
+- [EstimatorAidSource3d](../msg_docs/EstimatorAidSource3d.md)
+- [VelocityLimits](../msg_docs/VelocityLimits.md)
+- [AdcReport](../msg_docs/AdcReport.md)
+- [GimbalDeviceInformation](../msg_docs/GimbalDeviceInformation.md)
+- [MavlinkTunnel](../msg_docs/MavlinkTunnel.md)
+- [ManualControlSwitches](../msg_docs/ManualControlSwitches.md)
:::
diff --git a/docs/zh/middleware/uxrce_dds.md b/docs/zh/middleware/uxrce_dds.md
index 2eb6890864..33c3a4b8a2 100644
--- a/docs/zh/middleware/uxrce_dds.md
+++ b/docs/zh/middleware/uxrce_dds.md
@@ -32,6 +32,11 @@ The agent itself has no dependency on client-side code and can be built and/or i
Code that wants to subscribe/publish to PX4 does have a dependency on client-side code; it requires uORB message definitions that match those used to create the PX4 uXRCE-DDS client so that it can interpret the messages.
+- For _versioned_ PX4 messages, the [PX4 ROS 2 Message Transition Node](../ros2/px4_ros2_msg_translation_node.md) handles compatibility automatically.
+ This node acts as an agent-side translator, allowing your code to interact with PX4 without requiring strict, manual message synchronization.
+- For unversioned messages, code that needs to publish to PX4 maintains a direct dependency on client-side definitions.
+ In these cases, you must ensure your local uORB message definitions exactly match those used to create the PX4 uXRCE-DDS client, so that the messages can be correctly interpreted.
+
## 代码生成
PX4 [uxrce_dds_client](../modules/modules_system.md#uxrce-dds-client) 是在构建时生成,并且默认包含在 PX4 固件中。
@@ -397,11 +402,14 @@ The message definitions are stored in the ROS 2 interface package [PX4/px4_msgs]
- 如果您正在使用 PX4 的主要版本或发布版本,您可以通过克隆接口包[PX4/px4_msgs](https://github.com/PX4/px4_msgs)获得消息定义。
- 如果您要创建或修改 uORB 消息,必须从 PX4 源代码树中手动更新工作空间中的消息。
一般来说,这意味着您将更新 [dds_topics.yaml](https://github.com/PX4/PX4-Autopilot/blob/main/src/modules/uxrce_dds_client/dds_topics.yaml),克隆接口包。 然后手动同步,将新的/修改的消息定义从 [PX4-Autopilot/msg](https://github.com/PX4/PX4-Autopilot/tree/main/msg)复制到它的 `msg` 文件夹。
- Assuming that PX4-Autopilot is in your home directory `~`, while `px4_msgs` is in `~/px4_ros_com/src/`, then the command might be:
+ Assuming that PX4-Autopilot is in your home directory `~`, while `px4_msgs` is in `~/ros2_px4_ws/src/`, then the command might be:
```sh
- rm ~/px4_ros_com/src/px4_msgs/msg/*.msg
- cp ~/PX4-Autopilot/msg/*.msg ~/px4_ros_com/src/px4_msgs/msg/
+ rm ~/ros2_px4_ws/src/px4_msgs/msg/*.msg
+ rm ~/ros2_px4_ws/src/px4_msgs/srv/*.srv
+ cp ~/PX4-Autopilot/msg/*.msg ~/ros2_px4_ws/src/px4_msgs/msg/
+ cp ~/PX4-Autopilot/msg/versioned/*.msg ~/ros2_px4_ws/src/px4_msgs/msg/
+ cp ~/PX4-Autopilot/srv/*.msg ~/ros2_px4_ws/src/px4_msgs/srv/
```
::: info
diff --git a/docs/zh/modules/modules_command.md b/docs/zh/modules/modules_command.md
index 8cb347995d..a58a5faa06 100644
--- a/docs/zh/modules/modules_command.md
+++ b/docs/zh/modules/modules_command.md
@@ -342,6 +342,19 @@ mft_cfg [arguments...]
, id == revision for )
```
+## mklittlefs
+
+Source: [systemcmds/mklittlefs](https://github.com/PX4/PX4-Autopilot/tree/main/src/systemcmds/mklittlefs)
+
+Format a device with the littlefs filesystem.
+
+### Usage {#mklittlefs_usage}
+
+```
+mklittlefs [arguments...]
+ Device and mount point (e.g. /dev/mtd0 /fs/flash)
+```
+
## mtd
Source: [systemcmds/mtd](https://github.com/PX4/PX4-Autopilot/tree/main/src/systemcmds/mtd)
diff --git a/docs/zh/modules/modules_driver.md b/docs/zh/modules/modules_driver.md
index d46c8be281..365906ad31 100644
--- a/docs/zh/modules/modules_driver.md
+++ b/docs/zh/modules/modules_driver.md
@@ -1064,7 +1064,7 @@ px4io [arguments...]
## rgbled
-Source: [drivers/lights/rgbled](https://github.com/PX4/PX4-Autopilot/tree/main/src/drivers/lights/rgbled)
+Source: [drivers/lights/rgbled_ncp5623c](https://github.com/PX4/PX4-Autopilot/tree/main/src/drivers/lights/rgbled_ncp5623c)
### Usage {#rgbled_usage}
@@ -1079,7 +1079,9 @@ rgbled [arguments...]
[-f ] bus frequency in kHz
[-q] quiet startup (no message if no device found)
[-a ] I2C address
- default: 85
+ default: 57
+ [-o ] RGB PWM Assignment
+ default: 123
stop
diff --git a/docs/zh/msg_docs/FailsafeFlags.md b/docs/zh/msg_docs/FailsafeFlags.md
index 7c67aaf8ab..c04b633113 100644
--- a/docs/zh/msg_docs/FailsafeFlags.md
+++ b/docs/zh/msg_docs/FailsafeFlags.md
@@ -59,6 +59,7 @@ The flag comments are used as label for the failsafe state machine simulation
| position_accuracy_low | `bool` | | | Position estimate has dropped below threshold, but is currently still declared valid |
| navigator_failure | `bool` | | | Navigator failed to execute a mode |
| parachute_unhealthy | `bool` | | | Parachute system missing or unhealthy |
+| remote_id_unhealthy | `bool` | | | Remote ID (Open Drone ID) system missing or unhealthy |
## Source Message
@@ -130,6 +131,7 @@ bool flight_time_limit_exceeded # Maximum flight time exceeded
bool position_accuracy_low # Position estimate has dropped below threshold, but is currently still declared valid
bool navigator_failure # Navigator failed to execute a mode
bool parachute_unhealthy # Parachute system missing or unhealthy
+bool remote_id_unhealthy # Remote ID (Open Drone ID) system missing or unhealthy
```
:::
diff --git a/docs/zh/peripherals/index.md b/docs/zh/peripherals/index.md
index afd22e7ea0..22e3d75c81 100644
--- a/docs/zh/peripherals/index.md
+++ b/docs/zh/peripherals/index.md
@@ -2,8 +2,9 @@
This section contains topics about peripheral hardware that can be connected to a flight controller (not including [cameras and other payloads](../payloads/index.md)).
-The peripherals are not _required_ for flight, but may support it by providing improved safety, or allowing the vehicle to meet regulartory requirements:
+The peripherals are not _required_ for flight, but may support it by providing improved safety, or allowing the vehicle to meet regulatory requirements:
- [ADSB/FLARM/UTM (Traffic Avoidance)](../peripherals/adsb_flarm.md)
+- [On-Screen Display (OSD)](../peripherals/osd.md)
- [Parachute](../peripherals/parachute.md)
- [Remote ID](../peripherals/remote_id.md)
diff --git a/docs/zh/peripherals/mavlink_peripherals.md b/docs/zh/peripherals/mavlink_peripherals.md
index 1ade633b0c..5eedbe69a1 100644
--- a/docs/zh/peripherals/mavlink_peripherals.md
+++ b/docs/zh/peripherals/mavlink_peripherals.md
@@ -1,6 +1,6 @@
# MAVLink Peripherals (GCS/OSD/Gimbal/Camera/Companion)
-Ground Control Stations (GCS), On-Screen Displays (OSD), MAVLink Cameras & Gimbals, Remote IDs, Companion Computers, ADS-B receivers, and other MAVLink peripherals interact with PX4 using separate MAVLink streams, sent via different serial ports.
+Ground Control Stations (GCS), [MAVLink On-Screen Displays (OSD)](../peripherals/osd.md#mavlink-osd), MAVLink [Cameras](../camera/mavlink_v2_camera.md) and [Gimbals](../advanced/gimbal_control.md), [Remote IDs](../peripherals/remote_id.md), Companion Computers, [ADS-B receivers](../peripherals/adsb_flarm.md), and other MAVLink peripherals interact with PX4 using separate MAVLink streams, sent via different serial ports.
In order to configure that a particular serial port is used for MAVLink traffic with a particular peripheral, we use [Serial Port Configuration](../peripherals/serial_configuration.md), assigning one of the abstract "MAVLink instance" configuration parameters to the desired port.
We then set other properties of the MAVLink channel using the parameters associated with our selected MAVLink instance, so that they match the requirements of our particular peripheral.
diff --git a/docs/zh/peripherals/osd.md b/docs/zh/peripherals/osd.md
new file mode 100644
index 0000000000..b684ea84b2
--- /dev/null
+++ b/docs/zh/peripherals/osd.md
@@ -0,0 +1,103 @@
+# On-Screen Display (OSD)
+
+An **On-Screen Display (OSD)** overlays flight telemetry — battery, altitude, GPS, RSSI, attitude, etc. — onto a pilot's video feed.
+OSDs are commonly used in FPV and long-range flying so the pilot can see live flight data without looking away from the video.
+
+PX4 supports three distinct OSD mechanisms, each targeting a different class of video system:
+
+| Mechanism | Use case | Transport | Runs on FC? |
+| --------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------- | -------------------------------------------------------------- |
+| [MSP OSD](#msp-osd) | Digital FPV air units and video goggles that speak Betaflight MSP (e.g. DJI O3/O4, Walksnail, HDZero, Caddx Vista) | Serial, MSPv1 | Yes — [`msp_osd`](../modules/modules_driver.md#msp-osd) driver |
+| [ATXXXX Analog OSD](#atxxxx-analog-osd) | Legacy analog video with an on-board MAX7456/ATXXXX overlay chip (e.g. OmnibusF4SD) | SPI to on-board chip | Yes — [`atxxxx`](../modules/modules_driver.md#atxxxx) driver |
+| [MAVLink OSD](#mavlink-osd) | MAVLink-aware ground stations and displays that render their own OSD from telemetry (e.g. Yaapu on EdgeTX/OpenTX, Skydroid, mLRS HUDs) | Serial, MAVLink | No — streams MAVLink; the display renders the OSD |
+
+Which one you use is determined by your video hardware, not by PX4 preference.
+If you're unsure, start with your video system's documentation and match the OSD mechanism it expects.
+
+## MSP OSD
+
+**MSP (MultiWii Serial Protocol) OSD** is the mechanism used by digital FPV systems (DJI, Walksnail, HDZero) and by many digital goggles/air units to render telemetry over the pilot's video feed.
+PX4 implements the subset of MSP used for OSD telemetry, matching what Betaflight and INAV send.
+
+The [`msp_osd`](../modules/modules_driver.md#msp-osd) driver converts uORB topics (battery, GPS, attitude, etc.) to MSP packets and sends them out a serial port at 115200 baud.
+
+### Supported displays
+
+PX4 currently sends a subset of MSP messages.
+Reliably-working display items include:
+
+- Craft name and flight mode / arming state
+- Battery voltage, current draw, mAh consumed, average cell voltage
+- GPS latitude, longitude, satellite count, ground speed
+- Home distance and direction
+- Altitude (from GNSS / baro)
+- RSSI
+- Crosshairs toggle
+
+Some items in [`OSD_SYMBOLS`](../advanced_config/parameter_reference.md#OSD_SYMBOLS) are reserved but not yet implemented — see the parameter's `(unused)` bit labels.
+For feature-completeness work, see the tracking issues on GitHub.
+
+### 硬件设置
+
+1. Connect the digital air unit's MSP / telemetry input to a free UART on the flight controller (TX → RX, RX → TX, GND → GND).
+2. Power the air unit from its own BEC or a VTX power pad — most air units expect 5 V or battery voltage, not autopilot 5 V.
+3. Note which PX4 serial device the UART maps to on your board (e.g. `TELEM2` → `/dev/ttyS2`).
+ See [Serial Port Mapping](../hardware/serial_port_mapping.md).
+
+### Firmware requirements
+
+The `msp_osd` driver is included in the default build for most modern Pixhawk and FPV-oriented boards (e.g. `px4_fmu-v5x`, `px4_fmu-v6x`, `ark_fpv`, `cuav_7-nano`, `micoair_h743*`).
+If your board does not include it by default, enable it via [board config](../hardware/porting_guide_config.md#px4-menuconfig-setup):
+
+```sh
+make _default boardconfig
+# drivers → OSD → msp_osd
+```
+
+Then rebuild and flash.
+
+### PX4 configuration
+
+1. Assign the selected serial port to MSP OSD with [`MSP_OSD_CONFIG`](../advanced_config/parameter_reference.md#MSP_OSD_CONFIG).
+2. Set the matching `SER__BAUD` to `115200`.
+3. Reboot.
+4. Tune the display via the [`OSD_*` parameters](../advanced_config/parameter_reference.md#osd):
+ - [`OSD_SYMBOLS`](../advanced_config/parameter_reference.md#OSD_SYMBOLS) — bitmask selecting which items appear.
+ - [`OSD_CH_HEIGHT`](../advanced_config/parameter_reference.md#OSD_CH_HEIGHT) — vertical position of the crosshairs.
+ - [`OSD_LOG_LEVEL`](../advanced_config/parameter_reference.md#OSD_LOG_LEVEL) — minimum severity for on-screen warnings.
+ - [`OSD_SCROLL_RATE`](../advanced_config/parameter_reference.md#OSD_SCROLL_RATE) / [`OSD_DWELL_TIME`](../advanced_config/parameter_reference.md#OSD_DWELL_TIME) — scrolling of long messages.
+ - [`OSD_RC_STICK`](../advanced_config/parameter_reference.md#OSD_RC_STICK) — forward RC sticks to the VTX when disarmed, so you can navigate the VTX menu.
+
+### Worked examples
+
+- [Reptile Dragon 2 > msp_osd Module](../frames_plane/reptile_dragon_2.md#msp-osd-module) — end-to-end wiring and configuration for a Caddx Vista build.
+- [Turbo Timber Evolution](../frames_plane/turbo_timber_evolution.md) — references the same setup pattern.
+
+## MAVLink OSD
+
+Some OSDs render their own overlay directly from the MAVLink telemetry stream — the flight controller simply streams MAVLink at a rate the display can parse.
+PX4 exposes this via a dedicated MAVLink stream profile.
+
+To use a MAVLink OSD:
+
+1. Choose an unused MAVLink instance ([`MAV_X_CONFIG`](../peripherals/mavlink_peripherals.md#default_ports)) and assign it to the serial port connected to the display.
+2. Configure the mode of the selected MAVLink instance with [`MAV_X_MODE`](./mavlink_peripherals.md#MAV_X_MODE) by setting it to **`OSD`**.
+ The `OSD` mode uses a built-in rate table tuned for low-bandwidth OSD consumption.
+3. Set the matching `SER__BAUD` to the baud rate the display expects.
+
+The stream content is fixed (defined in `src/modules/mavlink/mavlink_main.cpp`) and cannot be customised from parameters.
+See [MAVLink Peripherals (GCS/OSD/Gimbal/Camera/Companion)](./mavlink_peripherals.md) for the full MAVLink-side configuration.
+
+## ATXXXX Analog OSD
+
+The [`atxxxx`](../modules/modules_driver.md#atxxxx) driver targets boards with an on-board MAX7456 / ATXXXX chip that overlays characters onto an analog video stream (PAL or NTSC).
+This was common on older F4-class FCs such as OmnibusF4SD and is largely superseded by digital systems.
+
+No external wiring is required on boards that include the chip; to enable it, set [`OSD_ATXXXX_CFG`](../advanced_config/parameter_reference.md#OSD_ATXXXX_CFG) to `1` (NTSC) or `2` (PAL) and reboot.
+
+## See also
+
+- [Parameter Reference > OSD](../advanced_config/parameter_reference.md#osd) — all OSD parameters.
+- [MAVLink Peripherals (GCS/OSD/Gimbal/Camera/Companion)](./mavlink_peripherals.md) — MAVLink serial configuration.
+- [Serial Port Configuration](./serial_configuration.md) — assigning modules to UARTs.
+- [`msp_osd` module reference](../modules/modules_driver.md#msp-osd) — CLI usage and source.
diff --git a/docs/zh/peripherals/parachute.md b/docs/zh/peripherals/parachute.md
index 234d2b8f9e..6c8fbeee96 100644
--- a/docs/zh/peripherals/parachute.md
+++ b/docs/zh/peripherals/parachute.md
@@ -44,6 +44,7 @@ To enable flight termination:
- Set [Safety](../config/safety.md) action to _Flight termination_ for checks where you want the parachute to trigger.
- Set [Failure Detector](../config/safety.md#failure-detector) pitch angles, roll angles and time triggers for crash/flip detection, and disable the failure/IMU timeout circuit breaker (i.e. set [CBRK_FLIGHTTERM=0](../advanced_config/parameter_reference.md#CBRK_FLIGHTTERM)).
+- Set [FD_ALT_LOSS](../advanced_config/parameter_reference.md#FD_ALT_LOSS) to enable flight termination if a rotary-wing vehicle loses too much altitude below its setpoint (see [Altitude Loss Trigger](../config/safety.md#altitude-loss-trigger)).
:::info
You can also configure an [external Automatic Trigger System (ATS)](../config/safety.md#external-automatic-trigger-system-ats) for failure detection.
diff --git a/docs/zh/peripherals/remote_id.md b/docs/zh/peripherals/remote_id.md
index 8018e16175..af8a41ed95 100644
--- a/docs/zh/peripherals/remote_id.md
+++ b/docs/zh/peripherals/remote_id.md
@@ -144,13 +144,12 @@ The [CAN Remote ID Not Working](../peripherals/remote_id.md#can-remote-id-not-wo
There is no need to explicitly enable Remote ID (supported Remote ID messages are either streamed by default or must be requested in the current implementation, even if no remote ID is connected).
-### Prevent Arming based on Remote ID
+### Remote ID Failsafe and Arming Check
-To only allow arming when a Remote ID is ready, [set](../advanced_config/parameters.md#conditional-parameters) the parameter [COM_ARM_ODID](#COM_ARM_ODID) to `2` (it is disabled by default).
+
-| 参数 | 描述 |
-| ----------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| [COM_ARM_ODID](../advanced_config/parameter_reference.md#COM_ARM_ODID) | Enable Drone ID system detection and health check. `0`: Disable (default), `1`: Warn if Remote ID not detected but still allow arming, `2`: Only allow arming if Remote ID is present. |
+The [COM_ARM_ODID](../advanced_config/parameter_reference.md#COM_ARM_ODID) parameter configures both the arming check and the in-flight failsafe action when the Remote ID system is missing or unhealthy.
+For more information see [Remote ID Failsafe](http://localhost:5173/px4_user_guide/en/config/safety#remote-id-failsafe) in _Safety Configuration_.
## Module Broadcast Testing
@@ -174,7 +173,7 @@ The following message can be streamed on request (using [MAV_CMD_SET_MESSAGE_INT
- [OPEN_DRONE_ID_BASIC_ID](https://mavlink.io/en/messages/common.html#OPEN_DRONE_ID_BASIC_ID) - UAV identity information (essentially a serial number)
- PX4 v1.14 specifies a serial number ([MAV_ODID_ID_TYPE_SERIAL_NUMBER](https://mavlink.io/en/messages/common.html#MAV_ODID_ID_TYPE_SERIAL_NUMBER)) but does not use the required format (ANSI/CTA-2063 format).
-PX4 prevents arming based on Remote ID health if parameter [COM_ARM_ODID](../advanced_config/parameter_reference.md#COM_ARM_ODID) is set to `2`.
+PX4 can prevent arming and/or trigger an in-flight failsafe based on Remote ID health via the [COM_ARM_ODID](../advanced_config/parameter_reference.md#COM_ARM_ODID) parameter.
The UAV will then require `HEARTBEAT` messages from the Remote ID as a precondition for arming the UAV.
You can also set the parameter to `1` to warn but still allow arming when Remote ID `HEARTBEAT` messages are not detected.
diff --git a/docs/zh/releases/main.md b/docs/zh/releases/main.md
index b86e853f33..7673ba4748 100644
--- a/docs/zh/releases/main.md
+++ b/docs/zh/releases/main.md
@@ -22,7 +22,8 @@ Update these notes with features that are going to be in `main` (PX4 v1.18 or la
## Read Before Upgrading
-- TBD …
+- 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).
@@ -40,6 +41,7 @@ Please continue reading for [upgrade instructions](#upgrade-guide).
### 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)).
@@ -48,6 +50,10 @@ Please continue reading for [upgrade instructions](#upgrade-guide).
- 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)).
+### 安全
+
+- 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))
+
### 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.
@@ -73,6 +79,12 @@ Please continue reading for [upgrade instructions](#upgrade-guide).
### 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
diff --git a/docs/zh/ros2/index.md b/docs/zh/ros2/index.md
index 808e96ec51..c769f8946a 100644
--- a/docs/zh/ros2/index.md
+++ b/docs/zh/ros2/index.md
@@ -16,17 +16,21 @@ ROS的优势在于拥有活跃的开发者生态系统 —— 该生态系统致
ROS 2 能够实现与 PX4 极深度的集成,你可以在 ROS 2 中创建飞行模式,这些模式与 PX4 内部原生飞行模式毫无区别;同时还能以高速率直接读取和写入 PX4 内部的 uORB 主题。
(尤其)建议在以下场景中使用:从伴飞计算机进行控制与通信(且低延迟至关重要时)、需借助 Linux 系统的现有库时,或编写新的高级飞行模式时。
-ROS 2 与 PX4 之间的通信使用的中间件需实现 [XRCE-DDS protocol](../middleware/uxrce_dds.md).
-这个中间件将以 ROS 2 消息和类型显示 PX4 [uORB messages](../msg_docs/index.md) 会转换为 ROS 2 消息和数据类型,从而切实支持从 ROS 2 工作流与节点直接访问 PX4。
-中间件使用 uORB 消息定义生成代码来序列化和反序列化来处理PX4 的收发消息。
+Communication between ROS 2 and PX4 can leverage two independent middlewares:
+
+- [XRCE-DDS protocol](../middleware/uxrce_dds.md) — Original middleware. More tested and included by default in most PX4 builds.
+- [Zenoh protocol](../middleware/zenoh.md) — Must be manually added and enabled to most PX4 builds.
+
+The middlewares expose PX4 [uORB messages](../msg_docs/index.md) as ROS 2 messages and types, effectively allowing direct access to PX4 from ROS 2 workflows and nodes.
+The middlewares use uORB message definitions to generate code to serialise and deserialise the messages heading in and out of PX4.
这些相同的消息定义也用于 ROS 2 应用程序中以便能够解析这些消息。
:::info
-ROS 2 也可以使用 [MAVROS](https://github.com/mavlink/mavros/tree/ros2/mavros)而不是 XRCE-DDS连接到 PX4。
+ROS 2 can also connect with PX4 using [MAVROS](https://github.com/mavlink/mavros/tree/ros2/mavros) instead of XRCE-DDS / Zenoh.
该选项受 MAVROS 项目支持(本文档未对此进行说明)。
:::
-要通过 XRCE-DDS 有效使用 [ROS 2](../ros2/user_guide.md) ,(在撰写本文时)你必须对 PX4 的内部架构及约定有一定了解,而这些架构与约定和 ROS 所使用的存在差异。
+To use the [ROS 2](../ros2/user_guide.md) over XRCE-DDS / Zenoh effectively, you must (at time of writing) have a reasonable understanding of the PX4 internal architecture and conventions, which differ from those used by ROS.
我们计划近期提供ROS 2 API 以对 PX4 的特性进行封装,并举例说明它们的用途。
## Topics
@@ -42,4 +46,5 @@ ROS 2 也可以使用 [MAVROS](https://github.com/mavlink/mavros/tree/ros2/mavro
## 更多信息
-- [XRCE-DDS (PX4-ROS 2/DDS Bridge)](../middleware/uxrce_dds.md): PX4 使用中间件链接到 ROS 2。
+- [XRCE-DDS (PX4-ROS 2/DDS Bridge)](../middleware/uxrce_dds.md): PX4 middleware leveranging micro XRCE-DDS for connecting to ROS 2.
+- [Zenoh (PX4 ROS 2)](../middleware/zenoh.md): PX4 middleware leveraging Zenoh pico for connecting to ROS 2.
diff --git a/docs/zh/sim_hawkeye/index.md b/docs/zh/sim_hawkeye/index.md
new file mode 100644
index 0000000000..15d8d2ed28
--- /dev/null
+++ b/docs/zh/sim_hawkeye/index.md
@@ -0,0 +1,61 @@
+# Hawkeye Visualizer
+
+[Hawkeye](https://px4.github.io/Hawkeye/) is a real-time 3D flight _visualizer_ for PX4.
+
+Hawkeye is the natural pair for [SIH](../sim_sih/index.md) — SIH runs the physics of an aircraft simulation and outputs MAVLink [HIL_STATE_QUATERNION](https://mavlink.io/en/messages/common.html#HIL_STATE_QUATERNION) messages, Hawkeye uses these to show you what's happening.
+
+Hawkeye has zero runtime dependencies, supports up to 16 vehicles simultaneously, and can replay PX4 ULog (`.ulg`) flight logs with transport controls, markers, and multi-drone correlation analysis.
+
+## Install
+
+### macOS (Homebrew)
+
+```sh
+brew tap PX4/px4
+brew install PX4/px4/hawkeye
+```
+
+### Linux (Debian/Ubuntu)
+
+Download the `.deb` from the [Hawkeye releases page](https://github.com/PX4/Hawkeye/releases/latest):
+
+```sh
+sudo dpkg -i hawkeye-*.deb
+```
+
+### Windows and source builds
+
+For Ubuntu 24.04 or later in WSL2 you can install the packages in the same way:
+
+```sh
+sudo dpkg -i hawkeye-*.deb
+```
+
+For other versions of Ubuntu (or native Windows builds) you may need to [Build from source](https://px4.github.io/Hawkeye/developer/build) (Hawkeye docs).
+
+## Usage with SIH
+
+Start PX4 SIH, then launch Hawkeye in a separate terminal:
+
+```sh
+# Terminal 1
+make px4_sitl sihsim_quadx
+
+# Terminal 2
+hawkeye
+```
+
+Hawkeye listens on UDP port 19410 — the same port SIH sends [HIL_STATE_QUATERNION](https://mavlink.io/en/messages/common.html#HIL_STATE_QUATERNION) on — so no configuration is needed.
+The vehicle appears in the Hawkeye window as soon as SIH starts streaming.
+
+For fixed-wing or tailsitter simulation, Hawkeye auto-detects the vehicle type from MAVLink `HEARTBEAT` and loads the matching 3D model.
+
+## Full documentation
+
+Complete documentation — including multi-vehicle SITL, ULog replay, HUD modes, camera controls, and correlation analysis — lives at **[px4.github.io/Hawkeye](https://px4.github.io/Hawkeye/)**.
+
+- [First SITL run](https://px4.github.io/Hawkeye/first-sitl) — the shortest path from install to seeing a vehicle move
+- [Multi-Drone Replay](https://px4.github.io/Hawkeye/multi_drone) — compare multiple flights with deconfliction and correlation
+- [Live SITL Integration](https://px4.github.io/Hawkeye/sitl) — single-vehicle and multi-instance swarm workflows
+- [Command-Line Reference](https://px4.github.io/Hawkeye/cli) — every CLI flag with examples
+- [Source code](https://github.com/PX4/Hawkeye)
diff --git a/docs/zh/sim_sih/index.md b/docs/zh/sim_sih/index.md
index 599c8c319b..557f591b72 100644
--- a/docs/zh/sim_sih/index.md
+++ b/docs/zh/sim_sih/index.md
@@ -79,27 +79,28 @@ The `px4_sitl` target will work, but will also build Gazebo libraries.
### Visualization (Optional) {#sitl-visualization}
SIH is intentionally headless by default.
-If you need a visual aid to see what the vehicle is doing you can use QGroundControl to track path over ground, and/or jMAVSim as a 3D viewer.
+If you need a visual aid to see what the vehicle is doing you can use QGroundControl to track path over ground, and/or [Hawkeye](../sim_hawkeye/index.md) as a 3D viewer.
#### QGroundControl
QGC auto-connects on UDP port 14550. Open QGC while SIH is running and the vehicle appears on the map view with attitude, position, and telemetry.
-#### jMAVSim (3D Display-Only)
+#### Hawkeye (3D Visualizer)
-jMAVSim can render a 3D view of the vehicle using MAVLink position data. No physics are simulated in jMAVSim — it is display-only.
+[Hawkeye](../sim_hawkeye/index.md) renders a real-time 3D view of the vehicle using MAVLink position data.
+No physics are simulated in Hawkeye — it is a visualizer only.
+
+In a separate terminal, run:
```sh
-./Tools/simulation/jmavsim/jmavsim_run.sh -p 19410 -u -q -o
+hawkeye
```
-Flags:
+Hawkeye connects on UDP port 19410 by default (the same port SIH sends `HIL_STATE_QUATERNION` on).
+It then auto-detects the vehicle type from the MAVLink `HEARTBEAT` and loads the matching 3D model.
-- `-a` for airplane model
-- `-t` for tailsitter model
-- `-o` enables display-only mode.
-
-See [jMAVSim Display-Only Mode](../sim_jmavsim/index.md#display-only-mode) for details.
+The [Hawkeye](../sim_hawkeye/index.md) overview page explains how to install the software.
+See the [Hawkeye docs](https://px4.github.io/Hawkeye/) for other features, such as ULog replay, and multi-vehicle visualization.
### Environment Configuration
@@ -153,14 +154,14 @@ See [uXRCE-DDS (PX4-ROS 2/DDS Bridge)](../middleware/uxrce_dds.md) for full setu
PX4 SITL opens the following UDP ports (all instance-aware, offset by instance number N).
-| PX4 sends to (remote) | PX4 listens on (local) | Use for | Instance offset |
-| ---------------------------------------- | ----------------------------------------- | -------------------------------------------------- | ------------------------------------------------------------ |
-| **14550** | 18570 (+N) | QGroundControl, GCS tools | Yes |
-| **14540** (+N) | 14580 (+N) | MAVSDK, MAVROS, offboard APIs | Yes (capped at 14549 for 10+ instances) |
-| **14030** (+N) | 14280 (+N) | Onboard camera/payload | Yes |
-| **13280** (+N) | 13030 (+N) | Gimbal control | Yes |
-| **19410** (+N) | 19450 (+N) | jMAVSim display-only (SIH only) | Yes |
-| **8888** | - | uXRCE-DDS / ROS 2 | No (use DDS namespace for multi-instance) |
+| PX4 sends to (remote) | PX4 listens on (local) | Use for | Instance offset |
+| ---------------------------------------- | ----------------------------------------- | ------------------------------------------------ | ------------------------------------------------------------ |
+| **14550** | 18570 (+N) | QGroundControl, GCS tools | Yes |
+| **14540** (+N) | 14580 (+N) | MAVSDK, MAVROS, offboard APIs | Yes (capped at 14549 for 10+ instances) |
+| **14030** (+N) | 14280 (+N) | Onboard camera/payload | Yes |
+| **13280** (+N) | 13030 (+N) | Gimbal control | Yes |
+| **19410** (+N) | 19450 (+N) | Hawkeye visualizer (SIH only) | Yes |
+| **8888** | - | uXRCE-DDS / ROS 2 | No (use DDS namespace for multi-instance) |
QGC auto-connects on port **14550** by default. MAVSDK connects on **14540**. No manual port configuration needed for single-instance use.