diff --git a/docs/ko/SUMMARY.md b/docs/ko/SUMMARY.md
index 6471d1f16a..c9d307537a 100644
--- a/docs/ko/SUMMARY.md
+++ b/docs/ko/SUMMARY.md
@@ -165,6 +165,7 @@
- [ARK Electronics ARKV6X](flight_controller/ark_v6x.md)
- [ARK FPV Flight Controller](flight_controller/ark_fpv.md)
- [ARK Pi6X Flow Flight Controller](flight_controller/ark_pi6x.md)
+ - [CORVON 743v1](flight_controller/corvon_743v1.md)
- [CUAV Nora](flight_controller/cuav_nora.md)
- [CUAV V5+ (FMUv5)](flight_controller/cuav_v5_plus.md)
- [Wiring Quickstart](assembly/quick_start_cuav_v5_plus.md)
@@ -497,6 +498,7 @@
- [비행 제어 장치 이식 안내](hardware/porting_guide.md)
- [PX4 Board Configuration (kconfig)](hardware/porting_guide_config.md)
- [NuttX Board Porting Guide](hardware/porting_guide_nuttx.md)
+ - [Board Firmware Packaging (.deb)](hardware/board_packaging.md)
- [시리얼 포트 매핑](hardware/serial_port_mapping.md)
- [기체](dev_airframes/index.md)
- [새 기체 추가](dev_airframes/adding_a_new_frame.md)
@@ -777,6 +779,7 @@
- [MAVLink Messaging](mavlink/index.md)
- [Adding Messages](mavlink/adding_messages.md)
- [Streaming Messages](mavlink/streaming_messages.md)
+ - [MAVLink Profiles](mavlink/mavlink_profiles.md)
- [Receiving Messages](mavlink/receiving_messages.md)
- [Custom MAVLink Messages](mavlink/custom_messages.md)
- [Message Signing](mavlink/message_signing.md)
diff --git a/docs/ko/advanced/pps_time_sync.md b/docs/ko/advanced/pps_time_sync.md
index f0a67858b9..2867faab61 100644
--- a/docs/ko/advanced/pps_time_sync.md
+++ b/docs/ko/advanced/pps_time_sync.md
@@ -57,6 +57,17 @@ param set PWM_MAIN_FUNC10 2064
param set PPS_CAP_ENABLE 1
```
+#### Multi-GPS Setups
+
+If you have multiple GPS receivers, set `PPS_CAP_GPS_ID` to the device ID of the GPS receiver that emits the PPS signal.
+When set to `0` (default), the driver uses the first available GPS instance.
+
+You can find the device ID by running:
+
+```sh
+listener sensor_gps
+```
+
### 배선
The wiring configuration depends on your specific flight controller.
@@ -131,5 +142,5 @@ See also:
The PPS signal provides much higher temporal precision than the transmitted time data, which has latency and jitter from serial communication.
:::warning
-If the PPS driver does not sending any data for 5 seconds (despite having `PPS_CAP_ENABLE` set to 1), the `EKF2_GPS_DELAY` will be used instead for estimating the latency.
+If the PPS driver does not send any data for 5 seconds (despite having `PPS_CAP_ENABLE` set to 1), the corresponding `SENS_GPS*_DELAY` parameter will be used instead for estimating the latency.
:::
diff --git a/docs/ko/advanced_config/tuning_the_ecl_ekf.md b/docs/ko/advanced_config/tuning_the_ecl_ekf.md
index 249e99d5d3..7146ae8209 100644
--- a/docs/ko/advanced_config/tuning_the_ecl_ekf.md
+++ b/docs/ko/advanced_config/tuning_the_ecl_ekf.md
@@ -409,6 +409,16 @@ With Valid GNSS Data:
- **Alternative Sources**: Dead-reckoning mode provides enhanced protection by requiring absence of alternative navigation sources before allowing resets.
- **Boot Vulnerability**: Initial faulty GNSS data cannot be detected automatically; requires operator intervention and manual position correction.
+#### Ground Position Lock
+
+When a vehicle equipped with dead-reckoning sensors (e.g. airspeed for fixed-wing, or optical flow) is sitting on the ground before takeoff, those sensors provide little to no aiding — airspeed and optical flow measurements are unreliable at rest. In this case, the EKF relies on _constant position fusion_ (fusing a synthetic position measurement at the last known position) to prevent the estimate from drifting. However, this is only active when the vehicle is detected as stationary, so handling the vehicle or starting the engine can interrupt it.
+
+To counter this, [EKF2_POS_LOCK](../advanced_config/parameter_reference.md#EKF2_POS_LOCK) can be enabled to force constant position fusion to run while landed and the global horizontal position has already been initialized.
+
+:::note
+`EKF2_POS_LOCK` has no effect in flight.
+:::
+
### 거리 측정기
[Range finder](../sensor/rangefinders.md) distance to ground is used by a single state filter to estimate the vertical position of the terrain relative to the height datum.
diff --git a/docs/ko/assembly/mount_gps_compass.md b/docs/ko/assembly/mount_gps_compass.md
index 76368713c9..a3b5c2f59c 100644
--- a/docs/ko/assembly/mount_gps_compass.md
+++ b/docs/ko/assembly/mount_gps_compass.md
@@ -20,7 +20,7 @@ For more information see [Setting the Compass Orientation](../config/flight_cont
## Position
-In order to compensate for the relative motion between the receiver and the CoG, you should [configure](../advanced_config/parameters.md) the following parameters to set the offsets: [EKF2_GPS_POS_X](../advanced_config/parameter_reference.md#EKF2_GPS_POS_X), [EKF2_GPS_POS_Y](../advanced_config/parameter_reference.md#EKF2_GPS_POS_Y) and [EKF2_GPS_POS_Z](../advanced_config/parameter_reference.md#EKF2_GPS_POS_Z).
+In order to compensate for the relative motion between the receiver and the CoG, you should [configure](../advanced_config/parameters.md) the following parameters to set the offsets: [SENS_GPS0_OFFX](../advanced_config/parameter_reference.md#SENS_GPS0_OFFX), [SENS_GPS0_OFFY](../advanced_config/parameter_reference.md#SENS_GPS0_OFFY) and [SENS_GPS0_OFFZ](../advanced_config/parameter_reference.md#SENS_GPS0_OFFZ).
This is important because the body frame estimated by the EKF will converge on the location of the GNSS module and assume it to be at the CoG. If the GNSS module is significantly offset from the CoG, then rotation around the COG will be interpreted as an altitude change, which in some flight modes (such as position mode) will result in unnecessary corrections.
diff --git a/docs/ko/companion_computer/holybro_pixhawk_rpi_cm4_baseboard.md b/docs/ko/companion_computer/holybro_pixhawk_rpi_cm4_baseboard.md
index 0f062e642b..0fb0567d87 100644
--- a/docs/ko/companion_computer/holybro_pixhawk_rpi_cm4_baseboard.md
+++ b/docs/ko/companion_computer/holybro_pixhawk_rpi_cm4_baseboard.md
@@ -99,7 +99,7 @@ The image below shows the wiring in greater detail.
This section explains how you install your preferred Linux distro, such as "Raspberry Pi OS 64bit" onto the RPi EMCC.
-참고:
+Notes:
- If you are using PX4, you will need to use PX4 version 1.13.1 or newer for PX4 to recognize this baseboard.
- The fan does not indicate if the RPi CM4 is powered/running or not.
diff --git a/docs/ko/concept/control_allocation.md b/docs/ko/concept/control_allocation.md
index b883bf4e5e..f6b392d3d0 100644
--- a/docs/ko/concept/control_allocation.md
+++ b/docs/ko/concept/control_allocation.md
@@ -31,7 +31,7 @@ Overview of the mixing pipeline in terms of modules and uORB topics (press to sh

-참고:
+Notes:
- The rate controller outputs torque and thrust setpoints
- the `control_allocator` module:
diff --git a/docs/ko/config/actuators.md b/docs/ko/config/actuators.md
index 48ceecb4bd..9602af0ac5 100644
--- a/docs/ko/config/actuators.md
+++ b/docs/ko/config/actuators.md
@@ -675,7 +675,6 @@ For each of the tilt servos:
- 안전 버튼을 쿨러야 액츄에이트를 테스트 할 수 있습니다.
- 중지 스위치를 사용하면 모터를 즉시 중지할 수 있습니다.
- 해당 슬라이더가 변경될 때까지 서보는 실제로 이동하지 않습니다.
-- The parameter [COM_MOT_TEST_EN](../advanced_config/parameter_reference.md#COM_MOT_TEST_EN) can be used to completely disable actuator testing.
- On the shell, [actuator_test](../modules/modules_command.md#actuator-test) can be used as well for actuator testing.
- VTOLs will automatically turn off motors pointing upwards during **fixed-wing flight**:
- 표준 VTOL: 멀티콥터 모터로 정의된 모터가 꺼집니다.
diff --git a/docs/ko/config/compass.md b/docs/ko/config/compass.md
index c93f6f49ab..027bc628d3 100644
--- a/docs/ko/config/compass.md
+++ b/docs/ko/config/compass.md
@@ -86,7 +86,7 @@ This calibration is similar to the well-known figure-8 compass calibration done
2-3 oscillations of ~30 degrees in every direction is usually sufficient.
2. Wait for the heading estimate to stabilize and verify that the compass rose is pointing to the correct direction (this can take a couple of seconds).
-참고:
+Notes:
- There is no start/stop for this type of calibration (the algorithm runs continuously when the vehicle is disarmed).
- The calibration is immediately applied to the data (no reboot is required) but is saved to the calibration parameters after disarming the vehicle only (the calibration is lost if no arming/disarming sequence is performed between calibration and shutdown).
@@ -109,7 +109,7 @@ This calibration process leverages external knowledge of vehicle's orientation a
commander calibrate mag quick
```
-참고:
+Notes:
- This method is specifically designed for vehicles where full rotation is impractical or impossible.
If full rotation is possible, use the [complete calibration](#complete-calibration) instead.
diff --git a/docs/ko/config/manual_control.md b/docs/ko/config/manual_control.md
index 312436ab97..dc6385767a 100644
--- a/docs/ko/config/manual_control.md
+++ b/docs/ko/config/manual_control.md
@@ -45,7 +45,7 @@ If you have multiple control sources, such as an RC system and/or one or more Jo
The [MAVLink instance](../peripherals/mavlink_peripherals.md#mavlink-instances) refers to an instance assigned to a serial port, such as [MAV_0_CONFIG](../advanced_config/parameter_reference.md#MAV_0_CONFIG).
-참고:
+Notes:
- RC checks are run for any option that uses RC (so not for `MAVLink only` or `Disable manual control`).
- When using priority sources, sources are evaluated as soon as they become valid and may trigger an immediate switch (if higher priority than the currently active source).
diff --git a/docs/ko/config_mc/filter_tuning.md b/docs/ko/config_mc/filter_tuning.md
index 2a7e2cd406..9bddaaa7e1 100644
--- a/docs/ko/config_mc/filter_tuning.md
+++ b/docs/ko/config_mc/filter_tuning.md
@@ -72,7 +72,7 @@ The ESC RPM feedback is used to track the rotor blade pass frequency and its har
ESC RPM feedback requires ESCs capable of providing RPM feedback such as [DShot](../peripherals/dshot.md) with telemetry connected, a bidirectional DShot set up ([work in progress](https://github.com/PX4/PX4-Autopilot/pull/23863)), or [UAVCAN/DroneCAN ESCs](../dronecan/escs.md).
Before enabling, make sure that the ESC RPM is correct.
-You might have to adjust the [pole count of the motors](../advanced_config/parameter_reference.md#MOT_POLE_COUNT).
+You might have to adjust the per-motor pole count (`DSHOT_MOT_POL1`–`DSHOT_MOT_POL12`).
The following parameters should be set to enable and configure dynamic notch filters:
diff --git a/docs/ko/dev_log/log_encryption.md b/docs/ko/dev_log/log_encryption.md
index 663de12daf..e3b5fb372f 100644
--- a/docs/ko/dev_log/log_encryption.md
+++ b/docs/ko/dev_log/log_encryption.md
@@ -342,7 +342,7 @@ PX4-Autopilot/
│ │ ├── public_key.pub # Public key in hex format
```
-참고:
+Notes:
- The script will not overwrite any existing keys in the folders.
It will generate a new public key if the folder only includes a private key.
diff --git a/docs/ko/dronecan/ark_g5_rtk_gps.md b/docs/ko/dronecan/ark_g5_rtk_gps.md
index 92ab020b62..b067e5dc08 100644
--- a/docs/ko/dronecan/ark_g5_rtk_gps.md
+++ b/docs/ko/dronecan/ark_g5_rtk_gps.md
@@ -97,7 +97,7 @@ There is also CAN built-in bus termination via [CANNODE_TERM](../advanced_config
You need to set necessary [DroneCAN](index.md) parameters and define offsets if the sensor is not centred within the vehicle:
- Enable [UAVCAN_SUB_GPS](../advanced_config/parameter_reference.md#UAVCAN_SUB_GPS), [UAVCAN_SUB_MAG](../advanced_config/parameter_reference.md#UAVCAN_SUB_MAG), and [UAVCAN_SUB_BARO](../advanced_config/parameter_reference.md#UAVCAN_SUB_BARO).
-- The parameters [EKF2_GPS_POS_X](../advanced_config/parameter_reference.md#EKF2_GPS_POS_X), [EKF2_GPS_POS_Y](../advanced_config/parameter_reference.md#EKF2_GPS_POS_Y) and [EKF2_GPS_POS_Z](../advanced_config/parameter_reference.md#EKF2_GPS_POS_Z) can be set to account for the offset of the ARK G5 RTK GPS from the vehicle's centre of gravity.
+- The parameters [SENS_GPS0_OFFX](../advanced_config/parameter_reference.md#SENS_GPS0_OFFX), [SENS_GPS0_OFFY](../advanced_config/parameter_reference.md#SENS_GPS0_OFFY) and [SENS_GPS0_OFFZ](../advanced_config/parameter_reference.md#SENS_GPS0_OFFZ) can be set to account for the offset of the ARK G5 RTK GPS from the vehicle's centre of gravity.
## LED 신호의 의미
diff --git a/docs/ko/dronecan/ark_g5_rtk_heading_gps.md b/docs/ko/dronecan/ark_g5_rtk_heading_gps.md
index 68443dfde7..7b5da8df23 100644
--- a/docs/ko/dronecan/ark_g5_rtk_heading_gps.md
+++ b/docs/ko/dronecan/ark_g5_rtk_heading_gps.md
@@ -99,7 +99,7 @@ You need to set necessary [DroneCAN](index.md) parameters and define offsets if
- Enable GPS yaw fusion by setting bit 3 of [EKF2_GPS_CTRL](../advanced_config/parameter_reference.md#EKF2_GPS_CTRL) to true.
- Enable GPS blending to ensure the heading is always published by setting [SENS_GPS_MASK](../advanced_config/parameter_reference.md#SENS_GPS_MASK) to 7 (all three bits checked).
- Enable [UAVCAN_SUB_GPS](../advanced_config/parameter_reference.md#UAVCAN_SUB_GPS), [UAVCAN_SUB_MAG](../advanced_config/parameter_reference.md#UAVCAN_SUB_MAG), and [UAVCAN_SUB_BARO](../advanced_config/parameter_reference.md#UAVCAN_SUB_BARO).
-- The parameters [EKF2_GPS_POS_X](../advanced_config/parameter_reference.md#EKF2_GPS_POS_X), [EKF2_GPS_POS_Y](../advanced_config/parameter_reference.md#EKF2_GPS_POS_Y) and [EKF2_GPS_POS_Z](../advanced_config/parameter_reference.md#EKF2_GPS_POS_Z) can be set to account for the offset of the ARK G5 RTK HEADING GPS from the vehicle's centre of gravity.
+- The parameters [SENS_GPS0_OFFX](../advanced_config/parameter_reference.md#SENS_GPS0_OFFX), [SENS_GPS0_OFFY](../advanced_config/parameter_reference.md#SENS_GPS0_OFFY) and [SENS_GPS0_OFFZ](../advanced_config/parameter_reference.md#SENS_GPS0_OFFZ) can be set to account for the offset of the ARK G5 RTK HEADING GPS from the vehicle's centre of gravity.
### Parameter references
diff --git a/docs/ko/dronecan/ark_gps.md b/docs/ko/dronecan/ark_gps.md
index 4bcd150a6d..4a369996d9 100644
--- a/docs/ko/dronecan/ark_gps.md
+++ b/docs/ko/dronecan/ark_gps.md
@@ -91,7 +91,7 @@ If the sensor is not centred within the vehicle you will also need to define sen
- Enable GPS yaw fusion by setting bit 3 of [EKF2_GPS_CTRL](../advanced_config/parameter_reference.md#EKF2_GPS_CTRL) to true.
- Enable [UAVCAN_SUB_GPS](../advanced_config/parameter_reference.md#UAVCAN_SUB_GPS), [UAVCAN_SUB_MAG](../advanced_config/parameter_reference.md#UAVCAN_SUB_MAG), and [UAVCAN_SUB_BARO](../advanced_config/parameter_reference.md#UAVCAN_SUB_BARO).
-- The parameters [EKF2_GPS_POS_X](../advanced_config/parameter_reference.md#EKF2_GPS_POS_X), [EKF2_GPS_POS_Y](../advanced_config/parameter_reference.md#EKF2_GPS_POS_Y) and [EKF2_GPS_POS_Z](../advanced_config/parameter_reference.md#EKF2_GPS_POS_Z) can be set to account for the offset of the ARK GPS from the vehicles centre of gravity.
+- The parameters [SENS_GPS0_OFFX](../advanced_config/parameter_reference.md#SENS_GPS0_OFFX), [SENS_GPS0_OFFY](../advanced_config/parameter_reference.md#SENS_GPS0_OFFY) and [SENS_GPS0_OFFZ](../advanced_config/parameter_reference.md#SENS_GPS0_OFFZ) can be set to account for the offset of the ARK GPS from the vehicles centre of gravity.
### ARK GPS Configuration
diff --git a/docs/ko/dronecan/ark_rtk_gps.md b/docs/ko/dronecan/ark_rtk_gps.md
index e66dfbbcb6..c41c4e5ca4 100644
--- a/docs/ko/dronecan/ark_rtk_gps.md
+++ b/docs/ko/dronecan/ark_rtk_gps.md
@@ -84,8 +84,9 @@ You need to set necessary [DroneCAN](index.md) parameters and define offsets if
- Enable GPS yaw fusion by setting bit 3 of [EKF2_GPS_CTRL](../advanced_config/parameter_reference.md#EKF2_GPS_CTRL) to true.
- Enable GPS blending to ensure the heading is always published by setting [SENS_GPS_MASK](../advanced_config/parameter_reference.md#SENS_GPS_MASK) to 7 (all three bits checked).
+- If using [Moving Baseline & GPS Heading](#setting-up-moving-baseline--gps-heading), set [SENS_GPS_PRIME](../advanced_config/parameter_reference.md#SENS_GPS_PRIME) to the CAN node ID of the _Moving Base_ module. The moving base is preferred because the rover receiver in a moving baseline configuration can experience degraded navigation rate and increased data latency when corrections are intermittent.
- Enable [UAVCAN_SUB_GPS](../advanced_config/parameter_reference.md#UAVCAN_SUB_GPS), [UAVCAN_SUB_MAG](../advanced_config/parameter_reference.md#UAVCAN_SUB_MAG), and [UAVCAN_SUB_BARO](../advanced_config/parameter_reference.md#UAVCAN_SUB_BARO).
-- The parameters [EKF2_GPS_POS_X](../advanced_config/parameter_reference.md#EKF2_GPS_POS_X), [EKF2_GPS_POS_Y](../advanced_config/parameter_reference.md#EKF2_GPS_POS_Y) and [EKF2_GPS_POS_Z](../advanced_config/parameter_reference.md#EKF2_GPS_POS_Z) can be set to account for the offset of the ARK RTK GPS from the vehicles centre of gravity.
+- The parameters [SENS_GPS0_OFFX](../advanced_config/parameter_reference.md#SENS_GPS0_OFFX), [SENS_GPS0_OFFY](../advanced_config/parameter_reference.md#SENS_GPS0_OFFY) and [SENS_GPS0_OFFZ](../advanced_config/parameter_reference.md#SENS_GPS0_OFFZ) can be set to account for the offset of the ARK RTK GPS from the vehicles centre of gravity.
### ARK RTK GPS Configuration
@@ -137,6 +138,7 @@ Setup via CAN:
- On the _Moving Base_, set the following:
- [GPS_UBX_MODE](../advanced_config/parameter_reference.md#GPS_UBX_MODE) to `4`.
- [CANNODE_PUB_MBD](../advanced_config/parameter_reference.md#CANNODE_PUB_MBD) to `1`.
+- On the _Flight Controller_, set [SENS_GPS_PRIME](../advanced_config/parameter_reference.md#SENS_GPS_PRIME) to the CAN node ID of the _Moving Base_ (see [PX4 Configuration](#px4-configuration)).
Setup via UART:
@@ -155,6 +157,7 @@ Setup via UART:
- [GPS_YAW_OFFSET](../advanced_config/parameter_reference.md#GPS_YAW_OFFSET) to `0` if your _Rover_ is in front of your _Moving Base_, `90` if _Rover_ is right of _Moving Base_, `180` if _Rover_ is behind _Moving Base_, or `270` if _Rover_ is left of _Moving Base_.
- On the _Moving Base_, set the following:
- [GPS_UBX_MODE](../advanced_config/parameter_reference.md#GPS_UBX_MODE) to `2`.
+- On the _Flight Controller_, set [SENS_GPS_PRIME](../advanced_config/parameter_reference.md#SENS_GPS_PRIME) to the CAN node ID of the _Moving Base_ (see [PX4 Configuration](#px4-configuration)).
For more information see [Rover and Moving Base](../dronecan/index.md#rover-and-moving-base) in the DroneCAN guide.
diff --git a/docs/ko/dronecan/ark_rtk_gps_l1_l2.md b/docs/ko/dronecan/ark_rtk_gps_l1_l2.md
index de5de1a5eb..5cdd64540d 100644
--- a/docs/ko/dronecan/ark_rtk_gps_l1_l2.md
+++ b/docs/ko/dronecan/ark_rtk_gps_l1_l2.md
@@ -85,7 +85,7 @@ You need to set necessary [DroneCAN](index.md) parameters and define offsets if
- Enable GPS yaw fusion by setting bit 3 of [EKF2_GPS_CTRL](../advanced_config/parameter_reference.md#EKF2_GPS_CTRL) to true.
- Enable GPS blending to ensure the heading is always published by setting [SENS_GPS_MASK](../advanced_config/parameter_reference.md#SENS_GPS_MASK) to 7 (all three bits checked).
- Enable [UAVCAN_SUB_GPS](../advanced_config/parameter_reference.md#UAVCAN_SUB_GPS), [UAVCAN_SUB_MAG](../advanced_config/parameter_reference.md#UAVCAN_SUB_MAG), and [UAVCAN_SUB_BARO](../advanced_config/parameter_reference.md#UAVCAN_SUB_BARO).
-- The parameters [EKF2_GPS_POS_X](../advanced_config/parameter_reference.md#EKF2_GPS_POS_X), [EKF2_GPS_POS_Y](../advanced_config/parameter_reference.md#EKF2_GPS_POS_Y) and [EKF2_GPS_POS_Z](../advanced_config/parameter_reference.md#EKF2_GPS_POS_Z) can be set to account for the offset of the ARK RTK GPS L1 L5 from the vehicles centre of gravity.
+- The parameters [SENS_GPS0_OFFX](../advanced_config/parameter_reference.md#SENS_GPS0_OFFX), [SENS_GPS0_OFFY](../advanced_config/parameter_reference.md#SENS_GPS0_OFFY) and [SENS_GPS0_OFFZ](../advanced_config/parameter_reference.md#SENS_GPS0_OFFZ) can be set to account for the offset of the ARK RTK GPS L1 L5 from the vehicles centre of gravity.
### ARK RTK GPS L1 L5 Configuration
diff --git a/docs/ko/dronecan/ark_x20_rtk_gps.md b/docs/ko/dronecan/ark_x20_rtk_gps.md
index 6473bae5db..5e9bf24b55 100644
--- a/docs/ko/dronecan/ark_x20_rtk_gps.md
+++ b/docs/ko/dronecan/ark_x20_rtk_gps.md
@@ -88,7 +88,7 @@ You need to set necessary [DroneCAN](index.md) parameters and define offsets if
- Enable GPS yaw fusion by setting bit 3 of [EKF2_GPS_CTRL](../advanced_config/parameter_reference.md#EKF2_GPS_CTRL) to true.
- Enable GPS blending to ensure the heading is always published by setting [SENS_GPS_MASK](../advanced_config/parameter_reference.md#SENS_GPS_MASK) to 7 (all three bits checked).
- Enable [UAVCAN_SUB_GPS](../advanced_config/parameter_reference.md#UAVCAN_SUB_GPS), [UAVCAN_SUB_MAG](../advanced_config/parameter_reference.md#UAVCAN_SUB_MAG), and [UAVCAN_SUB_BARO](../advanced_config/parameter_reference.md#UAVCAN_SUB_BARO).
-- The parameters [EKF2_GPS_POS_X](../advanced_config/parameter_reference.md#EKF2_GPS_POS_X), [EKF2_GPS_POS_Y](../advanced_config/parameter_reference.md#EKF2_GPS_POS_Y) and [EKF2_GPS_POS_Z](../advanced_config/parameter_reference.md#EKF2_GPS_POS_Z) can be set to account for the offset of the ARK X20 RTK GPS from the vehicles centre of gravity.
+- The parameters [SENS_GPS0_OFFX](../advanced_config/parameter_reference.md#SENS_GPS0_OFFX), [SENS_GPS0_OFFY](../advanced_config/parameter_reference.md#SENS_GPS0_OFFY) and [SENS_GPS0_OFFZ](../advanced_config/parameter_reference.md#SENS_GPS0_OFFZ) can be set to account for the offset of the ARK X20 RTK GPS from the vehicles centre of gravity.
### ARK X20 RTK GPS Configuration
diff --git a/docs/ko/dronecan/holybro_m8n_gps.md b/docs/ko/dronecan/holybro_m8n_gps.md
index f8ba0a5e74..92b784336e 100644
--- a/docs/ko/dronecan/holybro_m8n_gps.md
+++ b/docs/ko/dronecan/holybro_m8n_gps.md
@@ -94,4 +94,4 @@ If the sensor is not centred within the vehicle you will also need to define sen
- Enable GPS yaw fusion by setting bit 3 of [EKF2_GPS_CTRL](../advanced_config/parameter_reference.md#EKF2_GPS_CTRL) to true.
- Enable [UAVCAN_SUB_GPS](../advanced_config/parameter_reference.md#UAVCAN_SUB_GPS), [UAVCAN_SUB_MAG](../advanced_config/parameter_reference.md#UAVCAN_SUB_MAG), and [UAVCAN_SUB_BARO](../advanced_config/parameter_reference.md#UAVCAN_SUB_BARO).
- Set [CANNODE_TERM](../advanced_config/parameter_reference.md#CANNODE_TERM) to `1` if this is that last node on the CAN bus.
-- The parameters [EKF2_GPS_POS_X](../advanced_config/parameter_reference.md#EKF2_GPS_POS_X), [EKF2_GPS_POS_Y](../advanced_config/parameter_reference.md#EKF2_GPS_POS_Y) and [EKF2_GPS_POS_Z](../advanced_config/parameter_reference.md#EKF2_GPS_POS_Z) can be set to account for the offset of the ARK GPS from the vehicles centre of gravity.
+- The parameters [SENS_GPS0_OFFX](../advanced_config/parameter_reference.md#SENS_GPS0_OFFX), [SENS_GPS0_OFFY](../advanced_config/parameter_reference.md#SENS_GPS0_OFFY) and [SENS_GPS0_OFFZ](../advanced_config/parameter_reference.md#SENS_GPS0_OFFZ) can be set to account for the offset of the ARK GPS from the vehicles centre of gravity.
diff --git a/docs/ko/dronecan/index.md b/docs/ko/dronecan/index.md
index e3a2533d51..cba14ba2af 100644
--- a/docs/ko/dronecan/index.md
+++ b/docs/ko/dronecan/index.md
@@ -194,7 +194,7 @@ GPS CANNODE parameter ([set using QGC](#qgc-cannode-parameter-configuration)):
Other PX4 Parameters:
-- If the GPS is not positioned at the vehicle centre of gravity you can account for the offset using [EKF2_GPS_POS_X](../advanced_config/parameter_reference.md#EKF2_GPS_POS_X), [EKF2_GPS_POS_Y](../advanced_config/parameter_reference.md#EKF2_GPS_POS_Y) and [EKF2_GPS_POS_Z](../advanced_config/parameter_reference.md#EKF2_GPS_POS_Z).
+- If the GPS is not positioned at the vehicle centre of gravity you can account for the offset using [SENS_GPS0_OFFX](../advanced_config/parameter_reference.md#SENS_GPS0_OFFX), [SENS_GPS0_OFFY](../advanced_config/parameter_reference.md#SENS_GPS0_OFFY) and [SENS_GPS0_OFFZ](../advanced_config/parameter_reference.md#SENS_GPS0_OFFZ).
- If the GPS module provides yaw information, you can enable GPS yaw fusion by setting bit 3 of [EKF2_GPS_CTRL](../advanced_config/parameter_reference.md#EKF2_GPS_CTRL) to true.
#### RTK GPS
diff --git a/docs/ko/dronecan/lights.md b/docs/ko/dronecan/lights.md
index f8cf3f9be8..c58433378a 100644
--- a/docs/ko/dronecan/lights.md
+++ b/docs/ko/dronecan/lights.md
@@ -42,7 +42,7 @@ Each function is represented by a value that defines two behaviours: one when th
| 6 | Status/Green | System status colour | 녹색 |
| 7 | Status/Off | System status colour | Off |
-참고:
+Notes:
- The [system status colours](../getting_started/led_meanings.md#ui-led) is the same LED pattern used by the flight controller's onboard status LED (e.g. red when disarmed, green when armed and ready).
- A fixed colour, commonly used to indicate aircraft orientation. For example it is a common convention to have a red light on the port side, green on starboard, or white to the rear.
diff --git a/docs/ko/esc/ark_4in1_esc.md b/docs/ko/esc/ark_4in1_esc.md
index 21ed5bd061..675b83d3f0 100644
--- a/docs/ko/esc/ark_4in1_esc.md
+++ b/docs/ko/esc/ark_4in1_esc.md
@@ -58,6 +58,18 @@ Other
- Open source AM32 firmware
- [DIU Blue Framework Listed](https://www.diu.mil/blue-uas/framework)
+## PX4 설정
+
+The ARK 4IN1 ESC supports DShot 300/600, Bidirectional DShot, and PWM input protocols.
+
+- **Bidirectional DShot**: Select BDShot300 or BDShot600 in the [Actuator Configuration](../config/actuators.md) to enable eRPM telemetry.
+- **[Extended DShot Telemetry (EDT)](https://github.com/bird-sanctuary/extended-dshot-telemetry)**: AM32 firmware supports EDT, which provides temperature, voltage, and current through the BDShot signal. Enable with `DSHOT_BIDIR_EDT=1`.
+- **AM32 EEPROM Settings**: Set `DSHOT_ESC_TYPE=1` to enable reading and writing ESC firmware settings via a ground station.
+
+See [DShot ESCs](../peripherals/dshot.md) for full setup details.
+
## See Also
- [ARK 4IN1 ESC CONS](https://docs.arkelectron.com/electronic-speed-controller/ark-4in1-esc) (ARK Docs)
+- [DShot and Bidirectional DShot](https://brushlesswhoop.com/dshot-and-bidirectional-dshot/) (brushlesswhoop.com - General DShot reference)
+- [Extended DShot Telemetry (EDT) Specification](https://github.com/bird-sanctuary/extended-dshot-telemetry) (bird-sanctuary)
diff --git a/docs/ko/flight_controller/autopilot_manufacturer_supported.md b/docs/ko/flight_controller/autopilot_manufacturer_supported.md
index fa563a4405..4aeb38ab1a 100644
--- a/docs/ko/flight_controller/autopilot_manufacturer_supported.md
+++ b/docs/ko/flight_controller/autopilot_manufacturer_supported.md
@@ -18,6 +18,7 @@ This category includes boards that are not fully compliant with the pixhawk stan
- [ARK Electronics ARKV6X](../flight_controller/ark_v6x.md) (and [ARK Electronics Pixhawk Autopilot Bus Carrier](../flight_controller/ark_pab.md))
- [ARK FPV Flight Controller](../flight_controller/ark_fpv.md)
- [ARK Pi6X Flow Flight Controller](../flight_controller/ark_pi6x.md)
+- [CORVON 743v1](../flight_controller/corvon_743v1.md)
- [CUAV Nora](../flight_controller/cuav_nora.md) (CUAV X7 variant)
- [CUAV V5+](../flight_controller/cuav_v5_plus.md) (FMUv5)
- [CUAV V5 nano](../flight_controller/cuav_v5_nano.md) (FMUv5)
diff --git a/docs/ko/flight_controller/corvon_743v1.md b/docs/ko/flight_controller/corvon_743v1.md
new file mode 100644
index 0000000000..b3a8333c02
--- /dev/null
+++ b/docs/ko/flight_controller/corvon_743v1.md
@@ -0,0 +1,112 @@
+# CORVON 743v1
+
+
+
+:::warning
+PX4 does not manufacture this (or any) autopilot. Contact the manufacturer for hardware support or compliance issues.
+:::
+
+The _CORVON 743v1_ is a flight controller designed by Feikong Technology Co., Ltd under the CORVON brand.
+It features a powerful STM32H743 processor, dual high-performance IMUs (BMI088/BMI270), and an extensive array of interfaces.
+
+With its highly integrated 36x36mm footprint and 9g weight, and specialized interfaces like a direct plug-and-play DJI O3 Air Unit connector, this flight controller is optimized for space-constrained FPV builds and agile multirotors that require top-tier processing power and sensor redundancy.
+
+The board uses [Pixhawk Autopilot Standard Connections](https://docs.px4.io/main/en/flight_controller/autopilot_pixhawk_standard.html).
+
+
+
+:::info
+This flight controller is [manufacturer supported](../flight_controller/autopilot_manufacturer_supported.md).
+:::
+
+## 주요 특징
+
+- **MCU:** STM32H743VIT6 MCU (32 Bit Arm® Cortex®-M7, 480MHz, 2MB Flash, 1MB RAM)
+- **IMU:** Bosch BMI088, BMI270 (Dual IMU redundancy)
+- **Barometer:** DPS310
+- **Magnetometer:** IST8310
+- **OSD:** Onboard AT7456E
+- **Interfaces:**
+ - 7x UARTs
+ - 1x CAN (UAVCAN)
+ - I2C 1개
+ - Dedicated RC Input (UART6)
+ - 10x PWM outputs (DShot & Bi-Directional DShot supported)
+ - Dedicated DJI O3 Air Unit connector
+- **Power:**
+ - 9V 3A BEC
+ - 5V 3A BEC
+ - ADC for battery voltage (up to 6S) and current monitoring
+
+## 구매처
+
+Order from [CORVON](https://corvon.tech).
+
+## Physical / Mechanical
+
+- **Mounting:** 30.5 x 30.5mm, Φ4mm
+- **Dimensions:** 36 x 36 x 8 mm
+- **Weight:** 9g
+
+## 사양
+
+### Processors & Sensors
+
+- **FMU Processor:** STM32H743
+ - 32 Bit Arm® Cortex®-M7, 480MHz
+ - 2MB Flash, 1MB RAM
+- **On-board Sensors:**
+ - Accel/Gyro: Bosch BMI088, BMI270
+ - Barometer: DPS310
+ - Compass: IST8310
+
+### Power Configuration
+
+The board has an internal voltage sensor and connections on the ESC connector for an external current sensor.
+
+- The voltage sensor handles up to 6S LiPo batteries.
+- Two onboard BECs provide robust peripheral power (9V 3A and 5V 3A).
+
+## Connectors & Pinouts
+
+The following image shows the port connection details, including RC, UARTs, CAN, I2C, SWD Debug, and VTX connections.
+
+
+
+### Standard Serial Port Mapping
+
+| UART | PX4 Target Config | Default Usage |
+| ------ | ----------------- | ------------- |
+| USART1 | TELEM1 | MAVLink |
+| UART4 | TELEM2 | MAVLink |
+| USART2 | GPS1 | GPS |
+| USART3 | TELEM3 | |
+| UART8 | URT6 | |
+| USART6 | RC | RC Input |
+| UART7 | TELEM4 | ESC Telemetry |
+
+### 디버그 포트
+
+The board features a **4-pin SWD Debug** interface located on the right side of the board. This includes `SWCLK`, `SWDIO`, `3V3`, and `GND` for full hardware debugging. While a dedicated UART isn't strictly reserved for the NSH console by default, the full-speed USB connection provides MAVLink Console access out of the box.
+
+### RC Input
+
+RC Input is mapped to **UART6** via the explicit `SBUS/CRSF` connector block.
+
+- It fully supports PX4's standard `RC_INPUT` module protocols.
+- The connector exposes both `RX6` and `TX6`, which makes it fully capable of bidirectional receiver protocols such as TBS Crossfire (CRSF), ELRS, and FPort, as well as traditional single-wire standards like SBUS (which operates inverted on RX6).
+
+## Building/Loading Firmware
+
+:::tip
+Most users will not need to build this firmware (from PX4 v1.18).
+It is pre-built and automatically installed by _QGroundControl_ when appropriate hardware is connected.
+:::
+
+To [build PX4](../dev_setup/building_px4.md) for this target from source:
+
+```sh
+make corvon_743v1_default
+```
+
+Initial firmware flashing can be done over USB via QGroundControl. The bootloader status aligns with standard generic PX4 LED indications (Red = Bootloader/Error, Blue = Active/Activity, Green = Powered).
diff --git a/docs/ko/flight_controller/cuav_pixhawk_v6x.md b/docs/ko/flight_controller/cuav_pixhawk_v6x.md
index 1dcf6982f0..773b68f95c 100644
--- a/docs/ko/flight_controller/cuav_pixhawk_v6x.md
+++ b/docs/ko/flight_controller/cuav_pixhawk_v6x.md
@@ -116,7 +116,7 @@ The [Pixhawk V6X Wiring Quick Start](../assembly/quick_start_cuav_pixhawk_v6x.md

-참고:
+Notes:
- The [camera capture pin](../camera/fc_connected_camera.md#camera-capture-configuration) (`PI0`) is pin 2 on the AD&IO port, marked above as `FMU_CAP1`.
diff --git a/docs/ko/flight_controller/nxp_mr_vmu_rt1176.md b/docs/ko/flight_controller/nxp_mr_vmu_rt1176.md
index be0780d383..5231cf1607 100644
--- a/docs/ko/flight_controller/nxp_mr_vmu_rt1176.md
+++ b/docs/ko/flight_controller/nxp_mr_vmu_rt1176.md
@@ -174,7 +174,7 @@ _MR-VMU-RT1176_ connectors (following [Pixhawk Connector Standard](https://githu
[NXP MR-VMU-RT1176 Baseboard Pinout](https://nxp.gitbook.io/vmu-rt1176/pin-out) (nxp.gitbook.io)
-참고:
+Notes:
- The [camera capture pin](../camera/fc_connected_camera.md#camera-capture-configuration) (`PI0`) is pin 2 on the AD&IO port, marked above as `FMU_CAP1`.
diff --git a/docs/ko/flight_controller/pixhawk6x-rt.md b/docs/ko/flight_controller/pixhawk6x-rt.md
index ecec065ef6..57a280b267 100644
--- a/docs/ko/flight_controller/pixhawk6x-rt.md
+++ b/docs/ko/flight_controller/pixhawk6x-rt.md
@@ -149,7 +149,7 @@ Sample Wiring Diagram
- [Holybro Pixhawk Baseboard Pinout](https://docs.holybro.com/autopilot/pixhawk-6x/pixhawk-baseboard-pinout)
- [Holybro Pixhawk Mini-Baseboard Pinout](https://docs.holybro.com/autopilot/pixhawk-6x/pixhawk-mini-baseboard-pinout)
-참고:
+Notes:
- The [camera capture pin](../camera/fc_connected_camera.md#camera-capture-configuration) (`PI0`) is pin 2 on the AD&IO port, marked above as `FMU_CAP1`.
diff --git a/docs/ko/flight_controller/pixhawk6x.md b/docs/ko/flight_controller/pixhawk6x.md
index 18f233c0bf..9639ae4ccc 100644
--- a/docs/ko/flight_controller/pixhawk6x.md
+++ b/docs/ko/flight_controller/pixhawk6x.md
@@ -180,7 +180,7 @@ Sample Wiring Diagram
- [Holybro Pixhawk Jetson Baseboard](https://docs.holybro.com/autopilot/pixhawk-baseboards/pixhawk-jetson-baseboard)
- [Holybro Pixhawk RPi CM4 Baseboard](https://docs.holybro.com/autopilot/pixhawk-baseboards/pixhawk-rpi-cm4-baseboard)
-참고:
+Notes:
- The [camera capture pin](../camera/fc_connected_camera.md#camera-capture-configuration) (`PI0`) is pin 2 on the AD&IO port, marked above as `FMU_CAP1`.
diff --git a/docs/ko/flight_controller/pixhawk6x_pro.md b/docs/ko/flight_controller/pixhawk6x_pro.md
index 0805e23601..acd5685fda 100644
--- a/docs/ko/flight_controller/pixhawk6x_pro.md
+++ b/docs/ko/flight_controller/pixhawk6x_pro.md
@@ -140,7 +140,7 @@ The [Pixhawk 6X Wiring Quick Start](../assembly/quick_start_pixhawk6x.md) provid
- [Holybro Pixhawk Jetson Baseboard](https://docs.holybro.com/autopilot/pixhawk-baseboards/pixhawk-jetson-baseboard)
- [Holybro Pixhawk RPi CM4 Baseboard](https://docs.holybro.com/autopilot/pixhawk-baseboards/pixhawk-rpi-cm4-baseboard)
-참고:
+Notes:
- The [camera capture pin](../camera/fc_connected_camera.md#camera-capture-configuration) (`PI0`) is pin 2 on the AD&IO port, marked above as `FMU_CAP1`.
diff --git a/docs/ko/flight_modes_mc/throw_launch.md b/docs/ko/flight_modes_mc/throw_launch.md
index 5b4a197bc7..315dccb474 100644
--- a/docs/ko/flight_modes_mc/throw_launch.md
+++ b/docs/ko/flight_modes_mc/throw_launch.md
@@ -22,7 +22,7 @@ The vehicle will not automatically disarm after arming, and must be manually dis
The vehicle detects that it has been thrown based on reaching a certain speed (5m/s), and then starts the motors at the apex of the throw (once it determines that it has started to fall).
You need to throw the vehicle high enough so that it can stabilize its height well before falling anywhere near people or obstacles.
-참고:
+Notes:
- The mode is disabled by default, and must be enabled using a [parameter](#parameters) before arming.
- When enabled you cannot take off from the ground using the normal modes.
diff --git a/docs/ko/flight_stack/controller_diagrams.md b/docs/ko/flight_stack/controller_diagrams.md
index d771e53410..97fc96f664 100644
--- a/docs/ko/flight_stack/controller_diagrams.md
+++ b/docs/ko/flight_stack/controller_diagrams.md
@@ -164,6 +164,42 @@ $$\dot{B} = \gamma - \frac{\dot{V_T}}{g}$$
## 고정익 자세 콘트롤러
+### Setpoint modificaiton
+
+Most fixed-wing aircraft cannot generate a sustained yaw rate using the rudder alone. As a result, the yaw component of the quaternion attitude error should be removed before computing the control action.
+
+This is achieved by premultiplying the setpoint quaternion with a rotation about the global down axis. The additional rotation cancels the yaw component of the attitude error while preserving the roll and pitch components.
+
+The yaw offset is
+
+$$
+\psi =-2\frac{\hat{q}_0 q_3 - \hat{q}_1 q_2 + \hat{q}_2 q_1 -\hat{q}_3 q_0}
+{\hat{q}_0 q_0 - \hat{q}_1 q_1 - \hat{q}_2 q_2 + \hat{q}_3 q_3}
+$$
+
+The quaternion representing the yaw offset is
+
+$$
+ℚ_{\text{yaw}} =
+\operatorname{normalize}
+\left(
+\begin{bmatrix}
+1 \
+0 \
+0 \
+\frac{\psi}{2}
+\end{bmatrix}
+\right)
+$$
+
+The corrected setpoint quaternion is then obtained by applying the rotation
+
+$$
+ℚ_{\text{sp, corrected}} = ℚ_{\text{yaw}} \otimes ℚ_{sp}
+$$
+
+### Quaternion based attitude controller
+

@@ -69,7 +69,7 @@ For further instructions on wiring and configurations please see:
3. The default parameters are often sufficient for stable flight. For more detailed tuning information see [Standard VTOL Wiring and Configuration](../config_vtol/vtol_quad_configuration.md).
-보정을 마치면 VTOL이 비행할 준비가 됩니다.
+After you finish calibration the VTOL is ready to fly.
## 비디오
diff --git a/docs/ko/frames_vtol/vtol_quadplane_volantex_ranger_ex_pixhawk.md b/docs/ko/frames_vtol/vtol_quadplane_volantex_ranger_ex_pixhawk.md
index 5b3cccaeaf..737fe88381 100644
--- a/docs/ko/frames_vtol/vtol_quadplane_volantex_ranger_ex_pixhawk.md
+++ b/docs/ko/frames_vtol/vtol_quadplane_volantex_ranger_ex_pixhawk.md
@@ -92,14 +92,14 @@ Pixhawk의 출력은 다음과 같이 연결되어야합니다 ( "평면에 앉
| 포트 | 연결 |
| ------ | ---------------------- |
| MAIN 1 | Front right motor, CCW |
-| MAIN 2 | 후방 촤즉 모터, 반시계 방향 |
-| MAIN 3 | 전방 좌측 모터, 시계방향 |
-| MAIN 4 | 후방 우측 모터, 시계 방향 |
-| AUX 1 | 좌측 보조익 |
-| AUX 2 | 우측 보조익 |
-| AUX 3 | 승강타 |
-| AUX 4 | 방향타 |
-| AUX 5 | 스로틀 |
+| MAIN 2 | Back left motor, CCW |
+| MAIN 3 | Front left motor, CW |
+| MAIN 4 | Back right motor, CW |
+| AUX 1 | Left aileron |
+| AUX 2 | Right aileron |
+| AUX 3 | Elevator |
+| AUX 4 | Rudder |
+| AUX 5 | Throttle |
:::info
The servo direction can be reversed using the PWM_REV parameters in the PWM_OUTPUT group of QGroundControl (cogwheel tab, last item in the left menu)
diff --git a/docs/ko/gps_compass/index.md b/docs/ko/gps_compass/index.md
index 15308c843a..93814a2be6 100644
--- a/docs/ko/gps_compass/index.md
+++ b/docs/ko/gps_compass/index.md
@@ -64,7 +64,7 @@ These have been tested by the PX4 dev team, or which are popular within the PX4
[Hb Micro M8N]: https://holybro.com/products/micro-m8n-gps
[CubePilot Here2]: ../gps_compass/gps_hex_here2.md
-참고:
+Notes:
- ✓ or a specific part number indicate that a features is supported, while ✘ or empty show that the feature is not supported.
"?"는 "알 수 없음"을 나타냅니다.
diff --git a/docs/ko/gps_compass/rtk_gps.md b/docs/ko/gps_compass/rtk_gps.md
index 8107f4ff1d..8eff243cad 100644
--- a/docs/ko/gps_compass/rtk_gps.md
+++ b/docs/ko/gps_compass/rtk_gps.md
@@ -75,7 +75,7 @@ It also highlights devices that connect via the CAN bus, and those which support
[mosaic-G5 P3H]: https://www.septentrio.com/en/products/gnss-receivers/gnss-receiver-modules/mosaic-G5-P3H
[D10P]: https://docs.datagnss.com/gnss/gnss_module/D10P_RTK
-참고:
+Notes:
- ✓ or a specific part number indicate that a features is supported, while ✘ or empty show that the feature is not supported.
"?"는 "알 수 없음"을 나타냅니다.
diff --git a/docs/ko/hardware/board_packaging.md b/docs/ko/hardware/board_packaging.md
new file mode 100644
index 0000000000..edd55148e9
--- /dev/null
+++ b/docs/ko/hardware/board_packaging.md
@@ -0,0 +1,298 @@
+# Board Firmware Packaging
+
+PX4 supports building distributable firmware packages for Linux-based (POSIX) boards.
+While NuttX boards produce `.px4` firmware files that are flashed via QGroundControl, POSIX boards can produce `.deb` (Debian) packages that are installed using standard Linux package management tools (`dpkg`, `apt`).
+
+This page covers how manufacturers can add `.deb` packaging to their boards, with examples for both single-processor and multi-processor architectures.
+
+## 개요
+
+The packaging framework uses [CMake CPack](https://cmake.org/cmake/help/latest/module/CPack.html) with the DEB generator.
+It is built on two extension points in the PX4 build system:
+
+- **`boards///cmake/package.cmake`**: CPack variable overrides (package name, version, dependencies, architecture, maintainer info). Loaded during CMake configure.
+- **`boards///cmake/install.cmake`**: `install()` rules that define what goes into the package (binaries, scripts, config files, service files). Loaded from `platforms/posix/CMakeLists.txt` where build targets are available.
+
+When a board provides these files, CI automatically discovers and builds the `_deb` target alongside the normal firmware build.
+
+## Build Command
+
+For any board with packaging support:
+
+```sh
+make __deb
+```
+
+예:
+
+```sh
+make modalai_voxl2_deb
+```
+
+This builds the `_default` configuration (and any companion builds for multi-processor boards), then runs `cpack -G DEB` in the build directory.
+The resulting `.deb` file is placed in `build/__default/`.
+
+## Adding Packaging to a Board
+
+### File Structure
+
+```
+boards///
+ cmake/
+ package.cmake # CPack configuration (required)
+ install.cmake # Install rules (required)
+ debian/
+ postinst # Post-install script (optional)
+ prerm # Pre-remove script (optional)
+ .service # Systemd unit file (optional)
+```
+
+### Step 1: CPack Configuration (package.cmake)
+
+This file sets CPack variables that control the `.deb` metadata.
+It is included from `cmake/package.cmake` after the base CPack defaults are configured.
+
+```cmake
+# boards///cmake/package.cmake
+
+# Derive Debian-compatible version from git tag
+# v1.17.0-alpha1-42-gabcdef -> 1.17.0~alpha1.42.gabcdef
+# v1.17.0 -> 1.17.0
+string(REGEX REPLACE "^v" "" _deb_ver "${PX4_GIT_TAG}")
+string(REGEX REPLACE "-" "~" _deb_ver "${_deb_ver}")
+string(REGEX REPLACE "~([0-9]+)~" ".\\1." _deb_ver "${_deb_ver}")
+
+# Target architecture (use the target arch, not the build host)
+set(CPACK_DEBIAN_ARCHITECTURE "arm64")
+
+# Package identity
+set(CPACK_DEBIAN_PACKAGE_NAME "my-px4-board")
+set(CPACK_DEBIAN_FILE_NAME "my-px4-board_${_deb_ver}_arm64.deb")
+
+# Install prefix
+set(CPACK_PACKAGING_INSTALL_PREFIX "/usr")
+set(CPACK_INSTALL_PREFIX "/usr")
+set(CPACK_SET_DESTDIR true)
+
+# Package metadata
+set(CPACK_DEBIAN_PACKAGE_DESCRIPTION "PX4 Autopilot for My Board")
+set(CPACK_DEBIAN_PACKAGE_MAINTAINER "Vendor ")
+set(CPACK_DEBIAN_PACKAGE_DEPENDS "some-dependency (>= 1.0)")
+set(CPACK_DEBIAN_PACKAGE_CONFLICTS "")
+set(CPACK_DEBIAN_PACKAGE_REPLACES "")
+
+# Disable shlibdeps for cross-compiled boards
+set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS OFF)
+
+# Include post-install and pre-remove scripts (optional)
+set(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA
+ "${PX4_BOARD_DIR}/debian/postinst;${PX4_BOARD_DIR}/debian/prerm")
+```
+
+**Key variables:**
+
+| 변수 | Purpose |
+| -------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `CPACK_DEBIAN_ARCHITECTURE` | Target architecture. Set explicitly for cross-compiled boards since `dpkg --print-architecture` reports the build host, not the target. |
+| `CPACK_DEBIAN_PACKAGE_NAME` | Package name as it appears in `dpkg -l`. |
+| `CPACK_DEBIAN_FILE_NAME` | Output `.deb` filename. |
+| `CPACK_DEBIAN_PACKAGE_DEPENDS` | Runtime dependencies (comma-separated, Debian format). |
+| `CPACK_DEBIAN_PACKAGE_SHLIBDEPS` | Set to `OFF` for cross-compiled boards where `dpkg-shlibdeps` cannot inspect target binaries. |
+
+### Step 2: Install Rules (install.cmake)
+
+This file defines what files are packaged in the `.deb`.
+It is included from `platforms/posix/CMakeLists.txt` where the `px4` build target is available.
+
+All paths are relative to `CPACK_PACKAGING_INSTALL_PREFIX` (typically `/usr`). Use `../` to install outside the prefix (e.g., `../etc/` installs to `/etc/`).
+
+**Minimal example (single-processor board):**
+
+```cmake
+# boards///cmake/install.cmake
+
+# PX4 binary
+install(TARGETS px4 RUNTIME DESTINATION bin)
+
+# Module alias script (generated during build)
+install(PROGRAMS ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/px4-alias.sh DESTINATION bin)
+
+# Startup scripts
+install(PROGRAMS
+ ${PX4_BOARD_DIR}/target/my-px4-start
+ DESTINATION bin
+)
+
+# Configuration files
+install(FILES
+ ${PX4_BOARD_DIR}/target/my-config.conf
+ DESTINATION ../etc/my-board
+)
+
+# Systemd service
+install(FILES ${PX4_BOARD_DIR}/debian/my-px4.service
+ DESTINATION ../etc/systemd/system
+)
+
+# Component metadata
+install(FILES
+ ${PX4_BINARY_DIR}/actuators.json.xz
+ ${PX4_BINARY_DIR}/parameters.json.xz
+ DESTINATION ../data/px4/etc/extras
+ OPTIONAL
+)
+install(FILES ${PX4_BINARY_DIR}/events/all_events.json.xz
+ DESTINATION ../data/px4/etc/extras
+ OPTIONAL
+)
+```
+
+### Step 3: Debian Scripts (optional)
+
+#### postinst
+
+Runs after the package is installed. Common tasks:
+
+- Create `px4-*` module symlinks from `px4-alias.sh`
+- Set up required directories with correct ownership
+- Run `systemctl daemon-reload` to pick up the service file
+- Board-specific setup (e.g., DSP signature generation)
+
+```bash
+#!/bin/bash
+set -e
+
+# Create px4-* symlinks
+if [ -f /usr/bin/px4-alias.sh ]; then
+ grep "^alias " /usr/bin/px4-alias.sh | \
+ sed "s/alias \(px4-[a-zA-Z0-9_]*\)=.*/\1/" | while read cmd; do
+ ln -sf px4 "/usr/bin/${cmd}"
+ done
+fi
+
+# Create data directories
+mkdir -p /data/px4/param
+mkdir -p /data/px4/etc/extras
+
+# Reload systemd
+if command -v systemctl > /dev/null 2>&1; then
+ systemctl daemon-reload
+fi
+```
+
+#### prerm
+
+Runs before the package is removed:
+
+```bash
+#!/bin/bash
+set -e
+
+# Stop the service
+if command -v systemctl > /dev/null 2>&1; then
+ systemctl stop my-px4 2>/dev/null || true
+fi
+
+# Remove px4-* symlinks
+for f in /usr/bin/px4-*; do
+ if [ -L "$f" ] && [ "$(readlink "$f")" = "px4" ]; then
+ rm -f "$f"
+ fi
+done
+```
+
+Both scripts must be executable (`chmod +x`).
+
+## Multi-Processor Boards
+
+Some boards run PX4 across multiple processors, for example the ModalAI VOXL2 which has a POSIX apps processor (ARM) and a Hexagon DSP (SLPI).
+These produce two separate CMake builds, but the `.deb` must contain artifacts from both.
+
+### How It Works
+
+1. The `_default` build (POSIX/apps processor) owns the `.deb`.
+2. The Makefile `%_deb` target builds `_default`, which chains any companion builds as CMake prerequisites.
+3. The `install.cmake` pulls companion build artifacts via absolute path to the sibling build directory.
+4. CPack runs in the `_default` build tree and produces a single `.deb`.
+
+### Companion Build Artifacts
+
+In `install.cmake`, reference the companion build output by absolute path:
+
+```cmake
+# DSP firmware blob from companion SLPI build
+set(SLPI_BUILD_DIR "${PX4_SOURCE_DIR}/build/_-slpi_default")
+
+install(FILES ${SLPI_BUILD_DIR}/platforms/qurt/libpx4.so
+ DESTINATION lib/rfsa/adsp
+ OPTIONAL
+)
+```
+
+The `OPTIONAL` keyword allows the `.deb` to build even when the companion build hasn't run (useful for development/testing of just the apps-processor side).
+
+### VOXL2 Reference
+
+The VOXL2 board is a complete working example of multi-processor packaging:
+
+```
+boards/modalai/voxl2/
+ cmake/
+ package.cmake # CPack config: voxl-px4, arm64, deps, shlibdeps off
+ install.cmake # px4 binary, SLPI libpx4.so, scripts, configs, metadata
+ debian/
+ postinst # Symlinks, DSP signature, directory setup
+ prerm # Stop service, remove symlinks
+ voxl-px4.service # Systemd unit (after sscrpcd, restart on-failure)
+ target/
+ voxl-px4 # Main startup wrapper
+ voxl-px4-start # PX4 module startup script
+```
+
+The resulting `.deb` installs:
+
+| Path | Contents |
+| -------------------------------------- | ------------------------------------------------- |
+| `/usr/bin/px4` | Apps processor PX4 binary |
+| `/usr/bin/px4-alias.sh` | Module alias script |
+| `/usr/bin/voxl-px4` | Startup wrapper |
+| `/usr/bin/voxl-px4-start` | Module startup script |
+| `/usr/lib/rfsa/adsp/libpx4.so` | DSP firmware (from SLPI build) |
+| `/etc/modalai/*.config` | Board configuration files |
+| `/etc/systemd/system/voxl-px4.service` | Systemd service |
+| `/data/px4/etc/extras/*.json.xz` | Component metadata |
+
+## CI Integration
+
+### Automatic Discovery
+
+The CI system (`Tools/ci/generate_board_targets_json.py`) automatically discovers boards with `cmake/package.cmake` and adds a `__deb` target to the board's existing CI group.
+No manual CI configuration is needed.
+
+### Artifact Collection
+
+The `Tools/ci/package_build_artifacts.sh` script collects `.deb` files alongside `.px4` and `.elf` artifacts.
+On tagged releases, `.deb` files are uploaded to both S3 and GitHub Releases.
+
+## Version Format
+
+The `.deb` version is derived from `PX4_GIT_TAG` using Debian-compatible formatting:
+
+| Git Tag | Debian Version | 참고 |
+| --------------------------- | -------------------------- | --------------------------------------------------------- |
+| `v1.17.0` | `1.17.0` | Stable release |
+| `v1.17.0-beta1` | `1.17.0~beta1` | Pre-release (`~` sorts before release) |
+| `v1.17.0-alpha1-42-gabcdef` | `1.17.0~alpha1.42.gabcdef` | Development build |
+
+The `~` prefix in Debian versioning ensures pre-releases sort lower than the final release: `1.17.0~beta1 < 1.17.0`.
+
+## Checklist for New Boards
+
+1. Create `boards///cmake/package.cmake` with CPack variables
+2. Create `boards///cmake/install.cmake` with install rules
+3. (Optional) Create `boards///debian/postinst` and `prerm`
+4. (Optional) Create `boards///debian/.service`
+5. Test locally: `make __deb`
+6. Verify: `dpkg-deb --info build/__default/_*.deb`
+7. Verify: `dpkg-deb --contents build/__default/_*.deb`
+8. CI picks it up automatically on the next push
diff --git a/docs/ko/mavlink/index.md b/docs/ko/mavlink/index.md
index 13548a31b7..b8030b913e 100644
--- a/docs/ko/mavlink/index.md
+++ b/docs/ko/mavlink/index.md
@@ -9,6 +9,7 @@ It also links instructions for how you can add PX4 support for:
- [Adding Standard Messages](../mavlink/adding_messages.md)
- [Streaming MAVLink messages](../mavlink/streaming_messages.md)
+- [Configuring/Using MAVLink Profiles](../mavlink/mavlink_profiles.md)
- [Handling incoming MAVLink messages (and writing to a uORB topic)](../mavlink/receiving_messages.md)
- [Custom MAVLink Messages](../mavlink/custom_messages.md)
- [Message Signing](../mavlink/message_signing.md)
diff --git a/docs/ko/mavlink/mavlink_profiles.md b/docs/ko/mavlink/mavlink_profiles.md
new file mode 100644
index 0000000000..c95608ef27
--- /dev/null
+++ b/docs/ko/mavlink/mavlink_profiles.md
@@ -0,0 +1,67 @@
+# MAVLink Profiles
+
+A MAVLink _profile_ (also called a _mode_) defines a set of messages that can be streamed by default on a MAVLink channel and their rates.
+
+This section lists the profiles, and explains how they can be used and extended.
+
+## Available Profiles
+
+The available profiles (in source-code declaration order) are:
+
+- _Normal_ (`MAVLINK_MODE_NORMAL`): Set of messages for a GCS.
+- _Onboard_ (`MAVLINK_MODE_ONBOARD`): Set of messages for a companion computer on a fast link (such as Ethernet).
+- _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.
+- _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.
+- _Iridium_ (`MAVLINK_MODE_IRIDIUM`): Streams `HIGH_LATENCY2` message to an iridium satellite phone.
+- _Minimal_ (`MAVLINK_MODE_MINIMAL`): Minimal set of messages for use with a GCS on a poor telemetry link.
+- _Onboard Low Bandwidth_ (`MAVLINK_MODE_ONBOARD_LOW_BANDWIDTH`): Set of messages to be streamed to a companion computer for re-routing to a reduced-traffic link, such as a GCS.
+- _Low Bandwidth_ (`MAVLINK_MODE_LOW_BANDWIDTH`): Reduced message set for low bandwidth links.
+- _uAvionix_ (`MAVLINK_MODE_UAVIONIX`): Messages for a uAvionix ADS-B beacon.
+- _Distance Sensor_ (`MAVLINK_MODE_DISTANCE_SENSOR`): Streams distance sensor data at unlimited rate.
+
+:::tip
+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).
+
+## Assigning Profiles to Ports
+
+[MAVLink Peripherals](../peripherals/mavlink_peripherals.md) explains how to set up a port for communicating over MAVLink.
+This uses the concept of an abstract [MAVLink instance](../peripherals/mavlink_peripherals.md#mavlink-instances) which is then assigned to a serial port.
+
+The profile associated with a particular MAVLink instance is set using the associated `MAV_X_MODE` parameter:
+
+- [MAV_0_MODE](../advanced_config/parameter_reference.md#MAV_0_MODE)
+- [MAV_1_MODE](../advanced_config/parameter_reference.md#MAV_1_MODE)
+- [MAV_2_MODE](../advanced_config/parameter_reference.md#MAV_2_MODE)
+
+There are also dedicated profile parameters for ports that are not configured via MAVLink instances:
+
+- [USB_MAV_MODE](../advanced_config/parameter_reference.md#USB_MAV_MODE): Profile for the USB port (used when MAVLink is set or detected on USB).
+- [MAV_S_MODE](../advanced_config/parameter_reference.md#MAV_S_MODE): Profile for the internal SOM (System on Module) to FMU communication channel, used on boards where the FMU and companion computer are co-located on the same module.
+
+Note that not all profiles can necessarily be set on these ports.
+
+## Adding Messages to a Profile
+
+You can add messages to a profile in appropriate `case` switch in the [Mavlink::configure_streams_to_default(const char \*configure_single_stream)](https://github.com/PX4/PX4-Autopilot/blob/main/src/modules/mavlink/mavlink_main.cpp#L1430) method (see [mavlink_main.cpp](https://github.com/PX4/PX4-Autopilot/blob/main/src/modules/mavlink/mavlink_main.cpp)).
+
+If you're testing with a GCS over USB you might add the message to the `MAVLINK_MODE_CONFIG` case using the `configure_stream_local()` method.
+For example, to stream `BATTERY_STATUS_DEMO` at 5 Hz:
+
+```cpp
+ case MAVLINK_MODE_CONFIG: // USB
+ // Note: streams requiring low latency come first
+ ...
+ configure_stream_local("BATTERY_STATUS_DEMO", 5.0f);
+ ...
+```
+
+See [Streaming MAVLink Messages](streaming_messages.md) for a more detailed example.
diff --git a/docs/ko/mavlink/streaming_messages.md b/docs/ko/mavlink/streaming_messages.md
index 44c74440b4..413c19217a 100644
--- a/docs/ko/mavlink/streaming_messages.md
+++ b/docs/ko/mavlink/streaming_messages.md
@@ -4,7 +4,7 @@ This tutorial demonstrates how to stream a uORB message as a MAVLink message, an
## 개요
-[MAVLink messages](../middleware/mavlink.md) are streamed using a streaming class, derived from `MavlinkStream`, that has been added to the PX4 stream list.
+[MAVLink messages](../middleware/mavlink.md) are streamed using a streaming class, derived from `MavlinkStream`, that has been added to the [PX4 stream list](#add-the-new-class-to-the-streaming-list).
The class has framework methods that you implement so PX4 can get information it needs from the generated MAVLink message definition.
It also has a `send()` method that is called each time the message needs to be sent — you override this to copy information from a uORB subscription to the MAVLink message object that is to be sent.
@@ -190,15 +190,17 @@ Most streaming classes are very similar (see examples in [/src/modules/mavlink/s
:::
-Next we include our new class in [mavlink_messages.cpp](https://github.com/PX4/PX4-Autopilot/blob/main/src/modules/mavlink/mavlink_messages.cpp#L2193).
-Add the line below to the part of the file where all the other streams are included:
+### Add the new class to the streaming list
+
+Next we add our new class to the streaming list.
+
+First open [mavlink_messages.cpp](https://github.com/PX4/PX4-Autopilot/blob/main/src/modules/mavlink/mavlink_messages.cpp#L2193) and add the line below to the part of the file where all the other streams are included:
```cpp
#include "streams/BATTERY_STATUS_DEMO.hpp"
```
-Finally append the stream class to the `streams_list` at the bottom of
-[mavlink_messages.cpp](https://github.com/PX4/PX4-Autopilot/blob/main/src/modules/mavlink/mavlink_messages.cpp)
+Then append the stream class to the `streams_list` at the bottom of [mavlink_messages.cpp](https://github.com/PX4/PX4-Autopilot/blob/main/src/modules/mavlink/mavlink_messages.cpp)
```C
StreamListItem *streams_list[] = {
@@ -215,25 +217,12 @@ We cover that in the next sections.
## Streaming by Default
-The easiest way to stream your messages by default (as part of a build) is to add them to [mavlink_main.cpp](https://github.com/PX4/PX4-Autopilot/blob/main/src/modules/mavlink/mavlink_main.cpp) in the appropriate message group.
+The easiest way to stream your messages by default (as part of a build) is to add them to appropriate [MAVLink Profile](../mavlink/mavlink_profiles.md), such as `MAVLINK_MODE_NORMAL` if you're streaming to a GCS over WiFI, or `MAVLINK_MODE_OSD` for an OSD device.
-If you search in the file you'll find groups of messages defined in a switch statement:
+This is covered in [Adding Messages to a Profile](..//mavlink/mavlink_profiles.md#adding-messages-to-a-profile), but in summary you first open [mavlink_main.cpp](https://github.com/PX4/PX4-Autopilot/blob/main/src/modules/mavlink/mavlink_main.cpp), search for the method `Mavlink::configure_streams_to_default`, and then find the profile that you wish to update.
-- `MAVLINK_MODE_NORMAL`: Streamed to a GCS.
-- `MAVLINK_MODE_ONBOARD`: Streamed to a companion computer on a fast link, such as Ethernet
-- `MAVLINK_MODE_ONBOARD_LOW_BANDWIDTH`: Streamed to a companion computer for re-routing to a reduced-traffic link, such as a GCS.
-- `MAVLINK_MODE_GIMBAL`: Streamed to a gimbal
-- `MAVLINK_MODE_EXTVISION`: Streamed to an external vision system
-- `MAVLINK_MODE_EXTVISIONMIN`: Streamed to an external vision system on a slower link
-- `MAVLINK_MODE_OSD`: Streamed to an OSD, such as an FPV headset.
-- `MAVLINK_MODE_CUSTOM`: Stream nothing by default. Used when configuring streaming using MAVLink.
-- `MAVLINK_MODE_MAGIC`: Same as `MAVLINK_MODE_CUSTOM`
-- `MAVLINK_MODE_CONFIG`: Streaming over USB with higher rates than `MAVLINK_MODE_NORMAL`.
-- `MAVLINK_MODE_MINIMAL`: Stream a minimal set of messages. Normally used for poor telemetry links.
-- `MAVLINK_MODE_IRIDIUM`: Streamed to an iridium satellite phone
-
-Normally you'll be testing on a GCS, so you could just add the message to the `MAVLINK_MODE_NORMAL` case using the `configure_stream_local()` method.
-For example, to stream CA_TRAJECTORY at 5 Hz:
+If you're just testing on a GCS, you could add the message to the `MAVLINK_MODE_NORMAL` case using the `configure_stream_local()` method.
+For example, to stream `BATTERY_STATUS_DEMO` at 5 Hz:
```cpp
case MAVLINK_MODE_CONFIG: // USB
diff --git a/docs/ko/middleware/dds_topics.md b/docs/ko/middleware/dds_topics.md
index 7707cffb56..0595b898ce 100644
--- a/docs/ko/middleware/dds_topics.md
+++ b/docs/ko/middleware/dds_topics.md
@@ -96,203 +96,205 @@ They are not build into the module, and hence are neither published or subscribe
:::details
See messages
-- [FigureEightStatus](../msg_docs/FigureEightStatus.md)
+- [AdcReport](../msg_docs/AdcReport.md)
+- [ManualControlSwitches](../msg_docs/ManualControlSwitches.md)
+- [MountOrientation](../msg_docs/MountOrientation.md)
+- [AutotuneAttitudeControlStatus](../msg_docs/AutotuneAttitudeControlStatus.md)
+- [EstimatorEventFlags](../msg_docs/EstimatorEventFlags.md)
+- [InternalCombustionEngineStatus](../msg_docs/InternalCombustionEngineStatus.md)
- [VehicleGlobalPositionV0](../msg_docs/VehicleGlobalPositionV0.md)
-- [RoverRateStatus](../msg_docs/RoverRateStatus.md)
+- [ActuatorControlsStatus](../msg_docs/ActuatorControlsStatus.md)
+- [GpsDump](../msg_docs/GpsDump.md)
+- [FlightPhaseEstimation](../msg_docs/FlightPhaseEstimation.md)
+- [ActuatorArmed](../msg_docs/ActuatorArmed.md)
+- [EstimatorStates](../msg_docs/EstimatorStates.md)
+- [EscStatus](../msg_docs/EscStatus.md)
+- [SensorGnssRelative](../msg_docs/SensorGnssRelative.md)
+- [SensorTemp](../msg_docs/SensorTemp.md)
+- [VehicleImu](../msg_docs/VehicleImu.md)
+- [IridiumsbdStatus](../msg_docs/IridiumsbdStatus.md)
+- [LandingGearWheel](../msg_docs/LandingGearWheel.md)
+- [OrbitStatus](../msg_docs/OrbitStatus.md)
+- [GainCompression](../msg_docs/GainCompression.md)
+- [VehicleRoi](../msg_docs/VehicleRoi.md)
+- [Vtx](../msg_docs/Vtx.md)
+- [Px4ioStatus](../msg_docs/Px4ioStatus.md)
+- [EscEepromRead](../msg_docs/EscEepromRead.md)
+- [DebugArray](../msg_docs/DebugArray.md)
+- [FollowTarget](../msg_docs/FollowTarget.md)
- [ButtonEvent](../msg_docs/ButtonEvent.md)
- [ArmingCheckReplyV0](../msg_docs/ArmingCheckReplyV0.md)
-- [GpsInjectData](../msg_docs/GpsInjectData.md)
-- [SensorTemp](../msg_docs/SensorTemp.md)
-- [UavcanParameterValue](../msg_docs/UavcanParameterValue.md)
-- [SensorUwb](../msg_docs/SensorUwb.md)
-- [GpioRequest](../msg_docs/GpioRequest.md)
-- [OrbTestLarge](../msg_docs/OrbTestLarge.md)
-- [VehicleRoi](../msg_docs/VehicleRoi.md)
-- [EstimatorBias3d](../msg_docs/EstimatorBias3d.md)
-- [OrbTest](../msg_docs/OrbTest.md)
-- [GimbalManagerStatus](../msg_docs/GimbalManagerStatus.md)
-- [VehicleLocalPositionSetpoint](../msg_docs/VehicleLocalPositionSetpoint.md)
-- [WheelEncoders](../msg_docs/WheelEncoders.md)
-- [EstimatorAidSource2d](../msg_docs/EstimatorAidSource2d.md)
-- [DistanceSensorModeChangeRequest](../msg_docs/DistanceSensorModeChangeRequest.md)
-- [EstimatorSensorBias](../msg_docs/EstimatorSensorBias.md)
-- [ActuatorTest](../msg_docs/ActuatorTest.md)
-- [FailureDetectorStatus](../msg_docs/FailureDetectorStatus.md)
-- [VehicleAcceleration](../msg_docs/VehicleAcceleration.md)
-- [Mission](../msg_docs/Mission.md)
-- [EventV0](../msg_docs/EventV0.md)
-- [LaunchDetectionStatus](../msg_docs/LaunchDetectionStatus.md)
-- [PwmInput](../msg_docs/PwmInput.md)
-- [OpenDroneIdSelfId](../msg_docs/OpenDroneIdSelfId.md)
-- [TuneControl](../msg_docs/TuneControl.md)
-- [CameraStatus](../msg_docs/CameraStatus.md)
-- [TiltrotorExtraControls](../msg_docs/TiltrotorExtraControls.md)
-- [AutotuneAttitudeControlStatus](../msg_docs/AutotuneAttitudeControlStatus.md)
-- [SystemPower](../msg_docs/SystemPower.md)
-- [VehicleOpticalFlow](../msg_docs/VehicleOpticalFlow.md)
-- [VehicleConstraints](../msg_docs/VehicleConstraints.md)
-- [SensorGyroFft](../msg_docs/SensorGyroFft.md)
-- [VehicleMagnetometer](../msg_docs/VehicleMagnetometer.md)
-- [SensorPreflightMag](../msg_docs/SensorPreflightMag.md)
-- [HealthReport](../msg_docs/HealthReport.md)
-- [DebugKeyValue](../msg_docs/DebugKeyValue.md)
-- [ArmingCheckRequestV0](../msg_docs/ArmingCheckRequestV0.md)
-- [ActuatorServosTrim](../msg_docs/ActuatorServosTrim.md)
-- [EstimatorEventFlags](../msg_docs/EstimatorEventFlags.md)
-- [FollowTarget](../msg_docs/FollowTarget.md)
-- [DebugVect](../msg_docs/DebugVect.md)
-- [NavigatorStatus](../msg_docs/NavigatorStatus.md)
-- [DatamanRequest](../msg_docs/DatamanRequest.md)
-- [Vtx](../msg_docs/Vtx.md)
-- [RcParameterMap](../msg_docs/RcParameterMap.md)
-- [DifferentialPressure](../msg_docs/DifferentialPressure.md)
-- [QshellReq](../msg_docs/QshellReq.md)
-- [CameraTrigger](../msg_docs/CameraTrigger.md)
-- [LandingTargetInnovations](../msg_docs/LandingTargetInnovations.md)
-- [DatamanResponse](../msg_docs/DatamanResponse.md)
-- [HeaterStatus](../msg_docs/HeaterStatus.md)
-- [AdcReport](../msg_docs/AdcReport.md)
-- [GeofenceResult](../msg_docs/GeofenceResult.md)
-- [GimbalControls](../msg_docs/GimbalControls.md)
-- [SensorBaro](../msg_docs/SensorBaro.md)
-- [EstimatorGpsStatus](../msg_docs/EstimatorGpsStatus.md)
-- [RaptorStatus](../msg_docs/RaptorStatus.md)
-- [LedControl](../msg_docs/LedControl.md)
-- [CanInterfaceStatus](../msg_docs/CanInterfaceStatus.md)
-- [VehicleOpticalFlowVel](../msg_docs/VehicleOpticalFlowVel.md)
-- [IrlockReport](../msg_docs/IrlockReport.md)
-- [RadioStatus](../msg_docs/RadioStatus.md)
-- [FixedWingLateralGuidanceStatus](../msg_docs/FixedWingLateralGuidanceStatus.md)
-- [Airspeed](../msg_docs/Airspeed.md)
-- [DeviceInformation](../msg_docs/DeviceInformation.md)
-- [Px4ioStatus](../msg_docs/Px4ioStatus.md)
-- [PositionControllerLandingStatus](../msg_docs/PositionControllerLandingStatus.md)
-- [MagWorkerData](../msg_docs/MagWorkerData.md)
-- [MagnetometerBiasEstimate](../msg_docs/MagnetometerBiasEstimate.md)
-- [OpenDroneIdOperatorId](../msg_docs/OpenDroneIdOperatorId.md)
-- [PowerMonitor](../msg_docs/PowerMonitor.md)
-- [RcChannels](../msg_docs/RcChannels.md)
-- [GimbalManagerInformation](../msg_docs/GimbalManagerInformation.md)
-- [Rpm](../msg_docs/Rpm.md)
-- [VehicleImu](../msg_docs/VehicleImu.md)
-- [Gripper](../msg_docs/Gripper.md)
-- [VehicleLocalPositionV0](../msg_docs/VehicleLocalPositionV0.md)
-- [ParameterSetValueResponse](../msg_docs/ParameterSetValueResponse.md)
-- [PowerButtonState](../msg_docs/PowerButtonState.md)
-- [Ping](../msg_docs/Ping.md)
-- [TakeoffStatus](../msg_docs/TakeoffStatus.md)
-- [UavcanParameterRequest](../msg_docs/UavcanParameterRequest.md)
-- [GeneratorStatus](../msg_docs/GeneratorStatus.md)
-- [FixedWingRunwayControl](../msg_docs/FixedWingRunwayControl.md)
-- [ConfigOverridesV0](../msg_docs/ConfigOverridesV0.md)
-- [VehicleImuStatus](../msg_docs/VehicleImuStatus.md)
-- [VehicleStatusV0](../msg_docs/VehicleStatusV0.md)
-- [GimbalManagerSetAttitude](../msg_docs/GimbalManagerSetAttitude.md)
-- [OrbTestMedium](../msg_docs/OrbTestMedium.md)
-- [FollowTargetStatus](../msg_docs/FollowTargetStatus.md)
-- [DebugArray](../msg_docs/DebugArray.md)
-- [IridiumsbdStatus](../msg_docs/IridiumsbdStatus.md)
-- [BatteryStatusV0](../msg_docs/BatteryStatusV0.md)
-- [SatelliteInfo](../msg_docs/SatelliteInfo.md)
-- [RaptorInput](../msg_docs/RaptorInput.md)
-- [NeuralControl](../msg_docs/NeuralControl.md)
-- [VehicleCommandAckV0](../msg_docs/VehicleCommandAckV0.md)
-- [OpenDroneIdSystem](../msg_docs/OpenDroneIdSystem.md)
-- [VehicleAirData](../msg_docs/VehicleAirData.md)
-- [SensorGyro](../msg_docs/SensorGyro.md)
-- [GainCompression](../msg_docs/GainCompression.md)
-- [EscStatus](../msg_docs/EscStatus.md)
-- [ParameterUpdate](../msg_docs/ParameterUpdate.md)
-- [LogMessage](../msg_docs/LogMessage.md)
-- [RtlStatus](../msg_docs/RtlStatus.md)
-- [SensorAirflow](../msg_docs/SensorAirflow.md)
-- [GeofenceStatus](../msg_docs/GeofenceStatus.md)
-- [RateCtrlStatus](../msg_docs/RateCtrlStatus.md)
-- [GpsDump](../msg_docs/GpsDump.md)
-- [ActuatorControlsStatus](../msg_docs/ActuatorControlsStatus.md)
-- [ParameterSetValueRequest](../msg_docs/ParameterSetValueRequest.md)
-- [SensorMag](../msg_docs/SensorMag.md)
-- [LandingTargetPose](../msg_docs/LandingTargetPose.md)
-- [SensorGnssRelative](../msg_docs/SensorGnssRelative.md)
-- [YawEstimatorStatus](../msg_docs/YawEstimatorStatus.md)
-- [ParameterSetUsedRequest](../msg_docs/ParameterSetUsedRequest.md)
-- [RtlTimeEstimate](../msg_docs/RtlTimeEstimate.md)
-- [AirspeedWind](../msg_docs/AirspeedWind.md)
-- [NormalizedUnsignedSetpoint](../msg_docs/NormalizedUnsignedSetpoint.md)
-- [VehicleStatusV1](../msg_docs/VehicleStatusV1.md)
-- [FollowTargetEstimator](../msg_docs/FollowTargetEstimator.md)
-- [MountOrientation](../msg_docs/MountOrientation.md)
-- [ActionRequest](../msg_docs/ActionRequest.md)
-- [TrajectorySetpoint6dof](../msg_docs/TrajectorySetpoint6dof.md)
-- [TecsStatus](../msg_docs/TecsStatus.md)
-- [UlogStream](../msg_docs/UlogStream.md)
-- [RoverAttitudeStatus](../msg_docs/RoverAttitudeStatus.md)
-- [EscReport](../msg_docs/EscReport.md)
-- [DronecanNodeStatus](../msg_docs/DronecanNodeStatus.md)
-- [GimbalDeviceSetAttitude](../msg_docs/GimbalDeviceSetAttitude.md)
-- [SensorHygrometer](../msg_docs/SensorHygrometer.md)
-- [LandingGearWheel](../msg_docs/LandingGearWheel.md)
-- [SensorsStatusImu](../msg_docs/SensorsStatusImu.md)
-- [EstimatorInnovations](../msg_docs/EstimatorInnovations.md)
-- [MavlinkTunnel](../msg_docs/MavlinkTunnel.md)
-- [FuelTankStatus](../msg_docs/FuelTankStatus.md)
-- [TaskStackInfo](../msg_docs/TaskStackInfo.md)
-- [ActuatorArmed](../msg_docs/ActuatorArmed.md)
-- [HomePositionV0](../msg_docs/HomePositionV0.md)
-- [ControlAllocatorStatus](../msg_docs/ControlAllocatorStatus.md)
-- [Cpuload](../msg_docs/Cpuload.md)
-- [FixedWingLateralStatus](../msg_docs/FixedWingLateralStatus.md)
-- [InputRc](../msg_docs/InputRc.md)
-- [GpioConfig](../msg_docs/GpioConfig.md)
-- [RegisterExtComponentRequestV0](../msg_docs/RegisterExtComponentRequestV0.md)
-- [Ekf2Timestamps](../msg_docs/Ekf2Timestamps.md)
-- [GimbalDeviceInformation](../msg_docs/GimbalDeviceInformation.md)
-- [FlightPhaseEstimation](../msg_docs/FlightPhaseEstimation.md)
-- [InternalCombustionEngineControl](../msg_docs/InternalCombustionEngineControl.md)
-- [SensorGnssStatus](../msg_docs/SensorGnssStatus.md)
-- [ParameterResetRequest](../msg_docs/ParameterResetRequest.md)
-- [CameraCapture](../msg_docs/CameraCapture.md)
-- [MavlinkLog](../msg_docs/MavlinkLog.md)
-- [PositionControllerStatus](../msg_docs/PositionControllerStatus.md)
-- [SensorsStatus](../msg_docs/SensorsStatus.md)
-- [VehicleAngularVelocity](../msg_docs/VehicleAngularVelocity.md)
-- [RegisterExtComponentReplyV0](../msg_docs/RegisterExtComponentReplyV0.md)
-- [EstimatorStatus](../msg_docs/EstimatorStatus.md)
-- [EstimatorAidSource1d](../msg_docs/EstimatorAidSource1d.md)
-- [SensorGyroFifo](../msg_docs/SensorGyroFifo.md)
-- [EstimatorAidSource3d](../msg_docs/EstimatorAidSource3d.md)
-- [ManualControlSwitches](../msg_docs/ManualControlSwitches.md)
-- [GimbalManagerSetManualControl](../msg_docs/GimbalManagerSetManualControl.md)
-- [SensorCorrection](../msg_docs/SensorCorrection.md)
-- [AirspeedValidatedV0](../msg_docs/AirspeedValidatedV0.md)
-- [OrbitStatus](../msg_docs/OrbitStatus.md)
-- [GpioOut](../msg_docs/GpioOut.md)
-- [GpioIn](../msg_docs/GpioIn.md)
-- [DebugValue](../msg_docs/DebugValue.md)
-- [PositionSetpoint](../msg_docs/PositionSetpoint.md)
-- [PurePursuitStatus](../msg_docs/PurePursuitStatus.md)
-- [SensorAccelFifo](../msg_docs/SensorAccelFifo.md)
-- [EstimatorSelectorStatus](../msg_docs/EstimatorSelectorStatus.md)
-- [SensorSelection](../msg_docs/SensorSelection.md)
-- [LoggerStatus](../msg_docs/LoggerStatus.md)
-- [EstimatorBias](../msg_docs/EstimatorBias.md)
-- [BatteryInfo](../msg_docs/BatteryInfo.md)
-- [EstimatorStates](../msg_docs/EstimatorStates.md)
- [VehicleAttitudeSetpointV0](../msg_docs/VehicleAttitudeSetpointV0.md)
-- [UlogStreamAck](../msg_docs/UlogStreamAck.md)
-- [CellularStatus](../msg_docs/CellularStatus.md)
-- [RoverSpeedStatus](../msg_docs/RoverSpeedStatus.md)
+- [GimbalDeviceInformation](../msg_docs/GimbalDeviceInformation.md)
+- [CanInterfaceStatus](../msg_docs/CanInterfaceStatus.md)
+- [MavlinkLog](../msg_docs/MavlinkLog.md)
+- [PowerMonitor](../msg_docs/PowerMonitor.md)
+- [TecsStatus](../msg_docs/TecsStatus.md)
+- [OpenDroneIdSelfId](../msg_docs/OpenDroneIdSelfId.md)
- [SensorAccel](../msg_docs/SensorAccel.md)
-- [InternalCombustionEngineStatus](../msg_docs/InternalCombustionEngineStatus.md)
-- [PpsCapture](../msg_docs/PpsCapture.md)
-- [VehicleAngularAccelerationSetpoint](../msg_docs/VehicleAngularAccelerationSetpoint.md)
-- [VelocityLimits](../msg_docs/VelocityLimits.md)
-- [Event](../msg_docs/Event.md)
-- [OpenDroneIdArmStatus](../msg_docs/OpenDroneIdArmStatus.md)
-- [QshellRetval](../msg_docs/QshellRetval.md)
+- [RaptorStatus](../msg_docs/RaptorStatus.md)
+- [VehicleStatusV1](../msg_docs/VehicleStatusV1.md)
+- [SensorAccelFifo](../msg_docs/SensorAccelFifo.md)
+- [CameraStatus](../msg_docs/CameraStatus.md)
+- [RcParameterMap](../msg_docs/RcParameterMap.md)
+- [UavcanParameterValue](../msg_docs/UavcanParameterValue.md)
+- [DifferentialPressure](../msg_docs/DifferentialPressure.md)
+- [SensorHygrometer](../msg_docs/SensorHygrometer.md)
+- [BatteryStatusV0](../msg_docs/BatteryStatusV0.md)
+- [CameraTrigger](../msg_docs/CameraTrigger.md)
+- [HomePositionV0](../msg_docs/HomePositionV0.md)
+- [GeneratorStatus](../msg_docs/GeneratorStatus.md)
+- [TiltrotorExtraControls](../msg_docs/TiltrotorExtraControls.md)
+- [GimbalManagerSetManualControl](../msg_docs/GimbalManagerSetManualControl.md)
+- [EstimatorAidSource3d](../msg_docs/EstimatorAidSource3d.md)
+- [PwmInput](../msg_docs/PwmInput.md)
+- [MagnetometerBiasEstimate](../msg_docs/MagnetometerBiasEstimate.md)
+- [SensorGyroFifo](../msg_docs/SensorGyroFifo.md)
+- [OrbTestMedium](../msg_docs/OrbTestMedium.md)
+- [NormalizedUnsignedSetpoint](../msg_docs/NormalizedUnsignedSetpoint.md)
+- [SensorsStatusImu](../msg_docs/SensorsStatusImu.md)
+- [GpsInjectData](../msg_docs/GpsInjectData.md)
+- [FollowTargetEstimator](../msg_docs/FollowTargetEstimator.md)
+- [EstimatorAidSource2d](../msg_docs/EstimatorAidSource2d.md)
- [MissionResult](../msg_docs/MissionResult.md)
-- [ActuatorOutputs](../msg_docs/ActuatorOutputs.md)
+- [VehicleImuStatus](../msg_docs/VehicleImuStatus.md)
+- [VehicleLocalPositionV0](../msg_docs/VehicleLocalPositionV0.md)
+- [InputRc](../msg_docs/InputRc.md)
+- [LandingTargetPose](../msg_docs/LandingTargetPose.md)
+- [VehicleAngularAccelerationSetpoint](../msg_docs/VehicleAngularAccelerationSetpoint.md)
- [NavigatorMissionItem](../msg_docs/NavigatorMissionItem.md)
+- [LoggerStatus](../msg_docs/LoggerStatus.md)
+- [OpenDroneIdOperatorId](../msg_docs/OpenDroneIdOperatorId.md)
+- [ActuatorServosTrim](../msg_docs/ActuatorServosTrim.md)
+- [RaptorInput](../msg_docs/RaptorInput.md)
+- [OpenDroneIdSystem](../msg_docs/OpenDroneIdSystem.md)
+- [ActuatorTest](../msg_docs/ActuatorTest.md)
+- [RegisterExtComponentRequestV0](../msg_docs/RegisterExtComponentRequestV0.md)
+- [EstimatorSensorBias](../msg_docs/EstimatorSensorBias.md)
+- [SensorGnssStatus](../msg_docs/SensorGnssStatus.md)
+- [VehicleStatusV0](../msg_docs/VehicleStatusV0.md)
+- [GimbalDeviceSetAttitude](../msg_docs/GimbalDeviceSetAttitude.md)
+- [ConfigOverridesV0](../msg_docs/ConfigOverridesV0.md)
+- [UavcanParameterRequest](../msg_docs/UavcanParameterRequest.md)
+- [SatelliteInfo](../msg_docs/SatelliteInfo.md)
+- [SystemPower](../msg_docs/SystemPower.md)
+- [ParameterUpdate](../msg_docs/ParameterUpdate.md)
+- [LaunchDetectionStatus](../msg_docs/LaunchDetectionStatus.md)
+- [RadioStatus](../msg_docs/RadioStatus.md)
+- [QshellRetval](../msg_docs/QshellRetval.md)
+- [PositionSetpoint](../msg_docs/PositionSetpoint.md)
+- [Gripper](../msg_docs/Gripper.md)
+- [EscReport](../msg_docs/EscReport.md)
+- [DebugKeyValue](../msg_docs/DebugKeyValue.md)
+- [SensorGyroFft](../msg_docs/SensorGyroFft.md)
+- [TaskStackInfo](../msg_docs/TaskStackInfo.md)
+- [VehicleOpticalFlow](../msg_docs/VehicleOpticalFlow.md)
+- [BatteryInfo](../msg_docs/BatteryInfo.md)
+- [ParameterSetValueRequest](../msg_docs/ParameterSetValueRequest.md)
+- [PositionControllerStatus](../msg_docs/PositionControllerStatus.md)
+- [GeofenceResult](../msg_docs/GeofenceResult.md)
+- [DistanceSensorModeChangeRequest](../msg_docs/DistanceSensorModeChangeRequest.md)
+- [EstimatorStatus](../msg_docs/EstimatorStatus.md)
+- [ArmingCheckRequestV0](../msg_docs/ArmingCheckRequestV0.md)
+- [EstimatorInnovations](../msg_docs/EstimatorInnovations.md)
+- [QshellReq](../msg_docs/QshellReq.md)
+- [VehicleAcceleration](../msg_docs/VehicleAcceleration.md)
+- [RoverAttitudeStatus](../msg_docs/RoverAttitudeStatus.md)
+- [DatamanRequest](../msg_docs/DatamanRequest.md)
+- [GeofenceStatus](../msg_docs/GeofenceStatus.md)
+- [FuelTankStatus](../msg_docs/FuelTankStatus.md)
+- [DebugValue](../msg_docs/DebugValue.md)
+- [WheelEncoders](../msg_docs/WheelEncoders.md)
+- [EstimatorBias](../msg_docs/EstimatorBias.md)
+- [VelocityLimits](../msg_docs/VelocityLimits.md)
+- [LandingTargetInnovations](../msg_docs/LandingTargetInnovations.md)
+- [GimbalManagerSetAttitude](../msg_docs/GimbalManagerSetAttitude.md)
+- [InternalCombustionEngineControl](../msg_docs/InternalCombustionEngineControl.md)
+- [TrajectorySetpoint6dof](../msg_docs/TrajectorySetpoint6dof.md)
+- [AirspeedWind](../msg_docs/AirspeedWind.md)
+- [VehicleOpticalFlowVel](../msg_docs/VehicleOpticalFlowVel.md)
- [HoverThrustEstimate](../msg_docs/HoverThrustEstimate.md)
+- [SensorCorrection](../msg_docs/SensorCorrection.md)
+- [SensorsStatus](../msg_docs/SensorsStatus.md)
+- [EstimatorGpsStatus](../msg_docs/EstimatorGpsStatus.md)
+- [FixedWingLateralStatus](../msg_docs/FixedWingLateralStatus.md)
+- [YawEstimatorStatus](../msg_docs/YawEstimatorStatus.md)
+- [GimbalManagerInformation](../msg_docs/GimbalManagerInformation.md)
+- [GpioRequest](../msg_docs/GpioRequest.md)
+- [SensorSelection](../msg_docs/SensorSelection.md)
+- [SensorUwb](../msg_docs/SensorUwb.md)
+- [Ekf2Timestamps](../msg_docs/Ekf2Timestamps.md)
+- [HealthReport](../msg_docs/HealthReport.md)
+- [NavigatorStatus](../msg_docs/NavigatorStatus.md)
+- [PositionControllerLandingStatus](../msg_docs/PositionControllerLandingStatus.md)
+- [LedControl](../msg_docs/LedControl.md)
+- [Event](../msg_docs/Event.md)
+- [SensorMag](../msg_docs/SensorMag.md)
+- [VehicleMagnetometer](../msg_docs/VehicleMagnetometer.md)
+- [Rpm](../msg_docs/Rpm.md)
+- [VehicleLocalPositionSetpoint](../msg_docs/VehicleLocalPositionSetpoint.md)
+- [EscEepromWrite](../msg_docs/EscEepromWrite.md)
+- [ControlAllocatorStatus](../msg_docs/ControlAllocatorStatus.md)
+- [AirspeedValidatedV0](../msg_docs/AirspeedValidatedV0.md)
+- [ActionRequest](../msg_docs/ActionRequest.md)
+- [MavlinkTunnel](../msg_docs/MavlinkTunnel.md)
+- [TakeoffStatus](../msg_docs/TakeoffStatus.md)
+- [PowerButtonState](../msg_docs/PowerButtonState.md)
+- [EstimatorSelectorStatus](../msg_docs/EstimatorSelectorStatus.md)
+- [PurePursuitStatus](../msg_docs/PurePursuitStatus.md)
+- [RtlStatus](../msg_docs/RtlStatus.md)
+- [Airspeed](../msg_docs/Airspeed.md)
+- [VehicleCommandAckV0](../msg_docs/VehicleCommandAckV0.md)
+- [GimbalControls](../msg_docs/GimbalControls.md)
+- [FixedWingRunwayControl](../msg_docs/FixedWingRunwayControl.md)
+- [PpsCapture](../msg_docs/PpsCapture.md)
+- [FailureDetectorStatus](../msg_docs/FailureDetectorStatus.md)
+- [SensorBaro](../msg_docs/SensorBaro.md)
+- [UlogStreamAck](../msg_docs/UlogStreamAck.md)
+- [DronecanNodeStatus](../msg_docs/DronecanNodeStatus.md)
+- [FollowTargetStatus](../msg_docs/FollowTargetStatus.md)
+- [ParameterSetUsedRequest](../msg_docs/ParameterSetUsedRequest.md)
+- [SensorAirflow](../msg_docs/SensorAirflow.md)
+- [GpioConfig](../msg_docs/GpioConfig.md)
+- [UlogStream](../msg_docs/UlogStream.md)
+- [GpioIn](../msg_docs/GpioIn.md)
+- [TuneControl](../msg_docs/TuneControl.md)
+- [MagWorkerData](../msg_docs/MagWorkerData.md)
+- [EventV0](../msg_docs/EventV0.md)
+- [ParameterSetValueResponse](../msg_docs/ParameterSetValueResponse.md)
+- [SensorGyro](../msg_docs/SensorGyro.md)
+- [VehicleAngularVelocity](../msg_docs/VehicleAngularVelocity.md)
+- [HeaterStatus](../msg_docs/HeaterStatus.md)
+- [Mission](../msg_docs/Mission.md)
+- [GimbalManagerStatus](../msg_docs/GimbalManagerStatus.md)
+- [RateCtrlStatus](../msg_docs/RateCtrlStatus.md)
+- [VehicleConstraints](../msg_docs/VehicleConstraints.md)
+- [ActuatorOutputs](../msg_docs/ActuatorOutputs.md)
+- [DeviceInformation](../msg_docs/DeviceInformation.md)
+- [OpenDroneIdArmStatus](../msg_docs/OpenDroneIdArmStatus.md)
+- [DatamanResponse](../msg_docs/DatamanResponse.md)
+- [DebugVect](../msg_docs/DebugVect.md)
+- [RoverSpeedStatus](../msg_docs/RoverSpeedStatus.md)
+- [VehicleAirData](../msg_docs/VehicleAirData.md)
+- [RtlTimeEstimate](../msg_docs/RtlTimeEstimate.md)
+- [RegisterExtComponentReplyV0](../msg_docs/RegisterExtComponentReplyV0.md)
+- [NeuralControl](../msg_docs/NeuralControl.md)
+- [FixedWingLateralGuidanceStatus](../msg_docs/FixedWingLateralGuidanceStatus.md)
+- [FigureEightStatus](../msg_docs/FigureEightStatus.md)
+- [GpioOut](../msg_docs/GpioOut.md)
+- [EstimatorAidSource1d](../msg_docs/EstimatorAidSource1d.md)
+- [LogMessage](../msg_docs/LogMessage.md)
+- [Cpuload](../msg_docs/Cpuload.md)
+- [EstimatorBias3d](../msg_docs/EstimatorBias3d.md)
+- [SensorPreflightMag](../msg_docs/SensorPreflightMag.md)
+- [CameraCapture](../msg_docs/CameraCapture.md)
+- [OrbTestLarge](../msg_docs/OrbTestLarge.md)
+- [ParameterResetRequest](../msg_docs/ParameterResetRequest.md)
+- [OrbTest](../msg_docs/OrbTest.md)
+- [Ping](../msg_docs/Ping.md)
+- [RoverRateStatus](../msg_docs/RoverRateStatus.md)
+- [IrlockReport](../msg_docs/IrlockReport.md)
+- [RcChannels](../msg_docs/RcChannels.md)
+- [CellularStatus](../msg_docs/CellularStatus.md)
:::
diff --git a/docs/ko/modules/modules_driver.md b/docs/ko/modules/modules_driver.md
index 1582e8a8ff..8bb63a84ed 100644
--- a/docs/ko/modules/modules_driver.md
+++ b/docs/ko/modules/modules_driver.md
@@ -191,28 +191,13 @@ Source: [drivers/dshot](https://github.com/PX4/PX4-Autopilot/tree/main/src/drive
### 설명
-This is the DShot output driver. It is similar to the fmu driver, and can be used as drop-in replacement
+This is the DShot output driver. It can be used as drop-in replacement
to use DShot as ESC communication protocol instead of PWM.
-On startup, the module tries to occupy all available pins for DShot output.
-It skips all pins already in use (e.g. by a camera trigger module).
-
It supports:
- DShot150, DShot300, DShot600
- telemetry via separate UART and publishing as esc_status message
-- sending DShot commands via CLI
-
-### 예
-
-Permanently reverse motor 1:
-
-```
-dshot reverse -m 1
-dshot save -m 1
-```
-
-After saving, the reversed direction will be regarded as the normal one. So to reverse again repeat the same commands.
### Usage {#dshot_usage}
@@ -226,36 +211,6 @@ dshot [arguments...]
values:
[-x] Swap RX/TX pins
- reverse Reverse motor direction
- [-m ] Motor index (1-based, default=all)
-
- normal Normal motor direction
- [-m ] Motor index (1-based, default=all)
-
- save Save current settings
- [-m ] Motor index (1-based, default=all)
-
- 3d_on Enable 3D mode
- [-m ] Motor index (1-based, default=all)
-
- 3d_off Disable 3D mode
- [-m ] Motor index (1-based, default=all)
-
- beep1 Send Beep pattern 1
- [-m ] Motor index (1-based, default=all)
-
- beep2 Send Beep pattern 2
- [-m ] Motor index (1-based, default=all)
-
- beep3 Send Beep pattern 3
- [-m ] Motor index (1-based, default=all)
-
- beep4 Send Beep pattern 4
- [-m ] Motor index (1-based, default=all)
-
- beep5 Send Beep pattern 5
- [-m ] Motor index (1-based, default=all)
-
stop
status print status info
@@ -1109,7 +1064,7 @@ px4io [arguments...]
## rgbled
-Source: [drivers/lights/rgbled_ncp5623c](https://github.com/PX4/PX4-Autopilot/tree/main/src/drivers/lights/rgbled_ncp5623c)
+Source: [drivers/lights/rgbled](https://github.com/PX4/PX4-Autopilot/tree/main/src/drivers/lights/rgbled)
### Usage {#rgbled_usage}
@@ -1124,9 +1079,7 @@ rgbled [arguments...]
[-f ] bus frequency in kHz
[-q] quiet startup (no message if no device found)
[-a ] I2C address
- default: 57
- [-o ] RGB PWM Assignment
- default: 123
+ default: 85
stop
diff --git a/docs/ko/msg_docs/EscEepromRead.md b/docs/ko/msg_docs/EscEepromRead.md
new file mode 100644
index 0000000000..5fc773d4c3
--- /dev/null
+++ b/docs/ko/msg_docs/EscEepromRead.md
@@ -0,0 +1,42 @@
+---
+pageClass: is-wide-page
+---
+
+# EscEepromRead (UORB message)
+
+**TOPICS:** esc_eeprom_read
+
+## Fields
+
+| 명칭 | 형식 | Unit [Frame] | Range/Enum | 설명 |
+| --------- | ----------- | ---------------------------------------------------------------- | ---------- | -------------------------------------------------------------------------------------------- |
+| timestamp | `uint64` | us | | Time since system start |
+| firmware | `uint8` | | | ESC firmware type (see ESC_FIRMWARE enum in MAVLink) |
+| index | `uint8` | | | Index of the ESC (0 = ESC1, 1 = ESC2, etc.) |
+| length | `uint16` | | | Length of valid data |
+| data | `uint8[48]` | | | Raw ESC EEPROM data |
+
+## Constants
+
+| 명칭 | 형식 | Value | 설명 |
+| ----------------------------------------------------------------------------------------- | ------- | ----- | -------------------------------- |
+| ORB_QUEUE_LENGTH | `uint8` | 8 | To support 8 queued up responses |
+
+## Source Message
+
+[Source file (GitHub)](https://github.com/PX4/PX4-Autopilot/blob/main/msg/EscEepromRead.msg)
+
+:::details
+Click here to see original file
+
+```c
+uint64 timestamp # [us] Time since system start
+uint8 firmware # [-] ESC firmware type (see ESC_FIRMWARE enum in MAVLink)
+uint8 index # [-] Index of the ESC (0 = ESC1, 1 = ESC2, etc.)
+uint16 length # [-] Length of valid data
+uint8[48] data # [-] Raw ESC EEPROM data
+
+uint8 ORB_QUEUE_LENGTH = 8 # To support 8 queued up responses
+```
+
+:::
diff --git a/docs/ko/msg_docs/EscEepromWrite.md b/docs/ko/msg_docs/EscEepromWrite.md
new file mode 100644
index 0000000000..ada9774e17
--- /dev/null
+++ b/docs/ko/msg_docs/EscEepromWrite.md
@@ -0,0 +1,44 @@
+---
+pageClass: is-wide-page
+---
+
+# EscEepromWrite (UORB message)
+
+**TOPICS:** esc_eeprom_write
+
+## Fields
+
+| 명칭 | 형식 | Unit [Frame] | Range/Enum | 설명 |
+| ------------------------------- | ----------- | ---------------------------------------------------------------- | ---------- | ----------------------------------------------------------------------------------------------------- |
+| timestamp | `uint64` | us | | Time since system start |
+| firmware | `uint8` | | | ESC firmware type (see ESC_FIRMWARE enum in MAVLink) |
+| index | `uint8` | | | Index of the ESC (0 = ESC1, 1 = ESC2, etc, 255 = All) |
+| length | `uint16` | | | Length of valid data |
+| data | `uint8[48]` | | | Raw ESC EEPROM data |
+| write_mask | `uint32[2]` | | | Bitmask indicating which bytes in the data array should be written (max 48 values) |
+
+## Constants
+
+| 명칭 | 형식 | Value | 설명 |
+| ----------------------------------------------------------------------------------------- | ------- | ----- | ------------------------------- |
+| ORB_QUEUE_LENGTH | `uint8` | 8 | To support 8 queued up requests |
+
+## Source Message
+
+[Source file (GitHub)](https://github.com/PX4/PX4-Autopilot/blob/main/msg/EscEepromWrite.msg)
+
+:::details
+Click here to see original file
+
+```c
+uint64 timestamp # [us] Time since system start
+uint8 firmware # [-] ESC firmware type (see ESC_FIRMWARE enum in MAVLink)
+uint8 index # [-] Index of the ESC (0 = ESC1, 1 = ESC2, etc, 255 = All)
+uint16 length # [-] Length of valid data
+uint8[48] data # [-] Raw ESC EEPROM data
+uint32[2] write_mask # [-] Bitmask indicating which bytes in the data array should be written (max 48 values)
+
+uint8 ORB_QUEUE_LENGTH = 8 # To support 8 queued up requests
+```
+
+:::
diff --git a/docs/ko/msg_docs/EscReport.md b/docs/ko/msg_docs/EscReport.md
index 20b5c6eaf3..1af1ff1fe7 100644
--- a/docs/ko/msg_docs/EscReport.md
+++ b/docs/ko/msg_docs/EscReport.md
@@ -8,28 +8,26 @@ pageClass: is-wide-page
## Fields
-| 명칭 | 형식 | Unit [Frame] | Range/Enum | 설명 |
-| -------------------------------------- | --------- | ---------------------------------------------------------------- | ---------- | -------------------------------------------------------------------------------------------------------------------- |
-| timestamp | `uint64` | | | time since system start (microseconds) |
-| esc_errorcount | `uint32` | | | Number of reported errors by ESC - if supported |
-| esc_rpm | `int32` | | | Motor RPM, negative for reverse rotation [RPM] - if supported |
-| esc_voltage | `float32` | | | Voltage measured from current ESC [V] - if supported |
-| esc_current | `float32` | | | Current measured from current ESC [A] - if supported |
-| esc_temperature | `float32` | | | Temperature measured from current ESC [degC] - if supported |
-| motor_temperature | `int16` | | | Temperature measured from current motor [degC] - if supported |
-| esc_address | `uint8` | | | Address of current ESC (in most cases 1-8 / must be set by driver) |
-| esc_cmdcount | `uint8` | | | Counter of number of commands |
-| esc_state | `uint8` | | | State of ESC - depend on Vendor |
-| actuator_function | `uint8` | | | actuator output function (one of Motor1...MotorN) |
-| failures | `uint16` | | | Bitmask to indicate the internal ESC faults |
-| esc_power | `int8` | | | Applied power 0-100 in % (negative values reserved) |
+| 명칭 | 형식 | Unit [Frame] | Range/Enum | 설명 |
+| -------------------------------------- | --------- | ---------------------------------------------------------------- | ----------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- |
+| timestamp | `uint64` | us | | Time since system start |
+| esc_errorcount | `uint32` | | | Number of reported errors by ESC - if supported |
+| esc_rpm | `int32` | rpm | | Motor RPM, negative for reverse rotation - if supported |
+| esc_voltage | `float32` | V | | Voltage measured from current ESC - if supported |
+| esc_current | `float32` | A | | Current measured from current ESC - if supported |
+| esc_temperature | `float32` | degC | | Temperature measured from current ESC - if supported |
+| motor_temperature | `int16` | degC | | Temperature measured from current motor - if supported |
+| esc_state | `uint8` | | | State of ESC - depend on Vendor |
+| actuator_function | `uint8` | | | Actuator output function (one of Motor1...MotorN) |
+| failures | `uint16` | | [FAILURE](#FAILURE) | Bitmask to indicate the internal ESC faults |
+| esc_power | `int8` | % | [0 : 100] | Applied power (negative values reserved) |
-## Constants
+## Enums
+
+### FAILURE {#FAILURE}
| 명칭 | 형식 | Value | 설명 |
| ------------------------------------------------------------------------------------------------------------------------------------------ | ------- | ----- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
-| ACTUATOR_FUNCTION_MOTOR1 | `uint8` | 101 | |
-| ACTUATOR_FUNCTION_MOTOR_MAX | `uint8` | 112 | output_functions.yaml Motor.start + Motor.count - 1 |
| FAILURE_OVER_CURRENT | `uint8` | 0 | (1 << 0) |
| FAILURE_OVER_VOLTAGE | `uint8` | 1 | (1 << 1) |
| FAILURE_MOTOR_OVER_TEMPERATURE | `uint8` | 2 | (1 << 2) |
@@ -40,7 +38,14 @@ pageClass: is-wide-page
| FAILURE_MOTOR_WARN_TEMPERATURE | `uint8` | 7 | (1 << 7) |
| FAILURE_WARN_ESC_TEMPERATURE | `uint8` | 8 | (1 << 8) |
| FAILURE_OVER_ESC_TEMPERATURE | `uint8` | 9 | (1 << 9) |
-| ESC_FAILURE_COUNT | `uint8` | 10 | Counter - keep it as last element! |
+
+## Constants
+
+| 명칭 | 형식 | Value | 설명 |
+| ------------------------------------------------------------------------------------------------------------------------------------ | ------- | ----- | ------------------------------------------------------------------------------------------------------------------------ |
+| ACTUATOR_FUNCTION_MOTOR1 | `uint8` | 101 | |
+| ACTUATOR_FUNCTION_MOTOR_MAX | `uint8` | 112 | output_functions.yaml Motor.start + Motor.count - 1 |
+| ESC_FAILURE_COUNT | `uint8` | 10 | Counter - keep it as last element! |
## Source Message
@@ -50,36 +55,36 @@ pageClass: is-wide-page
Click here to see original file
```c
-uint64 timestamp # time since system start (microseconds)
-uint32 esc_errorcount # Number of reported errors by ESC - if supported
-int32 esc_rpm # Motor RPM, negative for reverse rotation [RPM] - if supported
-float32 esc_voltage # Voltage measured from current ESC [V] - if supported
-float32 esc_current # Current measured from current ESC [A] - if supported
-float32 esc_temperature # Temperature measured from current ESC [degC] - if supported
-int16 motor_temperature # Temperature measured from current motor [degC] - if supported
-uint8 esc_address # Address of current ESC (in most cases 1-8 / must be set by driver)
-uint8 esc_cmdcount # Counter of number of commands
+uint64 timestamp # [us] Time since system start
-uint8 esc_state # State of ESC - depend on Vendor
+uint32 esc_errorcount # [-] Number of reported errors by ESC - if supported
+int32 esc_rpm # [rpm] Motor RPM, negative for reverse rotation - if supported
+float32 esc_voltage # [V] Voltage measured from current ESC - if supported
+float32 esc_current # [A] Current measured from current ESC - if supported
+float32 esc_temperature # [degC] Temperature measured from current ESC - if supported
+int16 motor_temperature # [degC] Temperature measured from current motor - if supported
+
+uint8 esc_state # [-] State of ESC - depend on Vendor
+
+uint8 actuator_function # [-] Actuator output function (one of Motor1...MotorN)
-uint8 actuator_function # actuator output function (one of Motor1...MotorN)
uint8 ACTUATOR_FUNCTION_MOTOR1 = 101
uint8 ACTUATOR_FUNCTION_MOTOR_MAX = 112 # output_functions.yaml Motor.start + Motor.count - 1
-uint16 failures # Bitmask to indicate the internal ESC faults
-int8 esc_power # Applied power 0-100 in % (negative values reserved)
+uint16 failures # [@enum FAILURE] Bitmask to indicate the internal ESC faults
+int8 esc_power # [%] [@range 0,100] Applied power (negative values reserved)
-uint8 FAILURE_OVER_CURRENT = 0 # (1 << 0)
-uint8 FAILURE_OVER_VOLTAGE = 1 # (1 << 1)
-uint8 FAILURE_MOTOR_OVER_TEMPERATURE = 2 # (1 << 2)
-uint8 FAILURE_OVER_RPM = 3 # (1 << 3)
-uint8 FAILURE_INCONSISTENT_CMD = 4 # (1 << 4) Set if ESC received an inconsistent command (i.e out of boundaries)
-uint8 FAILURE_MOTOR_STUCK = 5 # (1 << 5)
-uint8 FAILURE_GENERIC = 6 # (1 << 6)
-uint8 FAILURE_MOTOR_WARN_TEMPERATURE = 7 # (1 << 7)
-uint8 FAILURE_WARN_ESC_TEMPERATURE = 8 # (1 << 8)
-uint8 FAILURE_OVER_ESC_TEMPERATURE = 9 # (1 << 9)
-uint8 ESC_FAILURE_COUNT = 10 # Counter - keep it as last element!
+uint8 FAILURE_OVER_CURRENT = 0 # (1 << 0)
+uint8 FAILURE_OVER_VOLTAGE = 1 # (1 << 1)
+uint8 FAILURE_MOTOR_OVER_TEMPERATURE = 2 # (1 << 2)
+uint8 FAILURE_OVER_RPM = 3 # (1 << 3)
+uint8 FAILURE_INCONSISTENT_CMD = 4 # (1 << 4) Set if ESC received an inconsistent command (i.e out of boundaries)
+uint8 FAILURE_MOTOR_STUCK = 5 # (1 << 5)
+uint8 FAILURE_GENERIC = 6 # (1 << 6)
+uint8 FAILURE_MOTOR_WARN_TEMPERATURE = 7 # (1 << 7)
+uint8 FAILURE_WARN_ESC_TEMPERATURE = 8 # (1 << 8)
+uint8 FAILURE_OVER_ESC_TEMPERATURE = 9 # (1 << 9)
+uint8 ESC_FAILURE_COUNT = 10 # Counter - keep it as last element!
```
:::
diff --git a/docs/ko/msg_docs/EscStatus.md b/docs/ko/msg_docs/EscStatus.md
index 6165263b91..b9f900aab2 100644
--- a/docs/ko/msg_docs/EscStatus.md
+++ b/docs/ko/msg_docs/EscStatus.md
@@ -8,27 +8,34 @@ pageClass: is-wide-page
## Fields
-| 명칭 | 형식 | Unit [Frame] | Range/Enum | 설명 |
-| ---------------------------------------------------------- | -------------- | ---------------------------------------------------------------- | ---------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| timestamp | `uint64` | | | time since system start (microseconds) |
-| counter | `uint16` | | | incremented by the writing thread everytime new data is stored |
-| esc_count | `uint8` | | | number of connected ESCs |
-| esc_connectiontype | `uint8` | | | how ESCs connected to the system |
-| esc_online_flags | `uint8` | | | Bitmask indicating which ESC is online/offline |
-| esc_armed_flags | `uint8` | | | Bitmask indicating which ESC is armed. For ESC's where the arming state is not known (returned by the ESC), the arming bits should always be set. |
-| esc | `EscReport[8]` | | | |
+| 명칭 | 형식 | Unit [Frame] | Range/Enum | 설명 |
+| ---------------------------------------------------------- | --------------- | ---------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- |
+| timestamp | `uint64` | us | | Time since system start |
+| counter | `uint16` | | | Incremented by the writing thread everytime new data is stored |
+| esc_count | `uint8` | | | Number of connected ESCs |
+| esc_connectiontype | `uint8` | | [ESC_CONNECTION_TYPE](#ESC_CONNECTION_TYPE) | How ESCs connected to the system |
+| esc_online_flags | `uint16` | | | Bitmask indicating which ESC is online/offline (in motor order) |
+| esc_armed_flags | `uint16` | | | Bitmask indicating which ESC is armed (in motor order) |
+| esc | `EscReport[12]` | | | |
+
+## Enums
+
+### ESC_CONNECTION_TYPE {#ESC_CONNECTION_TYPE}
+
+| 명칭 | 형식 | Value | 설명 |
+| ------------------------------------------------------------------------------------------------------------------------------------ | ------- | ----- | ------------------------ |
+| ESC_CONNECTION_TYPE_PPM | `uint8` | 0 | Traditional PPM ESC |
+| ESC_CONNECTION_TYPE_SERIAL | `uint8` | 1 | Serial Bus connected ESC |
+| ESC_CONNECTION_TYPE_ONESHOT | `uint8` | 2 | One Shot PPM |
+| ESC_CONNECTION_TYPE_I2C | `uint8` | 3 | I2C |
+| ESC_CONNECTION_TYPE_CAN | `uint8` | 4 | CAN-Bus |
+| ESC_CONNECTION_TYPE_DSHOT | `uint8` | 5 | DShot |
## Constants
-| 명칭 | 형식 | Value | 설명 |
-| ------------------------------------------------------------------------------------------------------------------------------------ | ------- | ----- | ---------------------------------------------------------------------------------------------------- |
-| CONNECTED_ESC_MAX | `uint8` | 8 | The number of ESCs supported. Current (Q2/2013) we support 8 ESCs |
-| ESC_CONNECTION_TYPE_PPM | `uint8` | 0 | Traditional PPM ESC |
-| ESC_CONNECTION_TYPE_SERIAL | `uint8` | 1 | Serial Bus connected ESC |
-| ESC_CONNECTION_TYPE_ONESHOT | `uint8` | 2 | One Shot PPM |
-| ESC_CONNECTION_TYPE_I2C | `uint8` | 3 | I2C |
-| ESC_CONNECTION_TYPE_CAN | `uint8` | 4 | CAN-Bus |
-| ESC_CONNECTION_TYPE_DSHOT | `uint8` | 5 | DShot |
+| 명칭 | 형식 | Value | 설명 |
+| ------------------------------------------------------------------------------------------- | ------- | ----- | ---------------------------------------------------------------- |
+| CONNECTED_ESC_MAX | `uint8` | 12 | The number of ESCs supported (Motor1-Motor12) |
## Source Message
@@ -38,34 +45,38 @@ pageClass: is-wide-page
Click here to see original file
```c
-uint64 timestamp # time since system start (microseconds)
-uint8 CONNECTED_ESC_MAX = 8 # The number of ESCs supported. Current (Q2/2013) we support 8 ESCs
+uint64 timestamp # [us] Time since system start
+uint8 CONNECTED_ESC_MAX = 12 # The number of ESCs supported (Motor1-Motor12)
-uint8 ESC_CONNECTION_TYPE_PPM = 0 # Traditional PPM ESC
-uint8 ESC_CONNECTION_TYPE_SERIAL = 1 # Serial Bus connected ESC
-uint8 ESC_CONNECTION_TYPE_ONESHOT = 2 # One Shot PPM
-uint8 ESC_CONNECTION_TYPE_I2C = 3 # I2C
-uint8 ESC_CONNECTION_TYPE_CAN = 4 # CAN-Bus
-uint8 ESC_CONNECTION_TYPE_DSHOT = 5 # DShot
+uint8 ESC_CONNECTION_TYPE_PPM = 0 # Traditional PPM ESC
+uint8 ESC_CONNECTION_TYPE_SERIAL = 1 # Serial Bus connected ESC
+uint8 ESC_CONNECTION_TYPE_ONESHOT = 2 # One Shot PPM
+uint8 ESC_CONNECTION_TYPE_I2C = 3 # I2C
+uint8 ESC_CONNECTION_TYPE_CAN = 4 # CAN-Bus
+uint8 ESC_CONNECTION_TYPE_DSHOT = 5 # DShot
-uint16 counter # incremented by the writing thread everytime new data is stored
+uint16 counter # [-] Incremented by the writing thread everytime new data is stored
-uint8 esc_count # number of connected ESCs
-uint8 esc_connectiontype # how ESCs connected to the system
+uint8 esc_count # [-] Number of connected ESCs
+uint8 esc_connectiontype # [@enum ESC_CONNECTION_TYPE] How ESCs connected to the system
-uint8 esc_online_flags # Bitmask indicating which ESC is online/offline
-# esc_online_flags bit 0 : Set to 1 if ESC0 is online
-# esc_online_flags bit 1 : Set to 1 if ESC1 is online
-# esc_online_flags bit 2 : Set to 1 if ESC2 is online
-# esc_online_flags bit 3 : Set to 1 if ESC3 is online
-# esc_online_flags bit 4 : Set to 1 if ESC4 is online
-# esc_online_flags bit 5 : Set to 1 if ESC5 is online
-# esc_online_flags bit 6 : Set to 1 if ESC6 is online
-# esc_online_flags bit 7 : Set to 1 if ESC7 is online
+uint16 esc_online_flags # Bitmask indicating which ESC is online/offline (in motor order)
+# esc_online_flags bit 0 : Set to 1 if Motor1 is online
+# esc_online_flags bit 1 : Set to 1 if Motor2 is online
+# esc_online_flags bit 2 : Set to 1 if Motor3 is online
+# esc_online_flags bit 3 : Set to 1 if Motor4 is online
+# esc_online_flags bit 4 : Set to 1 if Motor5 is online
+# esc_online_flags bit 5 : Set to 1 if Motor6 is online
+# esc_online_flags bit 6 : Set to 1 if Motor7 is online
+# esc_online_flags bit 7 : Set to 1 if Motor8 is online
+# esc_online_flags bit 8 : Set to 1 if Motor9 is online
+# esc_online_flags bit 9 : Set to 1 if Motor10 is online
+# esc_online_flags bit 10: Set to 1 if Motor11 is online
+# esc_online_flags bit 11: Set to 1 if Motor12 is online
-uint8 esc_armed_flags # Bitmask indicating which ESC is armed. For ESC's where the arming state is not known (returned by the ESC), the arming bits should always be set.
+uint16 esc_armed_flags # [-] Bitmask indicating which ESC is armed (in motor order)
-EscReport[8] esc
+EscReport[12] esc
```
:::
diff --git a/docs/ko/msg_docs/SensorGps.md b/docs/ko/msg_docs/SensorGps.md
index 4c30353dbf..272b556d60 100644
--- a/docs/ko/msg_docs/SensorGps.md
+++ b/docs/ko/msg_docs/SensorGps.md
@@ -10,45 +10,48 @@ GPS position in WGS84 coordinates. the field 'timestamp' is for the position & v
## Fields
-| 명칭 | 형식 | Unit [Frame] | Range/Enum | 설명 |
-| ----------------------------------------------------------------------------- | --------- | ---------------------------------------------------------------- | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| timestamp | `uint64` | | | time since system start (microseconds) |
-| timestamp_sample | `uint64` | | | |
-| device_id | `uint32` | | | unique device ID for the sensor that does not change between power cycles |
-| latitude_deg | `float64` | | | Latitude in degrees, allows centimeter level RTK precision |
-| longitude_deg | `float64` | | | Longitude in degrees, allows centimeter level RTK precision |
-| altitude_msl_m | `float64` | | | Altitude above MSL, meters |
-| altitude_ellipsoid_m | `float64` | | | Altitude above Ellipsoid, meters |
-| s_variance_m_s | `float32` | | | GPS speed accuracy estimate, (metres/sec) |
-| c_variance_rad | `float32` | | | GPS course accuracy estimate, (radians) |
-| fix_type | `uint8` | | | Some applications will not use the value of this field unless it is at least two, so always correctly fill in the fix. |
-| eph | `float32` | | | GPS horizontal position accuracy (metres) |
-| epv | `float32` | | | GPS vertical position accuracy (metres) |
-| hdop | `float32` | | | Horizontal dilution of precision |
-| vdop | `float32` | | | Vertical dilution of precision |
-| noise_per_ms | `int32` | | | GPS noise per millisecond |
-| automatic_gain_control | `uint16` | | | Automatic gain control monitor |
-| jamming_state | `uint8` | | | indicates whether jamming has been detected or suspected by the receivers. O: Unknown, 1: OK, 2: Mitigated, 3: Detected |
-| jamming_indicator | `int32` | | | indicates jamming is occurring |
-| spoofing_state | `uint8` | | | indicates whether spoofing has been detected or suspected by the receivers. O: Unknown, 1: OK, 2: Mitigated, 3: Detected |
-| authentication_state | `uint8` | | | GPS signal authentication state |
-| vel_m_s | `float32` | | | GPS ground speed, (metres/sec) |
-| vel_n_m_s | `float32` | | | GPS North velocity, (metres/sec) |
-| vel_e_m_s | `float32` | | | GPS East velocity, (metres/sec) |
-| vel_d_m_s | `float32` | | | GPS Down velocity, (metres/sec) |
-| cog_rad | `float32` | | | Course over ground (NOT heading, but direction of movement), -PI..PI, (radians) |
-| vel_ned_valid | `bool` | | | True if NED velocity is valid |
-| timestamp_time_relative | `int32` | | | timestamp + timestamp_time_relative = Time of the UTC timestamp since system start, (microseconds) |
-| time_utc_usec | `uint64` | | | Timestamp (microseconds, UTC), this is the timestamp which comes from the gps module. It might be unavailable right after cold start, indicated by a value of 0 |
-| satellites_used | `uint8` | | | Number of satellites used |
-| system_error | `uint32` | | | General errors with the connected GPS receiver |
-| heading | `float32` | | | heading angle of XYZ body frame rel to NED. Set to NaN if not available and updated (used for dual antenna GPS), (rad, [-PI, PI]) |
-| heading_offset | `float32` | | | heading offset of dual antenna array in body frame. Set to NaN if not applicable. (rad, [-PI, PI]) |
-| heading_accuracy | `float32` | | | heading accuracy (rad, [0, 2PI]) |
-| rtcm_injection_rate | `float32` | | | RTCM message injection rate Hz |
-| selected_rtcm_instance | `uint8` | | | uorb instance that is being used for RTCM corrections |
-| rtcm_crc_failed | `bool` | | | RTCM message CRC failure detected |
-| rtcm_msg_used | `uint8` | | | Indicates if the RTCM message was used successfully by the receiver |
+| 명칭 | 형식 | Unit [Frame] | Range/Enum | 설명 |
+| ----------------------------------------------------------------------------- | --------- | ---------------------------------------------------------------------- | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| timestamp | `uint64` | | | time since system start (microseconds) |
+| timestamp_sample | `uint64` | | | |
+| device_id | `uint32` | | | unique device ID for the sensor that does not change between power cycles |
+| latitude_deg | `float64` | | | Latitude in degrees, allows centimeter level RTK precision |
+| longitude_deg | `float64` | | | Longitude in degrees, allows centimeter level RTK precision |
+| altitude_msl_m | `float64` | | | Altitude above MSL, meters |
+| altitude_ellipsoid_m | `float64` | | | Altitude above Ellipsoid, meters |
+| s_variance_m_s | `float32` | | | GPS speed accuracy estimate, (metres/sec) |
+| c_variance_rad | `float32` | | | GPS course accuracy estimate, (radians) |
+| fix_type | `uint8` | | | Some applications will not use the value of this field unless it is at least two, so always correctly fill in the fix. |
+| eph | `float32` | | | GPS horizontal position accuracy (metres) |
+| epv | `float32` | | | GPS vertical position accuracy (metres) |
+| hdop | `float32` | | | Horizontal dilution of precision |
+| vdop | `float32` | | | Vertical dilution of precision |
+| noise_per_ms | `int32` | | | GPS noise per millisecond |
+| automatic_gain_control | `uint16` | | | Automatic gain control monitor |
+| jamming_state | `uint8` | | | indicates whether jamming has been detected or suspected by the receivers. O: Unknown, 1: OK, 2: Mitigated, 3: Detected |
+| jamming_indicator | `int32` | | | indicates jamming is occurring |
+| spoofing_state | `uint8` | | | indicates whether spoofing has been detected or suspected by the receivers. O: Unknown, 1: OK, 2: Mitigated, 3: Detected |
+| authentication_state | `uint8` | | | GPS signal authentication state |
+| vel_m_s | `float32` | | | GPS ground speed, (metres/sec) |
+| vel_n_m_s | `float32` | | | GPS North velocity, (metres/sec) |
+| vel_e_m_s | `float32` | | | GPS East velocity, (metres/sec) |
+| vel_d_m_s | `float32` | | | GPS Down velocity, (metres/sec) |
+| cog_rad | `float32` | | | Course over ground (NOT heading, but direction of movement), -PI..PI, (radians) |
+| vel_ned_valid | `bool` | | | True if NED velocity is valid |
+| timestamp_time_relative | `int32` | | | timestamp + timestamp_time_relative = Time of the UTC timestamp since system start, (microseconds) |
+| time_utc_usec | `uint64` | | | Timestamp (microseconds, UTC), this is the timestamp which comes from the gps module. It might be unavailable right after cold start, indicated by a value of 0 |
+| satellites_used | `uint8` | | | Number of satellites used |
+| system_error | `uint32` | | | General errors with the connected GPS receiver |
+| heading | `float32` | | | heading angle of XYZ body frame rel to NED. Set to NaN if not available and updated (used for dual antenna GPS), (rad, [-PI, PI]) |
+| heading_offset | `float32` | | | heading offset of dual antenna array in body frame. Set to NaN if not applicable. (rad, [-PI, PI]) |
+| heading_accuracy | `float32` | | | heading accuracy (rad, [0, 2PI]) |
+| rtcm_injection_rate | `float32` | | | RTCM message injection rate Hz |
+| selected_rtcm_instance | `uint8` | | | uorb instance that is being used for RTCM corrections |
+| rtcm_crc_failed | `bool` | | | RTCM message CRC failure detected |
+| rtcm_msg_used | `uint8` | | | Indicates if the RTCM message was used successfully by the receiver |
+| antenna_offset_x | `float32` | m [body frame FRD] | | X Position of GNSS antenna |
+| antenna_offset_y | `float32` | m [body frame FRD] | | Y Position of GNSS antenna |
+| antenna_offset_z | `float32` | m [body frame FRD] | | Z Position of GNSS antenna |
## Constants
@@ -183,6 +186,10 @@ uint8 RTCM_MSG_USED_NOT_USED = 1
uint8 RTCM_MSG_USED_USED = 2
uint8 rtcm_msg_used # Indicates if the RTCM message was used successfully by the receiver
+float32 antenna_offset_x # [m] [@frame body frame FRD] X Position of GNSS antenna
+float32 antenna_offset_y # [m] [@frame body frame FRD] Y Position of GNSS antenna
+float32 antenna_offset_z # [m] [@frame body frame FRD] Z Position of GNSS antenna
+
# TOPICS sensor_gps vehicle_gps_position
```
diff --git a/docs/ko/msg_docs/VehicleCommand.md b/docs/ko/msg_docs/VehicleCommand.md
index 858bb56c5b..53e98f9d61 100644
--- a/docs/ko/msg_docs/VehicleCommand.md
+++ b/docs/ko/msg_docs/VehicleCommand.md
@@ -1052,6 +1052,20 @@ Actuator configuration command.
| 6 | | | ? |
| 7 | | | ? |
+### VEHICLE_CMD_ESC_REQUEST_EEPROM (312)
+
+Request EEPROM data from an ESC.
+
+| Param | 단위 | Range/Enum | 설명 |
+| ----- | -- | ---------- | ------------- |
+| 1 | | | ESC Index |
+| 2 | | | Firmware Type |
+| 3 | | | Unused |
+| 4 | | | Unused |
+| 5 | | | Unused |
+| 6 | | | ? |
+| 7 | | | ? |
+
### VEHICLE_CMD_COMPONENT_ARM_DISARM (400)
Arms / Disarms a component.
@@ -1536,6 +1550,12 @@ Change mode by specifying nav_state directly.
| VEHICLE_MOUNT_MODE_RC_TARGETING | `uint8` | 3 | Load neutral position and start RC Roll,Pitch,Yaw control with stabilization. |
| VEHICLE_MOUNT_MODE_GPS_POINT | `uint8` | 4 | Load neutral position and start to point to Lat,Lon,Alt. |
| VEHICLE_MOUNT_MODE_ENUM_END | `uint8` | 5 | |
+| ACTUATOR_CONFIGURATION_NONE | `uint8` | 0 | Do nothing. |
+| ACTUATOR_CONFIGURATION_BEEP | `uint8` | 1 | Command the actuator to beep now. |
+| ACTUATOR_CONFIGURATION_3D_MODE_ON | `uint8` | 2 | Permanently set the actuator (ESC) to 3D mode (reversible thrust). |
+| ACTUATOR_CONFIGURATION_3D_MODE_OFF | `uint8` | 3 | Permanently set the actuator (ESC) to non 3D mode (non-reversible thrust). |
+| ACTUATOR_CONFIGURATION_SPIN_DIRECTION1 | `uint8` | 4 | Permanently set the actuator (ESC) to spin direction 1 (which can be clockwise or counter-clockwise). |
+| ACTUATOR_CONFIGURATION_SPIN_DIRECTION2 | `uint8` | 5 | Permanently set the actuator (ESC) to spin direction 2 (opposite of direction 1). |
| PARACHUTE_ACTION_DISABLE | `uint8` | 0 | |
| PARACHUTE_ACTION_ENABLE | `uint8` | 1 | |
| PARACHUTE_ACTION_RELEASE | `uint8` | 2 | |
@@ -1661,6 +1681,7 @@ uint16 VEHICLE_CMD_GIMBAL_DEVICE_INFORMATION = 283 # Command to ask information
uint16 VEHICLE_CMD_MISSION_START = 300 # Start running a mission. |first_item: the first mission item to run|last_item: the last mission item to run (after this item is run, the mission ends)|
uint16 VEHICLE_CMD_ACTUATOR_TEST = 310 # Actuator testing command. |[@range -1,1] value|[s] timeout|Unused|Unused|output function|
uint16 VEHICLE_CMD_CONFIGURE_ACTUATOR = 311 # Actuator configuration command. |configuration|Unused|Unused|Unused|output function|
+uint16 VEHICLE_CMD_ESC_REQUEST_EEPROM = 312 # Request EEPROM data from an ESC. |ESC Index|Firmware Type|Unused|Unused|Unused|
uint16 VEHICLE_CMD_COMPONENT_ARM_DISARM = 400 # Arms / Disarms a component. |1 to arm, 0 to disarm.
uint16 VEHICLE_CMD_RUN_PREARM_CHECKS = 401 # Instructs a target system to run pre-arm checks.
uint16 VEHICLE_CMD_INJECT_FAILURE = 420 # Inject artificial failure for testing purposes.
@@ -1710,6 +1731,13 @@ uint8 VEHICLE_ROI_LOCATION = 3 # Point toward fixed location.
uint8 VEHICLE_ROI_TARGET = 4 # Point toward target.
uint8 VEHICLE_ROI_ENUM_END = 5
+uint8 ACTUATOR_CONFIGURATION_NONE = 0 # Do nothing.
+uint8 ACTUATOR_CONFIGURATION_BEEP = 1 # Command the actuator to beep now.
+uint8 ACTUATOR_CONFIGURATION_3D_MODE_ON = 2 # Permanently set the actuator (ESC) to 3D mode (reversible thrust).
+uint8 ACTUATOR_CONFIGURATION_3D_MODE_OFF = 3 # Permanently set the actuator (ESC) to non 3D mode (non-reversible thrust).
+uint8 ACTUATOR_CONFIGURATION_SPIN_DIRECTION1 = 4 # Permanently set the actuator (ESC) to spin direction 1 (which can be clockwise or counter-clockwise).
+uint8 ACTUATOR_CONFIGURATION_SPIN_DIRECTION2 = 5 # Permanently set the actuator (ESC) to spin direction 2 (opposite of direction 1).
+
uint8 PARACHUTE_ACTION_DISABLE = 0
uint8 PARACHUTE_ACTION_ENABLE = 1
uint8 PARACHUTE_ACTION_RELEASE = 2
diff --git a/docs/ko/msg_docs/index.md b/docs/ko/msg_docs/index.md
index 3912b8abca..ed91934635 100644
--- a/docs/ko/msg_docs/index.md
+++ b/docs/ko/msg_docs/index.md
@@ -85,6 +85,8 @@ Graphs showing how these are used [can be found here](../middleware/uorb_graph.m
- [DistanceSensorModeChangeRequest](DistanceSensorModeChangeRequest.md)
- [DronecanNodeStatus](DronecanNodeStatus.md)
- [Ekf2Timestamps](Ekf2Timestamps.md) — this message contains the (relative) timestamps of the sensor inputs used by EKF2. It can be used for reproducible replay.
+- [EscEepromRead](EscEepromRead.md)
+- [EscEepromWrite](EscEepromWrite.md)
- [EscReport](EscReport.md)
- [EscStatus](EscStatus.md)
- [EstimatorAidSource1d](EstimatorAidSource1d.md)
diff --git a/docs/ko/peripherals/dshot.md b/docs/ko/peripherals/dshot.md
index b2bced4a94..6e644ef90b 100644
--- a/docs/ko/peripherals/dshot.md
+++ b/docs/ko/peripherals/dshot.md
@@ -47,74 +47,12 @@ You should set the parameter to the highest speed supported by your ESC (accordi
ESC가 초기화되고 모터가 올바른 방향으로 회전하여야 합니다.
- If the motors do not spin in the correct direction (for the [selected airframe](../airframes/airframe_reference.md)) you can reverse them in the UI using the **Set Spin Direction** option (this option appears after you select DShot and assign motors).
- You can also reverse motors by sending an [ESC Command](#commands).
## ESC Commands {#commands}
Commands can be sent to the ESC via the [MAVLink shell](../debug/mavlink_shell.md).
See [here](../modules/modules_driver.md#dshot) for a full reference of the supported commands.
-가장 중요한 것은 다음과 같습니다.
-
-- Make a motor connected to FMU output pin 1 beep (helps with identifying motors)
-
- ```sh
- dshot beep1 -m 1
- ```
-
-- Retrieve ESC information (requires telemetry, see below):
-
- ```sh
- nsh> dshot esc_info -m 2
- INFO [dshot] ESC Type: #TEKKO32_4in1#
- INFO [dshot] MCU Serial Number: xxxxxx-xxxxxx-xxxxxx-xxxxxx
- INFO [dshot] Firmware version: 32.60
- INFO [dshot] Rotation Direction: normal
- INFO [dshot] 3D Mode: off
- INFO [dshot] Low voltage Limit: off
- INFO [dshot] Current Limit: off
- INFO [dshot] LED 0: unsupported
- INFO [dshot] LED 1: unsupported
- INFO [dshot] LED 2: unsupported
- INFO [dshot] LED 3: unsupported
- ```
-
-- Permanently set the spin direction of a motor connected to FMU output pin 1 (while motors are _not_ spinning):
-
- - Set spin direction to `reversed`:
-
- ```sh
- dshot reverse -m 1
- dshot save -m 1
- ```
-
- Retrieving ESC information will then show:
-
- ```sh
- Rotation Direction: reversed
- ```
-
- - Set spin direction to `normal`:
-
- ```sh
- dshot normal -m 1
- dshot save -m 1
- ```
-
- Retrieving ESC information will then show:
-
- ```sh
- Rotation Direction: normal
- ```
-
- :::note
-
- - The commands will have no effect if the motors are spinning, or if the ESC is already set to the corresponding direction.
- - The ESC will revert to its last saved direction (normal or reversed) on reboot if `save` is not called after changing the direction.
-
-
-:::
-
## ESC Telemetry
Some ESCs are capable of sending telemetry back to the flight controller through a UART RX port.
@@ -133,61 +71,76 @@ The provided telemetry includes:
1. 모든 ESC의 모든 원격 측정 와이어를 함께 연결한 다음, 사용하지 않는 비행 콘트롤러 직렬 포트의 RX핀 중 하나에 연결합니다.
2. Enable telemetry on that serial port using [DSHOT_TEL_CFG](../advanced_config/parameter_reference.md#DSHOT_TEL_CFG).
-재부팅 후 다음을 사용하여 텔레메트리 작동 여부를 확인할 수 있습니다 (배터리가 연결되어 있는 지 확인).
-
-```sh
-dshot esc_info -m 1
-```
-
:::tip
-You may have to configure [MOT_POLE_COUNT](../advanced_config/parameter_reference.md#MOT_POLE_COUNT) to get the correct RPM values.
+You may have to configure the per-motor pole count parameters ([`DSHOT_MOT_POL1`–`DSHOT_MOT_POL12`](../advanced_config/parameter_reference.md#DSHOT_MOT_POL1)) to get correct RPM values.
+The default value for these is 14 poles, which is typical for 5-inch prop motors.
:::
:::tip
-Not all DSHOT-capable ESCs support `[esc_info]`(e.g. APD 80F3x), even when telemetry is supported and enabled.
-결과 오류는 다음과 같습니다.
-
-```sh
-ERROR [dshot] No data received. If telemetry is setup correctly, try again.
-```
-
-세부 사항은 제조업체 문서를 확인하십시오.
+[Extended DShot Telemetry (EDT)](#extended-dshot-telemetry-edt) can provide temperature, voltage, and current through the BDShot signal — no serial telemetry wire needed.
:::
## Bidirectional DShot (Telemetry)
-Bidirectional DShot is a protocol that can provide telemetry including: high rate ESC RPM data, voltage, current, and temperature with a single wire.
+Bidirectional DShot (BDShot) enables the ESC to send eRPM telemetry back to the flight controller on the same signal wire used for throttle commands — no additional telemetry wire is needed for RPM data.
+High-rate eRPM data significantly improves the performance of [Dynamic Notch Filters](../config_mc/filter_tuning.md#dynamic-notch-filters) and enables more precise vehicle tuning.
-The PX4 implementation currently enables only ESC RPM (eRPM) data collection from each ESC at high frequencies.
-This telemetry significantly improves the performance of [Dynamic Notch Filters](../config_mc/filter_tuning.md#dynamic-notch-filters) and enables more precise vehicle tuning.
+With [Extended DShot Telemetry (EDT)](#extended-dshot-telemetry-edt) enabled, BDShot can also provide temperature, voltage, and current data.
+
+### Hardware Support
+
+BDShot requires a flight controller with DMA-capable timers.
+Any FMU output on a supported timer can be used for BDShot — multiple timers are supported through sequential burst/capture.
+
+Supported processors:
+
+- **STM32H7**: All FMU outputs on DMA-capable timers
+- **i.MXRT** (V6X-RT & Tropic): All FMU outputs
:::info
-The [ESC Telemetry](#esc-telemetry) described above is currently still necessary if you want voltage, current, or temperature information.
-It's setup and use is independent of bidirectional DShot.
-:::
-
-### 하드웨어 설정
-
The ESC must be connected to FMU outputs only.
-These will be labeled `MAIN` on flight controllers that only have one PWM bus, and `AUX` on controllers that have both `MAIN` and `AUX` ports (i.e. FCs that have an IO board).
-
-:::warning
-**Limited hardware support**
-This feature is only supported on flight controllers with the following processors:
-
-- STM32H7: First four FMU outputs
- - Must be connected to the first 4 FMU outputs, and these outputs must also be mapped to the same timer.
- - [KakuteH7](../flight_controller/kakuteh7v2.md) is not supported because the outputs are not mapped to the same timer.
-- [i.MXRT](../flight_controller/nxp_mr_vmu_rt1176.md) (V6X-RT & Tropic): 8 FMU outputs.
-
-No other boards are supported.
+These are labeled `MAIN` on controllers with a single PWM bus, and `AUX` on controllers with both `MAIN` and `AUX` ports (i.e. those with an IO board).
:::
-### Configuration {#bidirectional-dshot-configuration}
+### PX4 Configuration {#bidirectional-dshot-configuration}
-To enable bidirectional DShot, set the [DSHOT_BIDIR_EN](../advanced_config/parameter_reference.md#DSHOT_BIDIR_EN) parameter.
+BDShot is enabled **per-timer** in the [Actuator Configuration](../config/actuators.md) UI.
+Select **BDShot150**, **BDShot300**, or **BDShot600** as the output protocol instead of the corresponding DShot speed.
+There is no separate enable parameter — choosing a BDShot protocol activates bidirectional telemetry on that timer's outputs.
-The system calculates actual motor RPM from the received eRPM data using the [MOT_POLE_COUNT](../advanced_config/parameter_reference.md#MOT_POLE_COUNT) parameter.
-This parameter must be set correctly for accurate RPM reporting.
+The system calculates actual motor RPM from eRPM data using per-motor pole count parameters: `DSHOT_MOT_POL1` through `DSHOT_MOT_POL12` (one per motor output).
+The default is 14 poles, which is typical for 5-inch prop motors.
+If you are using AM32 ESCs, the motor pole count must also be set in the AM32 firmware configuration (e.g. via the AM32 configurator tool) to match.
+
+### Extended DShot Telemetry (EDT)
+
+EDT extends BDShot by interleaving temperature, voltage, and current data into the eRPM telemetry frames.
+This allows ESC health monitoring through the same signal wire, without requiring a separate serial telemetry connection.
+
+To enable EDT:
+
+1. Configure BDShot on the desired outputs (see above).
+2. Set `DSHOT_BIDIR_EDT` to `1` and reboot.
+
+The ESC firmware must support EDT (e.g. [AM32](https://github.com/am32-firmware/AM32)).
+
+When both serial telemetry and BDShot/EDT are enabled, the driver merges data from both sources.
+
+## AM32 ESC Settings (EEPROM)
+
+PX4 can read and write AM32 ESC firmware settings (EEPROM) via a ground station, enabling remote ESC configuration without connecting directly to each ESC.
+
+### Requirements
+
+- ESCs running [AM32 firmware](https://github.com/am32-firmware/AM32) with serial telemetry connected ([DSHOT_TEL_CFG](../advanced_config/parameter_reference.md#DSHOT_TEL_CFG))
+- `DSHOT_ESC_TYPE` set to `1` (AM32)
+- Ground station with ESC EEPROM support (QGroundControl feature in development)
+- MAVLink development dialect enabled on the flight controller
+
+### How It Works
+
+PX4 automatically reads the full EEPROM from each ESC on boot.
+The ground station can then display individual settings and allow the user to modify them.
+Changes are written back to the ESC one byte at a time using the DShot programming protocol.
diff --git a/docs/ko/peripherals/mavlink_peripherals.md b/docs/ko/peripherals/mavlink_peripherals.md
index 4ce03dc962..fe720ec619 100644
--- a/docs/ko/peripherals/mavlink_peripherals.md
+++ b/docs/ko/peripherals/mavlink_peripherals.md
@@ -26,38 +26,12 @@ The number in the name means nothing; you can assign any instance to any port.
- [MAV_X_CONFIG](../advanced_config/parameter_reference.md#MAV_0_CONFIG) - Set the serial port (UART) for this instance "X", where X is 0, 1, 2.
It can be any unused port, e.g.: `TELEM2`, `TELEM3`, `GPS2` etc.
For more information see [Serial Port Configuration](../peripherals/serial_configuration.md).
-
-- [MAV_X_MODE](../advanced_config/parameter_reference.md#MAV_0_MODE) - Specify the telemetry mode/target (the set of messages to stream for the current instance and their rate).
- 기본값은 아래와 같습니다.
-
- - _Normal_: Standard set of messages for a GCS.
- - _Custom_ or _Magic_: Nothing (in the default PX4 implementation).
- 모드는 새 모드를 개발시 테스트용으로 사용할 수 있습니다.
- - _Onboard_: Standard set of messages for a companion computer.
- - _OSD_: Standard set of messages for an OSD system.
- - _Config_: Standard set of messages and rate configuration for a fast link (e.g. USB).
- - _Minimal_: Minimal set of messages for use with a GCS connected on a high latency link.
- - _External Vision_: Messages for offboard vision systems.
- - _Gimbal_: Messages for a gimbal. Note this also enables [message forwarding](#MAV_X_FORWARD)
- - _Onboard Low Bandwidth_: Standard set of messages for a companion computer connected on a lower speed link.
- - _uAvionix_: Messages for a uAvionix ADS-B beacon.
-
- ::: info
- If you need to find the specific set of message for each mode search for `MAVLINK_MODE_` in [/src/modules/mavlink/mavlink_main.cpp](https://github.com/PX4/PX4-Autopilot/blob/main/src/modules/mavlink/mavlink_main.cpp).
-
-:::
-
- :::tip
- The mode defines the _default_ messages and rates.
- A connected MAVLink system can still request the streams/rates that it wants using [MAV_CMD_SET_MESSAGE_INTERVAL](https://mavlink.io/en/messages/common.html#MAV_CMD_SET_MESSAGE_INTERVAL).
-
-:::
-
+- [MAV_X_MODE](../advanced_config/parameter_reference.md#MAV_0_MODE) - Specify the [MAVLink profile](../mavlink/mavlink_profiles.md) for the instance, such as _Normal_ or _OSD_.
+ Profiles define a particular set of streamed messages and their rates — you should choose a profile that is appropriate for your channel and the peripheral.
- [MAV_X_RATE](../advanced_config/parameter_reference.md#MAV_0_MODE) - Set the maximum _data rate_ for this instance (bytes/second).
- 이는 개별 메시지의 모든 스트림에 대한 결합 비율입니다 (총 비율이이 값을 초과하면 개별 메시지에 대한 비율이 감소됨).
- 기본 설정은 일반적으로 허용되지만 원격 분석 링크가 포화 상태가 되고, 너무 많은 메시지가 삭제되는 경우에는 감소할 수 있습니다.
- 값이 0이면 데이터 속도가 이론적인 값의 절반으로 설정됩니다.
-
- [MAV_X_FORWARD](../advanced_config/parameter_reference.md#MAV_0_FORWARD) - Enable forwarding of MAVLink packets received by the current instance onto other interfaces.
예를 들어 GCS가 보조 컴퓨터에 연결된 MAVLink 지원 카메라와 통신할 수 있도록 GCS와 보조 컴퓨터간에 메시지를 전송에 사용할 수 있습니다.
@@ -121,6 +95,7 @@ Links to setup instructions for specific MAVLink components:
## See Also
+- [MAVLink Profiles](../mavlink/mavlink_profiles.md)
- [Serial Port Configuration](../peripherals/serial_configuration.md)
- [PX4 Ethernet Setup > PX4 MAVLink Serial Port Configuration](../advanced_config/ethernet_setup.md#px4-mavlink-serial-port-configuration)
- [Serial Port Mapping](../hardware/serial_port_mapping.md)
diff --git a/docs/ko/releases/main.md b/docs/ko/releases/main.md
index 94adc3c2b7..bc5bc84530 100644
--- a/docs/ko/releases/main.md
+++ b/docs/ko/releases/main.md
@@ -50,7 +50,7 @@ Please continue reading for [upgrade instructions](#upgrade-guide).
### Estimation
-- TBD
+- 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.
### 센서
diff --git a/docs/ko/ros2/px4_ros2_control_interface.md b/docs/ko/ros2/px4_ros2_control_interface.md
index 15ee7967c3..2130db8dd8 100644
--- a/docs/ko/ros2/px4_ros2_control_interface.md
+++ b/docs/ko/ros2/px4_ros2_control_interface.md
@@ -580,7 +580,7 @@ For ease of use we expose these valid combinations as new SetpointTypes.
The RoverSetpointTypes exposed through the control interface are combinations of these setpoints that lead to a valid control input:
-| SetpointType | Position | Speed | 스로틀 | Attitude | 주파수 | Steering | Control Flags |
+| SetpointType | Position | Speed | Throttle | Attitude | 주파수 | Steering | Control Flags |
| ----------------------------------------------------------------------------------------------------------------------------------- | --------------------------- | ------------------------------------------------ | ------------------------------------------------ | ------------------------------------------------ | ------------------------------------------------ | ------------------------------------------------ | ------------------------------------------------------ |
| [RoverPosition](https://auterion.github.io/px4-ros2-interface-lib/classpx4__ros2_1_1RoverPositionSetpointType.html#details) | ✓ | (✓) | (✓) | (✓) | (✓) | (✓) | Position, Velocity, Attitude, Rate, Control Allocation |
| [RoverSpeedAttitude](https://auterion.github.io/px4-ros2-interface-lib/classpx4__ros2_1_1RoverSpeedAttitudeSetpointType.html) | | ✓ | (✓) | ✓ | (✓) | (✓) | Velocity, Attitude, Rate, Control Allocation |
diff --git a/docs/ko/sensor/barometer.md b/docs/ko/sensor/barometer.md
index 77195062df..bda05dfcb3 100644
--- a/docs/ko/sensor/barometer.md
+++ b/docs/ko/sensor/barometer.md
@@ -65,7 +65,7 @@ This calibration is controlled by the [SENS_BAR_AUTOCAL](../advanced_config/para
The algorithm monitors GNSS quality, collects altitude differences over a 2-second filtered window, and verifies stability within 4m tolerance.
Once stable, it uses binary search to calculate pressure offsets that align baro altitude with GNSS altitude (0.1m precision), then applies the offset to all sensors and saves the parameters.
-참고:
+Notes:
- **EKF Independence**: GNSS-baro calibration operates independently of EKF2 altitude fusion settings.
- **Execution Timing**: Calibration runs even when [EKF2_GPS_CTRL](../advanced_config/parameter_reference.md#EKF2_GPS_CTRL) altitude fusion is disabled.
diff --git a/docs/ko/sensor/optical_flow.md b/docs/ko/sensor/optical_flow.md
index eb14c0e902..638b5a0a6c 100644
--- a/docs/ko/sensor/optical_flow.md
+++ b/docs/ko/sensor/optical_flow.md
@@ -34,6 +34,12 @@ The information is written to the corresponding uORB topics: [DistanceSensor](..
| 우측 | - X |
| 좌측 | + X |
+:::info
+The integrated flow values are **angular measurements** (radians) representing rotation of the image about the sensor's body axes using the right-hand convention.
+They are _not_ translational displacements along those axes, which is why forward vehicle movement (along X) appears in the Y flow axis, and rightward movement (along Y) appears in the X flow axis.
+Specifically, forward movement causes the ground image to rotate about the Y axis (+ Y), while rightward movement causes a negative rotation about the X axis (- X).
+:::
+
광류 데이터는 다른 속도 데이터 소스와 융합됩니다.
The approach used for fusing sensor data and any offsets from the center of the vehicle must be configured in the [estimator](#estimators).
diff --git a/docs/ko/sim_sih/index.md b/docs/ko/sim_sih/index.md
index a62ec285b5..144a815a1e 100644
--- a/docs/ko/sim_sih/index.md
+++ b/docs/ko/sim_sih/index.md
@@ -308,7 +308,7 @@ For all variants of SIH:
:::
-- `param set-default EKF2_GPS_DELAY 0` to improve state estimator performance (the assumption of instant GPS measurements would normally be unrealistic, but is accurate for SIH).
+- `param set-default SENS_GPS0_DELAY 0` to improve state estimator performance (the assumption of instant GPS measurements would normally be unrealistic, but is accurate for SIH).
For SIH on FC:
diff --git a/docs/ko/test_cards/mc_08_dshot.md b/docs/ko/test_cards/mc_08_dshot.md
index 0df821802b..0ac50fe159 100644
--- a/docs/ko/test_cards/mc_08_dshot.md
+++ b/docs/ko/test_cards/mc_08_dshot.md
@@ -7,7 +7,7 @@ Regression test for DSHOT working with PX4
## Preflight
- Ensure vehicle is using a DSHOT ESC
-- Parameter [DSHOT_BIDIR_EN](../advanced_config/parameter_reference.md#DSHOT_BIDIR_EN) is enabled
+- Bidirectional DShot is configured (BDShot150/300/600 selected in [Actuator Configuration](../config/actuators.md))
- Parameter [DSHOT_TEL_CFG](../advanced_config/parameter_reference.md#DSHOT_TEL_CFG) is configured (if ESC supports telemetry)
- Parameter [SDLOG_PROFILE](../advanced_config/parameter_reference.md#SDLOG_PROFILE) has Debug (`5`) checked