diff --git a/Tools/msg/generate_msg_docs.py b/Tools/msg/generate_msg_docs.py index 379cbf04c3..e373bf2afd 100755 --- a/Tools/msg/generate_msg_docs.py +++ b/Tools/msg/generate_msg_docs.py @@ -36,14 +36,14 @@ class Error: if 'trailing_whitespace' == self.type: - if self.issueString.strip(): + if self.issueString.strip(): print(f"NOTE: Line has trailing whitespace ({self.message}: {self.linenumber}): {self.issueString}") else: print(f"NOTE: Line has trailing whitespace ({self.message}: {self.linenumber})") elif 'leading_whitespace_field_or_constant' == self.type: - print(f"NOTE: Whitespace before field or constant ({self.message}: {self.linenumber}): {self.issueString}") + print(f"NOTE: Whitespace before field or constant ({self.message}: {self.linenumber}): {self.issueString}") elif 'field_or_constant_has_multiple_whitepsace' == self.type: - print(f"NOTE: Field/constant has more than one sequential whitespace character ({self.message}: {self.linenumber}): {self.issueString}") + print(f"NOTE: Field/constant has more than one sequential whitespace character ({self.message}: {self.linenumber}): {self.issueString}") elif 'empty_start_line' == self.type: print(f"NOTE: Empty line at start of file ({self.message}: {self.linenumber})") elif 'internal_comment' == self.type: @@ -191,7 +191,7 @@ class CommandParam: if not "unknown_frame" in self.parent.errors: self.parent.errors["unknown_frame"] = [] self.parent.errors["unknown_frame"].append(error) - """ + """ else: print(f"WARNING: Unhandled metadata in message comment: {item}") # TODO - report errors for different kinds of metadata @@ -202,9 +202,9 @@ class CommandParam: if item == "-": unit = "" - + if unit and unit not in self.units: - self.units.append(unit) + self.units.append(unit) if unit not in ALLOWED_UNITS: invalid_units.add(unit) @@ -221,7 +221,7 @@ class CommandParam: print(f" paramText: {self.paramText}\n unit: {self.units}\n enums: {self.enums}\n lineNumber: {self.lineNumber}\n range: {self.range}\n minValue: {self.minValue}\n maxValue: {self.maxValue}\n invalidValue: {self.invalidValue}\n frameValue: {self.frameValue}\n parent: {self.parent}\n ") - + class CommandConstant: """ Represents a constant that is a command definition. @@ -252,9 +252,9 @@ class CommandConstant: if not self.comment: # This is an bug for a command #print(f"Debug WARNING: NO COMMENT in CommandConstant: {self.name}") ## TODO make into ERROR return - + # Parse command comment to get the description and parameters. - # print(f"Debug CommandConstant: {self.comment}") + # print(f"Debug CommandConstant: {self.comment}") if not "|" in self.comment: # This is an error for a command constant error = Error("command_no_params_pipes", self.parent.filename, self.line_number, self.comment, self.name) @@ -263,7 +263,7 @@ class CommandConstant: self.parent.errors["command_no_params_pipes"] = [] self.parent.errors["command_no_params_pipes"].append(error) return - + # Split on pipes commandSplit = self.comment.split("|") if len(commandSplit) < 9: @@ -318,7 +318,7 @@ Param | Units | Range/Enum | Description output+=f"{i} | {", ".join(val.units)}|{', '.join(f"[{e}](#{e})" for e in val.enums)}{rangeVal} | {val.description}\n" else: - output+=f"{i} | | | ?\n" + output+=f"{i} | | | ?\n" output+=f"\n" return output @@ -419,7 +419,7 @@ class MessageField: class UORBMessage: """ Represents a whole message, including fields, enums, commands, constants. - The parser function delegates the parsing of each part of the message to + The parser function delegates the parsing of each part of the message to more appropriate classes, once the specific type of line has been identified. """ @@ -511,11 +511,11 @@ pageClass: is-wide-page markdown += "--- | --- | --- |---\n" for name, command in self.commandConstants.items(): description = f" {command.comment} " if enum.comment else " " - markdown += f' {name} | `{command.type}` | {command.value} |{description}\n' + markdown += f' {name} | `{command.type}` | {command.value} |{description}\n' """ for commandConstant in self.commandConstants.values(): #print(commandConstant) - markdown += commandConstant.markdown_out() + markdown += commandConstant.markdown_out() # Generate enum docs if len(self.enums) > 0: @@ -529,7 +529,7 @@ pageClass: is-wide-page for enumValueName, enumValue in enum.enumValues.items(): description = f" {enumValue.comment} " if enumValue.comment else " " - markdown += f' {enumValueName} | `{enumValue.type}` | {enumValue.value} |{description}\n' + markdown += f' {enumValueName} | `{enumValue.type}` | {enumValue.value} |{description}\n' # Generate table for constants docs if len(self.constantFields) > 0: @@ -708,7 +708,7 @@ pageClass: is-wide-page if stripped_line.startswith("#"): # Its an internal comment stripped_line=stripped_line[1:].strip() - + if stripped_line: #print(f"{self.filename}: Internal comment: [{line_number}]\n {line}") error = Error("internal_comment", self.filename, line_number, line) @@ -723,7 +723,7 @@ pageClass: is-wide-page self.errors["internal_comment_empty"].append(error) #pass # Empty comment continue - + # Must be a field or a comment. self.handleField(line, line_number, parentMessage=self) diff --git a/docs/en/SUMMARY.md b/docs/en/SUMMARY.md index 1306bcb72c..18c4ec34ea 100644 --- a/docs/en/SUMMARY.md +++ b/docs/en/SUMMARY.md @@ -529,6 +529,8 @@ - [LongitudinalControlConfiguration](msg_docs/LongitudinalControlConfiguration.md) - [ManualControlSetpoint](msg_docs/ManualControlSetpoint.md) - [ModeCompleted](msg_docs/ModeCompleted.md) + - [RaptorInput](msg_docs/RaptorInput.md) + - [RaptorStatus](msg_docs/RaptorStatus.md) - [RegisterExtComponentReply](msg_docs/RegisterExtComponentReply.md) - [RegisterExtComponentRequest](msg_docs/RegisterExtComponentRequest.md) - [TrajectorySetpoint](msg_docs/TrajectorySetpoint.md) @@ -750,6 +752,7 @@ - [VehicleThrustSetpoint](msg_docs/VehicleThrustSetpoint.md) - [VehicleTorqueSetpoint](msg_docs/VehicleTorqueSetpoint.md) - [VelocityLimits](msg_docs/VelocityLimits.md) + - [Vtx](msg_docs/Vtx.md) - [WheelEncoders](msg_docs/WheelEncoders.md) - [Wind](msg_docs/Wind.md) - [YawEstimatorStatus](msg_docs/YawEstimatorStatus.md) @@ -763,8 +766,11 @@ - [RegisterExtComponentReplyV0](msg_docs/RegisterExtComponentReplyV0.md) - [RegisterExtComponentRequestV0](msg_docs/RegisterExtComponentRequestV0.md) - [VehicleAttitudeSetpointV0](msg_docs/VehicleAttitudeSetpointV0.md) + - [VehicleCommandAckV0](msg_docs/VehicleCommandAckV0.md) + - [VehicleGlobalPositionV0](msg_docs/VehicleGlobalPositionV0.md) - [VehicleLocalPositionV0](msg_docs/VehicleLocalPositionV0.md) - [VehicleStatusV0](msg_docs/VehicleStatusV0.md) + - [VehicleStatusV1](msg_docs/VehicleStatusV1.md) - [MAVLink Messaging](mavlink/index.md) - [Adding Messages](mavlink/adding_messages.md) - [Streaming Messages](mavlink/streaming_messages.md) diff --git a/docs/en/advanced_config/tuning_the_ecl_ekf.md b/docs/en/advanced_config/tuning_the_ecl_ekf.md index 6dc431532e..c59d2913f2 100644 --- a/docs/en/advanced_config/tuning_the_ecl_ekf.md +++ b/docs/en/advanced_config/tuning_the_ecl_ekf.md @@ -594,7 +594,7 @@ When this has been done, the performance metadata files can be processed to prov - Attitude output data is found in the [VehicleAttitude](https://github.com/PX4/PX4-Autopilot/blob/main/msg/versioned/VehicleAttitude.msg) message. - Local position output data is found in the [VehicleLocalPosition](https://github.com/PX4/PX4-Autopilot/blob/main/msg/versioned/VehicleLocalPosition.msg) message. - Global \(WGS-84\) output data is found in the [VehicleGlobalPosition](https://github.com/PX4/PX4-Autopilot/blob/main/msg/versioned/VehicleGlobalPosition.msg) message. -- Wind velocity output data is found in the [Wind.msg](https://github.com/PX4/PX4-Autopilot/blob/main/msg/Wind.msg) message. +- Wind velocity output data is found in the [AirspeedWind.msg](https://github.com/PX4/PX4-Autopilot/blob/main/msg/AirspeedWind.msg) message. ### States diff --git a/docs/en/airframes/airframe_reference.md b/docs/en/airframes/airframe_reference.md index 2067c8f6a5..dc69aff871 100644 --- a/docs/en/airframes/airframe_reference.md +++ b/docs/en/airframes/airframe_reference.md @@ -402,7 +402,7 @@ div.frame_variant td, div.frame_variant th {
SYS_AUTOSTART = 4050
SYS_AUTOSTART = 4052
SYS_AUTOSTART = 50000
SYS_AUTOSTART = 50001
@@ -8,7 +8,7 @@ A complete RTK system consists of at least two C-RTK modules \(one for the base
## Where to Buy
- [cuav taobao](https://item.taobao.com/item.htm?id=565380634341&spm=2014.21600712.0.0)
-- [cuav aliexpress](https://www.aliexpress.com/store/product/CUAV-NEW-Flight-Controller-GPS-C-RTK-differential-positioning-navigation-module-GPS-for-PIX4-Pixhawk-pixhack/3257035_32853894248.html?spm=2114.12010608.0.0.75592fadQKPPEn)
+- [cuav aliexpress](https://www.aliexpress.com/item/32853894248.html?spm=2114.12010608.0.0.75592fadQKPPEn)
## Configuration
diff --git a/docs/en/gps_compass/rtk_gps_cuav_c-rtk2.md b/docs/en/gps_compass/rtk_gps_cuav_c-rtk2.md
index 9a75f479d0..bb8c4630e3 100644
--- a/docs/en/gps_compass/rtk_gps_cuav_c-rtk2.md
+++ b/docs/en/gps_compass/rtk_gps_cuav_c-rtk2.md
@@ -1,6 +1,6 @@
# CUAV C-RTK2 GNSS Module (RTK/PPK)
-The [CUAV C-RTK2 receiver](https://www.cuav.net/en/c_rtk_9ps/) is a high-performance PPK/RTK positioning module created by CUAV for professional applications such as drone aerial surveying and mapping.
+The [CUAV C-RTK2 receiver](https://www.cuav.net/en/c-rtk-9ps-en/) is a high-performance PPK/RTK positioning module created by CUAV for professional applications such as drone aerial surveying and mapping.
It has a high-precision IMU and positioning module, and can reduce the number of required [control points](https://www.youtube.com/watch?v=3k7v5aXyuKQ) by more than to 80%.
In addition to surveying/mapping, it is suitable for many other use-cases, including: agricultural plant protection and drone swarms.
@@ -18,7 +18,7 @@ In addition to surveying/mapping, it is suitable for many other use-cases, inclu
## Where to Buy
-- [CUAV Store](https://store.cuav.net/index.php?route=product/product&product_id=159)
+- [CUAV Store](https://store.cuav.net/?route=product%2Fproduct&product_id=159)
- [CUAV aliexpress](https://pt.aliexpress.com/item/1005003754165772.html?spm=a2g0o.store_pc_groupList.8148356.13.2f893550i0NE4o)
# Quick Summary
diff --git a/docs/en/gps_compass/rtk_gps_datagnss_nano_hrtk.md b/docs/en/gps_compass/rtk_gps_datagnss_nano_hrtk.md
index daf50ca963..ab8f49c6ca 100644
--- a/docs/en/gps_compass/rtk_gps_datagnss_nano_hrtk.md
+++ b/docs/en/gps_compass/rtk_gps_datagnss_nano_hrtk.md
@@ -90,7 +90,7 @@ Note that for the base we recommend the [NANO RTK Receiver](https://www.datagnss

-See to [How to setup Base station](https://wiki.datagnss.com/index.php/GEM1305-autopilot#Base_station_setup) for information on how to configure the module for use as a base station (not including step 6 and later, for which you would QGroundControl instead of Mission Planner).
+See to [How to setup Base station](https://docs.datagnss.com/#Base_station_setup) for information on how to configure the module for use as a base station (not including step 6 and later, for which you would QGroundControl instead of Mission Planner).
### Rover Setup (PX4)
@@ -111,13 +111,12 @@ GPS and RTK configuration on PX4 via _QGroundControl_ is plug and play (see [RTK
## Resources
-- [NANO RTK Receiver 2D drawing file](https://wiki.datagnss.com/images/3/31/EVK-DG-1206_V.2.0.pdf)
- [NANO HRTK Receiver Wiki](https://docs.datagnss.com/gnss/rtk_receiver/NANO/nano-helix-rtk/) (DATAGNSS WiKi)
- [HED-10L Heading RTK Receiver](https://docs.datagnss.com/gnss/rtk_receiver/HED-10L/)
## More information
-- [NANO RTK Receiver](https://docs.datagnss.com/gnss/rtk_receiver/NANO/nano-rtk-receiver)
+- [NANO RTK Receiver](https://docs.datagnss.com/gnss/rtk_receiver/NANO/nano-rtk-receiver/)
- [HELIX Antenna for RTK](https://www.datagnss.com/collections/rtk-antenna/products/smart-helix-antenna)
- [RTK Antenna AGR6302G](https://www.datagnss.com/collections/rtk-antenna/products/antenna-agr6302g)
- [AT400 RTK Antenna](https://www.datagnss.com/collections/rtk-antenna/products/at400-multi-band-antenna-for-rtk)
diff --git a/docs/en/gps_compass/rtk_gps_gem1305.md b/docs/en/gps_compass/rtk_gps_gem1305.md
index 1625484731..4757694dd0 100644
--- a/docs/en/gps_compass/rtk_gps_gem1305.md
+++ b/docs/en/gps_compass/rtk_gps_gem1305.md
@@ -93,7 +93,7 @@ Note that for the base we recommend the [NANO RTK Receiver](https://www.datagnss
-See to [How to setup Base station](https://wiki.datagnss.com/index.php/GEM1305-autopilot#Base_station_setup) for information on how to configure the module for use as a base station (not including step 6 and later, for which you would QGroundControl instead of Mission Planner).
+See to [How to setup Base station](https://docs.datagnss.com/#Base_station_setup) for information on how to configure the module for use as a base station (not including step 6 and later, for which you would QGroundControl instead of Mission Planner).
### Rover Setup (PX4)
@@ -115,14 +115,13 @@ GPS and RTK configuration on PX4 via _QGroundControl_ is plug and play (see [RTK
## Resources
-- [NANO RTK Receiver 2D drawing file](https://wiki.datagnss.com/images/3/31/EVK-DG-1206_V.2.0.pdf)
- [GEM1305 Wiki](https://docs.datagnss.com/gnss/rtk_receiver/GEM1305/) (DATAGNSS WiKi)
- [HED-10L Heading RTK Receiver](https://docs.datagnss.com/gnss/rtk_receiver/HED-10L/)
- [NANO HRTK Receiver](https://docs.datagnss.com/gnss/rtk_receiver/NANO/nano-helix-rtk/)
## More information
-- [NANO RTK Receiver](https://www.datagnss.com/collections/evk/products/tau951m-1312-tiny-evk)
+- [NANO RTK Receiver](https://www.datagnss.com/products/tau951m-1312-tiny-evk)
- [HELIX Antenna for RTK](https://www.datagnss.com/collections/rtk-antenna/products/smart-helix-antenna)
- [RTK Antenna AGR6302G](https://www.datagnss.com/collections/rtk-antenna/products/antenna-agr6302g)
- [AT400 RTK Antenna](https://www.datagnss.com/collections/rtk-antenna/products/at400-multi-band-antenna-for-rtk)
diff --git a/docs/en/gps_compass/rtk_gps_holybro_unicore_um982.md b/docs/en/gps_compass/rtk_gps_holybro_unicore_um982.md
index 8d5b155e1a..09848e3b3e 100644
--- a/docs/en/gps_compass/rtk_gps_holybro_unicore_um982.md
+++ b/docs/en/gps_compass/rtk_gps_holybro_unicore_um982.md
@@ -1,10 +1,10 @@
# Holybro H-RTK Unicore UM982 GPS
-The [Holybro H-RTK Unicore UM982 GPS](https://holybro.com/products/h-rtk-um982) is an multi-band high-precision [RTK GNSS System](../gps_compass/rtk_gps.md) launched by Holybro.
+The [Holybro H-RTK Unicore UM982 GPS](https://holybro.com/products/h-rtk-unicore-um982) is an multi-band high-precision [RTK GNSS System](../gps_compass/rtk_gps.md) launched by Holybro.

-This module is based on the [Unicore UM982 Chip](https://en.unicorecomm.com/products/detail/24), which supports RTK positioning and dual-antenna heading calculation.
+This module is based on the [Unicore UM982 Chip](https://en.unicore.com/products/dual-antenna-gnss-um982/), which supports RTK positioning and dual-antenna heading calculation.
This means that it can generate a moving baseline headline/yaw determinations for autopilots with just one GPS module and dual antennas - a magnetometer is not needed.
Unlike when using a module such as the U-blox F9P, where you would need [two U-blox F9P modules to compute a heading angle](../gps_compass/u-blox_f9p_heading.md), with the Unicore UM982 GPS, you only need one GPS module!
@@ -20,7 +20,7 @@ Additional technical information can be found at [Holybro Technical Documentatio
## Where to Buy
-- [Holybro Website](https://holybro.com/products/h-rtk-um982)
+- [Holybro Website](https://holybro.com/products/h-rtk-unicore-um982)
## Wiring
diff --git a/docs/en/gps_compass/u-blox_f9p_heading.md b/docs/en/gps_compass/u-blox_f9p_heading.md
index 586508d611..7e7f1dc97e 100644
--- a/docs/en/gps_compass/u-blox_f9p_heading.md
+++ b/docs/en/gps_compass/u-blox_f9p_heading.md
@@ -10,7 +10,7 @@ This feature works on F9P devices that support CAN or expose the GPS UART2 port.
The following devices are supported:
- [ARK RTK GPS](https://arkelectron.com/product/ark-rtk-gps/) (arkelectron.com)
-- [SparkFun GPS-RTK2 Board - ZED-F9P](https://www.sparkfun.com/products/15136) (www.sparkfun.com)
+- [SparkFun GPS-RTK2 Board - ZED-F9P](https://www.sparkfun.com/sparkfun-gps-rtk2-board-zed-f9p-qwiic-gps-15136.html) (www.sparkfun.com)
- [SIRIUS RTK GNSS ROVER (F9P)](https://store-drotek.com/911-sirius-rtk-gnss-rover-f9p.html) (store-drotek.com)
- [mRo u-blox ZED-F9 RTK L1/L2 GPS](https://store.mrobotics.io/product-p/m10020d.htm) (store.mrobotics.io)
- [Holybro H-RTK F9P Helical or Base](https://holybro.com/products/h-rtk-f9p-gnss-series) (Holybro Store)
diff --git a/docs/en/hardware/board_support_guide.md b/docs/en/hardware/board_support_guide.md
index dd9722e805..24e12c7782 100644
--- a/docs/en/hardware/board_support_guide.md
+++ b/docs/en/hardware/board_support_guide.md
@@ -93,7 +93,7 @@ _New_ experimental boards are allocated [VER and REV IDs](#ver_rev_id) based on
This category includes all boards that aren't supported by the PX4 project or a manufacturer, and that fall outside the"experimental" support.
- Board is somewhat compatible on paper with something we already support, and it would take minimal effort to raise it to "experimental", but neither the dev-team or the manufacturer are currently pursuing this
-- Manufacturer/Owner of hardware violates our [Code of Conduct](https://discuss.px4.io/t/code-of-conduct/13655)
+- Manufacturer/Owner of hardware violates our [Code of Conduct](https://discuss.px4.io/t/px4-community-code-of-conduct/13655)
- Closed source, where any of the necessary tools/libs/drivers/etc needed to add support for a board is deemed incompatible due to licensing restrictions
- Board doesn't meet minimum requirements outlined in the General requirements
diff --git a/docs/en/log/flight_log_analysis.md b/docs/en/log/flight_log_analysis.md
index 88073f60c2..978ab09e60 100644
--- a/docs/en/log/flight_log_analysis.md
+++ b/docs/en/log/flight_log_analysis.md
@@ -156,7 +156,7 @@ Key features:
### PX4Tools
[PX4Tools](https://github.com/dronecrew/px4tools) is a log analysis toolbox for the PX4 autopilot written in Python.
-The recommended installation procedure is to use [anaconda3](https://conda.io/docs/index.html). See [px4tools github page](https://github.com/dronecrew/px4tools) for details.
+The recommended installation procedure is to use [anaconda3](https://docs.conda.io/docs/index.html). See [px4tools github page](https://github.com/dronecrew/px4tools) for details.
Key features:
diff --git a/docs/en/mavlink/index.md b/docs/en/mavlink/index.md
index fd364c33a2..887bee66f5 100644
--- a/docs/en/mavlink/index.md
+++ b/docs/en/mavlink/index.md
@@ -77,7 +77,7 @@ You will need to work with the [MAVLink team](https://mavlink.io/en/contributing
:::
PX4 includes the [mavlink/mavlink](https://github.com/mavlink/mavlink) repo as a submodule under [/src/modules/mavlink](https://github.com/PX4/PX4-Autopilot/tree/main/src/modules/mavlink).
-This contains XML definition files in [/mavlink/messages/1.0/](https://github.com/mavlink/mavlink/blob/master/message_definitions/v1.0/).
+This contains XML definition files in [/mavlink/messages/1.0/](https://github.com/mavlink/mavlink/tree/master/message_definitions/v1.0).
The build toolchain generates the MAVLink 2 C header files at build time.
The XML file for which headers files are generated may be defined in the [PX4 kconfig board configuration](../hardware/porting_guide_config.md#px4-board-configuration-kconfig) on a per-board basis, using the variable `CONFIG_MAVLINK_DIALECT`:
diff --git a/docs/en/middleware/uorb.md b/docs/en/middleware/uorb.md
index 401f3329b8..5c29c36665 100644
--- a/docs/en/middleware/uorb.md
+++ b/docs/en/middleware/uorb.md
@@ -145,8 +145,8 @@ Versioned messages include an additional field `uint32 MESSAGE_VERSION = x`, whe
Versioned and non-versioned messages are separated in the file system:
- Non-versioned topic message files and [server service](../ros2/user_guide.md#px4-ros-2-service-servers) message files remain in the [`msg/`](https://github.com/PX4/PX4-Autopilot/tree/main/msg) and [`srv/`](https://github.com/PX4/PX4-Autopilot/tree/main/srv) directories, respectively.
-- The current (highest) version of message files are located in the `versioned` subfolders ([`msg/versioned`](https://github.com/PX4/PX4-Autopilot/tree/main/msg/versioned) and [`srv/versioned`](https://github.com/PX4/PX4-Autopilot/tree/main/srv/versioned)).
-- Older versions of messages are stored in nested `msg/px4_msgs_old/` subfolders ([`msg/px4_msgs_old/msg/`](https://github.com/PX4/PX4-Autopilot/tree/main/msg/px4_msgs_old/msg) and [`msg/px4_msgs_old/srv/`](https://github.com/PX4/PX4-Autopilot/tree/main/msg/px4_msgs_old/srv)).
+- The current (highest) version of message files are located in the `versioned` subfolders ([`msg/versioned`](https://github.com/PX4/PX4-Autopilot/tree/main/msg/versioned) and [`srv/versioned`](https://github.com/PX4/PX4-Autopilot/tree/main/msg/versioned)).
+- Older versions of messages are stored in nested `msg/px4_msgs_old/` subfolders ([`msg/px4_msgs_old/msg/`](https://github.com/PX4/PX4-Autopilot/tree/main/msg/px4_msgs_old/msg) and [`msg/px4_msgs_old/srv/`](https://github.com/PX4/PX4-Autopilot/tree/main/msg/px4_msgs_old)).
The files are also renamed with a suffix to indicate their version number.
::: tip
diff --git a/docs/en/modules/modules_driver_ins.md b/docs/en/modules/modules_driver_ins.md
index 844aa645bb..b5e8a1f883 100644
--- a/docs/en/modules/modules_driver_ins.md
+++ b/docs/en/modules/modules_driver_ins.md
@@ -9,7 +9,7 @@ Source: [drivers/ins/microstrain](https://github.com/PX4/PX4-Autopilot/tree/main
MicroStrain by HBK Inertial Sensor Driver.
Currently supports the following sensors:
--[CV7-AR](https://www.hbkworld.com/en/products/transducers/inertial-sensors/vertical-reference-units--vru-/3dm-cv7-ar) -[CV7-AHRS](https://www.hbkworld.com/en/products/transducers/inertial-sensors/attitude-and-heading-reference-systems--ahrs-/3dm-cv7-ahrs) -[CV7-INS](https://www.hbkworld.com/en/products/transducers/inertial-sensors/inertial-navigation-systems--ins-/3dm-cv7-ins) -[CV7-GNSS/INS](https://www.hbkworld.com/en/products/transducers/inertial-sensors/inertial-navigation-systems--ins-/3dm-cv7-gnss-ins)
+-[CV7-AR](https://www.hbkworld.com/en/products/transducers/inertial-sensors/vertical-reference/3dm-cv7-ar) -[CV7-AHRS](https://www.hbkworld.com/en/products/transducers/inertial-sensors/attitude-and-heading-reference-systems--ahrs-/3dm-cv7-ahrs) -[CV7-INS](https://www.hbkworld.com/en/products/transducers/inertial-sensors/inertial-navigation-systems--ins-/3dm-cv7-ins) -[CV7-GNSS/INS](https://www.hbkworld.com/en/products/transducers/inertial-sensors/inertial-navigation-systems--ins-/3dm-cv7-gnss-ins)
This driver is not included in the firmware by default.
Include the module in firmware by setting the
diff --git a/docs/en/msg_docs/ActionRequest.md b/docs/en/msg_docs/ActionRequest.md
index 9d3bad8a5f..897e092ab1 100644
--- a/docs/en/msg_docs/ActionRequest.md
+++ b/docs/en/msg_docs/ActionRequest.md
@@ -25,26 +25,26 @@ Request are published by `manual_control` and subscribed by the `commander` and
### ACTION {#ACTION}
-| Name | Type | Value | Description |
-| ------------------------------------------------------------------------------------------- | ------- | ----- | --------------------------------------------------------------------- |
-| ACTION_DISARM | `uint8` | 0 | Disarm vehicle |
-| ACTION_ARM | `uint8` | 1 | Arm vehicle |
-| ACTION_TOGGLE_ARMING | `uint8` | 2 | Toggle arming |
-| ACTION_UNKILL | `uint8` | 3 | Revert a kill action |
-| ACTION_KILL | `uint8` | 4 | Kill vehicle (instantly stop the motors) |
-| ACTION_SWITCH_MODE | `uint8` | 5 | Switch mode. The target mode is set in the `mode` field. |
-| ACTION_VTOL_TRANSITION_TO_MULTICOPTER | `uint8` | 6 | Transition to hover flight |
-| ACTION_VTOL_TRANSITION_TO_FIXEDWING | `uint8` | 7 | Transition to fast forward flight |
-| ACTION_TERMINATION | `uint8` | 8 | Irreversibly output failsafe values on all outputs, trigger parachute |
+| Name | Type | Value | Description |
+| ----------------------------------------------------------------------------------------- | ------- | ----- | --------------------------------------------------------------------- |
+| ACTION_DISARM | `uint8` | 0 | Disarm vehicle |
+| ACTION_ARM | `uint8` | 1 | Arm vehicle |
+| ACTION_TOGGLE_ARMING | `uint8` | 2 | Toggle arming |
+| ACTION_UNKILL | `uint8` | 3 | Revert a kill action |
+| ACTION_KILL | `uint8` | 4 | Kill vehicle (instantly stop the motors) |
+| ACTION_SWITCH_MODE | `uint8` | 5 | Switch mode. The target mode is set in the `mode` field. |
+| ACTION_VTOL_TRANSITION_TO_MULTICOPTER | `uint8` | 6 | Transition to hover flight |
+| ACTION_VTOL_TRANSITION_TO_FIXEDWING | `uint8` | 7 | Transition to fast forward flight |
+| ACTION_TERMINATION | `uint8` | 8 | Irreversibly output failsafe values on all outputs, trigger parachute |
### SOURCE {#SOURCE}
-| Name | Type | Value | Description |
-| --------------------------------------------------------- | ------- | ----- | --------------------------------------------------------------- |
-| SOURCE_STICK_GESTURE | `uint8` | 0 | Triggered by holding the sticks in a certain position |
-| SOURCE_RC_SWITCH | `uint8` | 1 | Triggered by an RC switch moving into a certain position |
-| SOURCE_RC_BUTTON | `uint8` | 2 | Triggered by a momentary button on the RC being pressed or held |
-| SOURCE_RC_MODE_SLOT | `uint8` | 3 | Mode change through the RC mode selection mechanism |
+| Name | Type | Value | Description |
+| ------------------------------------------------------- | ------- | ----- | --------------------------------------------------------------- |
+| SOURCE_STICK_GESTURE | `uint8` | 0 | Triggered by holding the sticks in a certain position |
+| SOURCE_RC_SWITCH | `uint8` | 1 | Triggered by an RC switch moving into a certain position |
+| SOURCE_RC_BUTTON | `uint8` | 2 | Triggered by a momentary button on the RC being pressed or held |
+| SOURCE_RC_MODE_SLOT | `uint8` | 3 | Mode change through the RC mode selection mechanism |
## Source Message
diff --git a/docs/en/msg_docs/AirspeedValidated.md b/docs/en/msg_docs/AirspeedValidated.md
index 4b163411ca..8c7ab58080 100644
--- a/docs/en/msg_docs/AirspeedValidated.md
+++ b/docs/en/msg_docs/AirspeedValidated.md
@@ -30,14 +30,14 @@ Used by controllers, estimators and for airspeed reporting to operator.
### SOURCE {#SOURCE}
-| Name | Type | Value | Description |
-| ----------------------------------------------------------------- | ------ | ----- | ----------------------- |
-| SOURCE_DISABLED | `int8` | -1 | Disabled |
-| SOURCE_GROUND_MINUS_WIND | `int8` | 0 | Ground speed minus wind |
-| SOURCE_SENSOR_1 | `int8` | 1 | Sensor 1 |
-| SOURCE_SENSOR_2 | `int8` | 2 | Sensor 2 |
-| SOURCE_SENSOR_3 | `int8` | 3 | Sensor 3 |
-| SOURCE_SYNTHETIC | `int8` | 4 | Synthetic airspeed |
+| Name | Type | Value | Description |
+| --------------------------------------------------------------- | ------ | ----- | ----------------------- |
+| SOURCE_DISABLED | `int8` | -1 | Disabled |
+| SOURCE_GROUND_MINUS_WIND | `int8` | 0 | Ground speed minus wind |
+| SOURCE_SENSOR_1 | `int8` | 1 | Sensor 1 |
+| SOURCE_SENSOR_2 | `int8` | 2 | Sensor 2 |
+| SOURCE_SENSOR_3 | `int8` | 3 | Sensor 3 |
+| SOURCE_SYNTHETIC | `int8` | 4 | Synthetic airspeed |
## Constants
diff --git a/docs/en/msg_docs/ArmingCheckReply.md b/docs/en/msg_docs/ArmingCheckReply.md
index cdd777cf46..7b5c22fc7b 100644
--- a/docs/en/msg_docs/ArmingCheckReply.md
+++ b/docs/en/msg_docs/ArmingCheckReply.md
@@ -45,9 +45,9 @@ The message is not used by internal/FMU components, as their mode requirements a
### HEALTH_COMPONENT_INDEX {#HEALTH_COMPONENT_INDEX}
-| Name | Type | Value | Description |
-| ----------------------------------------------------------------------- | ------- | ----- | --------------------------------------------------------- |
-| HEALTH_COMPONENT_INDEX_NONE | `uint8` | 0 | Index of health component for which this response applies |
+| Name | Type | Value | Description |
+| --------------------------------------------------------------------- | ------- | ----- | --------------------------------------------------------- |
+| HEALTH_COMPONENT_INDEX_NONE | `uint8` | 0 | Index of health component for which this response applies |
## Constants
diff --git a/docs/en/msg_docs/AutotuneAttitudeControlStatus.md b/docs/en/msg_docs/AutotuneAttitudeControlStatus.md
index f8b2b2f2e9..61f732bf36 100644
--- a/docs/en/msg_docs/AutotuneAttitudeControlStatus.md
+++ b/docs/en/msg_docs/AutotuneAttitudeControlStatus.md
@@ -37,25 +37,25 @@ The rate_sp field is consumed by the controllers, while the remaining fields (mo
### STATE {#STATE}
-| Name | Type | Value | Description |
-| ------------------------------------------------------------------------------- | ------- | ----- | -------------------------------------------------------- |
-| STATE_IDLE | `uint8` | 0 | Idle (not running) |
-| STATE_INIT | `uint8` | 1 | Initialize filters and setup |
-| STATE_ROLL_AMPLITUDE_DETECTION | `uint8` | 2 | FW only: determine required excitation amplitude (roll) |
-| STATE_ROLL | `uint8` | 3 | Roll-axis excitation and model identification |
-| STATE_ROLL_PAUSE | `uint8` | 4 | Pause to return to level flight |
-| STATE_PITCH_AMPLITUDE_DETECTION | `uint8` | 5 | FW only: determine required excitation amplitude (pitch) |
-| STATE_PITCH | `uint8` | 6 | Pitch-axis excitation and model identification |
-| STATE_PITCH_PAUSE | `uint8` | 7 | Pause to return to level flight |
-| STATE_YAW_AMPLITUDE_DETECTION | `uint8` | 8 | FW only: determine required excitation amplitude (yaw) |
-| STATE_YAW | `uint8` | 9 | Yaw-axis excitation and model identification |
-| STATE_YAW_PAUSE | `uint8` | 10 | Pause to return to level flight |
-| STATE_VERIFICATION | `uint8` | 11 | Verify model and candidate gains |
-| STATE_APPLY | `uint8` | 12 | Apply gains |
-| STATE_TEST | `uint8` | 13 | Test gains in closed-loop |
-| STATE_COMPLETE | `uint8` | 14 | Tuning completed successfully |
-| STATE_FAIL | `uint8` | 15 | Tuning failed (model invalid or controller unstable) |
-| STATE_WAIT_FOR_DISARM | `uint8` | 16 | Waiting for disarm before finalizing |
+| Name | Type | Value | Description |
+| ----------------------------------------------------------------------------- | ------- | ----- | -------------------------------------------------------- |
+| STATE_IDLE | `uint8` | 0 | Idle (not running) |
+| STATE_INIT | `uint8` | 1 | Initialize filters and setup |
+| STATE_ROLL_AMPLITUDE_DETECTION | `uint8` | 2 | FW only: determine required excitation amplitude (roll) |
+| STATE_ROLL | `uint8` | 3 | Roll-axis excitation and model identification |
+| STATE_ROLL_PAUSE | `uint8` | 4 | Pause to return to level flight |
+| STATE_PITCH_AMPLITUDE_DETECTION | `uint8` | 5 | FW only: determine required excitation amplitude (pitch) |
+| STATE_PITCH | `uint8` | 6 | Pitch-axis excitation and model identification |
+| STATE_PITCH_PAUSE | `uint8` | 7 | Pause to return to level flight |
+| STATE_YAW_AMPLITUDE_DETECTION | `uint8` | 8 | FW only: determine required excitation amplitude (yaw) |
+| STATE_YAW | `uint8` | 9 | Yaw-axis excitation and model identification |
+| STATE_YAW_PAUSE | `uint8` | 10 | Pause to return to level flight |
+| STATE_VERIFICATION | `uint8` | 11 | Verify model and candidate gains |
+| STATE_APPLY | `uint8` | 12 | Apply gains |
+| STATE_TEST | `uint8` | 13 | Test gains in closed-loop |
+| STATE_COMPLETE | `uint8` | 14 | Tuning completed successfully |
+| STATE_FAIL | `uint8` | 15 | Tuning failed (model invalid or controller unstable) |
+| STATE_WAIT_FOR_DISARM | `uint8` | 16 | Waiting for disarm before finalizing |
## Source Message
diff --git a/docs/en/msg_docs/AuxGlobalPosition.md b/docs/en/msg_docs/AuxGlobalPosition.md
index 6cea6b906c..e612fc3a68 100644
--- a/docs/en/msg_docs/AuxGlobalPosition.md
+++ b/docs/en/msg_docs/AuxGlobalPosition.md
@@ -30,15 +30,15 @@ pseudolites, visual navigation, or other positioning system.
### SOURCE {#SOURCE}
-| Name | Type | Value | Description |
-| ----------------------------------------------------- | ------- | ----- | -------------- |
-| SOURCE_UNKNOWN | `uint8` | 0 | Unknown source |
-| SOURCE_GNSS | `uint8` | 1 | GNSS |
-| SOURCE_VISION | `uint8` | 2 | Vision |
-| SOURCE_PSEUDOLITES | `uint8` | 3 | Pseudolites |
-| SOURCE_TERRAIN | `uint8` | 4 | Terrain |
-| SOURCE_MAGNETIC | `uint8` | 5 | Magnetic |
-| SOURCE_ESTIMATOR | `uint8` | 6 | Estimator |
+| Name | Type | Value | Description |
+| --------------------------------------------------- | ------- | ----- | -------------- |
+| SOURCE_UNKNOWN | `uint8` | 0 | Unknown source |
+| SOURCE_GNSS | `uint8` | 1 | GNSS |
+| SOURCE_VISION | `uint8` | 2 | Vision |
+| SOURCE_PSEUDOLITES | `uint8` | 3 | Pseudolites |
+| SOURCE_TERRAIN | `uint8` | 4 | Terrain |
+| SOURCE_MAGNETIC | `uint8` | 5 | Magnetic |
+| SOURCE_ESTIMATOR | `uint8` | 6 | Estimator |
## Constants
diff --git a/docs/en/msg_docs/BatteryStatus.md b/docs/en/msg_docs/BatteryStatus.md
index a8997e8c77..787d18da16 100644
--- a/docs/en/msg_docs/BatteryStatus.md
+++ b/docs/en/msg_docs/BatteryStatus.md
@@ -59,45 +59,45 @@ Battery instance information is also logged and streamed in MAVLink telemetry.
### SOURCE {#SOURCE}
-| Name | Type | Value | Description |
-| ------------------------------------------------------- | ------- | ----- | ---------------------------------------------- |
-| SOURCE_POWER_MODULE | `uint8` | 0 | Power module (analog ADC or I2C power monitor) |
-| SOURCE_EXTERNAL | `uint8` | 1 | External (MAVLink, CAN, or external driver) |
-| SOURCE_ESCS | `uint8` | 2 | ESCs (via ESC telemetry) |
+| Name | Type | Value | Description |
+| ----------------------------------------------------- | ------- | ----- | ---------------------------------------------- |
+| SOURCE_POWER_MODULE | `uint8` | 0 | Power module (analog ADC or I2C power monitor) |
+| SOURCE_EXTERNAL | `uint8` | 1 | External (MAVLink, CAN, or external driver) |
+| SOURCE_ESCS | `uint8` | 2 | ESCs (via ESC telemetry) |
### WARNING {#WARNING}
-| Name | Type | Value | Description |
-| --------------------------------------------------- | ------- | ----- | -------------------------------------------- |
-| WARNING_NONE | `uint8` | 0 | No battery low voltage warning active |
-| WARNING_LOW | `uint8` | 1 | Low voltage warning |
-| WARNING_CRITICAL | `uint8` | 2 | Critical voltage, return / abort immediately |
-| WARNING_EMERGENCY | `uint8` | 3 | Immediate landing required |
-| WARNING_FAILED | `uint8` | 4 | Battery has failed completely |
+| Name | Type | Value | Description |
+| ------------------------------------------------- | ------- | ----- | -------------------------------------------- |
+| WARNING_NONE | `uint8` | 0 | No battery low voltage warning active |
+| WARNING_LOW | `uint8` | 1 | Low voltage warning |
+| WARNING_CRITICAL | `uint8` | 2 | Critical voltage, return / abort immediately |
+| WARNING_EMERGENCY | `uint8` | 3 | Immediate landing required |
+| WARNING_FAILED | `uint8` | 4 | Battery has failed completely |
### STATE {#STATE}
-| Name | Type | Value | Description |
-| ----------------------------------------------- | ------- | ----- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
-| STATE_UNHEALTHY | `uint8` | 6 | Battery is diagnosed to be defective or an error occurred, usage is discouraged / prohibited. Possible causes (faults) are listed in faults field |
-| STATE_CHARGING | `uint8` | 7 | Battery is charging |
+| Name | Type | Value | Description |
+| --------------------------------------------- | ------- | ----- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
+| STATE_UNHEALTHY | `uint8` | 6 | Battery is diagnosed to be defective or an error occurred, usage is discouraged / prohibited. Possible causes (faults) are listed in faults field |
+| STATE_CHARGING | `uint8` | 7 | Battery is charging |
### FAULT {#FAULT}
-| Name | Type | Value | Description |
-| ----------------------------------------------------------------------- | ------- | ----- | -------------------------------------------------------------------------------------------------------------- |
-| FAULT_DEEP_DISCHARGE | `uint8` | 0 | Battery has deep discharged |
-| FAULT_SPIKES | `uint8` | 1 | Voltage spikes |
-| FAULT_CELL_FAIL | `uint8` | 2 | One or more cells have failed |
-| FAULT_OVER_CURRENT | `uint8` | 3 | Over-current |
-| FAULT_OVER_TEMPERATURE | `uint8` | 4 | Over-temperature |
-| FAULT_UNDER_TEMPERATURE | `uint8` | 5 | Under-temperature fault |
-| FAULT_INCOMPATIBLE_VOLTAGE | `uint8` | 6 | Vehicle voltage is not compatible with this battery (batteries on same power rail should have similar voltage) |
-| FAULT_INCOMPATIBLE_FIRMWARE | `uint8` | 7 | Battery firmware is not compatible with current autopilot firmware |
-| FAULT_INCOMPATIBLE_MODEL | `uint8` | 8 | Battery model is not supported by the system |
-| FAULT_HARDWARE_FAILURE | `uint8` | 9 | Hardware problem |
-| FAULT_FAILED_TO_ARM | `uint8` | 10 | Battery had a problem while arming |
-| FAULT_COUNT | `uint8` | 11 | Counter. Keep this as last element |
+| Name | Type | Value | Description |
+| --------------------------------------------------------------------- | ------- | ----- | -------------------------------------------------------------------------------------------------------------- |
+| FAULT_DEEP_DISCHARGE | `uint8` | 0 | Battery has deep discharged |
+| FAULT_SPIKES | `uint8` | 1 | Voltage spikes |
+| FAULT_CELL_FAIL | `uint8` | 2 | One or more cells have failed |
+| FAULT_OVER_CURRENT | `uint8` | 3 | Over-current |
+| FAULT_OVER_TEMPERATURE | `uint8` | 4 | Over-temperature |
+| FAULT_UNDER_TEMPERATURE | `uint8` | 5 | Under-temperature fault |
+| FAULT_INCOMPATIBLE_VOLTAGE | `uint8` | 6 | Vehicle voltage is not compatible with this battery (batteries on same power rail should have similar voltage) |
+| FAULT_INCOMPATIBLE_FIRMWARE | `uint8` | 7 | Battery firmware is not compatible with current autopilot firmware |
+| FAULT_INCOMPATIBLE_MODEL | `uint8` | 8 | Battery model is not supported by the system |
+| FAULT_HARDWARE_FAILURE | `uint8` | 9 | Hardware problem |
+| FAULT_FAILED_TO_ARM | `uint8` | 10 | Battery had a problem while arming |
+| FAULT_COUNT | `uint8` | 11 | Counter. Keep this as last element |
## Constants
diff --git a/docs/en/msg_docs/BatteryStatusV0.md b/docs/en/msg_docs/BatteryStatusV0.md
index 65397eaab8..2dbe4a74fe 100644
--- a/docs/en/msg_docs/BatteryStatusV0.md
+++ b/docs/en/msg_docs/BatteryStatusV0.md
@@ -60,45 +60,45 @@ Battery instance information is also logged and streamed in MAVLink telemetry.
### SOURCE {#SOURCE}
-| Name | Type | Value | Description |
-| ------------------------------------------------------- | ------- | ----- | ---------------------------------------------- |
-| SOURCE_POWER_MODULE | `uint8` | 0 | Power module (analog ADC or I2C power monitor) |
-| SOURCE_EXTERNAL | `uint8` | 1 | External (MAVLink, CAN, or external driver) |
-| SOURCE_ESCS | `uint8` | 2 | ESCs (via ESC telemetry) |
+| Name | Type | Value | Description |
+| ----------------------------------------------------- | ------- | ----- | ---------------------------------------------- |
+| SOURCE_POWER_MODULE | `uint8` | 0 | Power module (analog ADC or I2C power monitor) |
+| SOURCE_EXTERNAL | `uint8` | 1 | External (MAVLink, CAN, or external driver) |
+| SOURCE_ESCS | `uint8` | 2 | ESCs (via ESC telemetry) |
### WARNING {#WARNING}
-| Name | Type | Value | Description |
-| --------------------------------------------------- | ------- | ----- | -------------------------------------------- |
-| WARNING_NONE | `uint8` | 0 | No battery low voltage warning active |
-| WARNING_LOW | `uint8` | 1 | Low voltage warning |
-| WARNING_CRITICAL | `uint8` | 2 | Critical voltage, return / abort immediately |
-| WARNING_EMERGENCY | `uint8` | 3 | Immediate landing required |
-| WARNING_FAILED | `uint8` | 4 | Battery has failed completely |
+| Name | Type | Value | Description |
+| ------------------------------------------------- | ------- | ----- | -------------------------------------------- |
+| WARNING_NONE | `uint8` | 0 | No battery low voltage warning active |
+| WARNING_LOW | `uint8` | 1 | Low voltage warning |
+| WARNING_CRITICAL | `uint8` | 2 | Critical voltage, return / abort immediately |
+| WARNING_EMERGENCY | `uint8` | 3 | Immediate landing required |
+| WARNING_FAILED | `uint8` | 4 | Battery has failed completely |
### STATE {#STATE}
-| Name | Type | Value | Description |
-| ----------------------------------------------- | ------- | ----- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
-| STATE_UNHEALTHY | `uint8` | 6 | Battery is diagnosed to be defective or an error occurred, usage is discouraged / prohibited. Possible causes (faults) are listed in faults field |
-| STATE_CHARGING | `uint8` | 7 | Battery is charging |
+| Name | Type | Value | Description |
+| --------------------------------------------- | ------- | ----- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
+| STATE_UNHEALTHY | `uint8` | 6 | Battery is diagnosed to be defective or an error occurred, usage is discouraged / prohibited. Possible causes (faults) are listed in faults field |
+| STATE_CHARGING | `uint8` | 7 | Battery is charging |
### FAULT {#FAULT}
-| Name | Type | Value | Description |
-| ----------------------------------------------------------------------- | ------- | ----- | -------------------------------------------------------------------------------------------------------------- |
-| FAULT_DEEP_DISCHARGE | `uint8` | 0 | Battery has deep discharged |
-| FAULT_SPIKES | `uint8` | 1 | Voltage spikes |
-| FAULT_CELL_FAIL | `uint8` | 2 | One or more cells have failed |
-| FAULT_OVER_CURRENT | `uint8` | 3 | Over-current |
-| FAULT_OVER_TEMPERATURE | `uint8` | 4 | Over-temperature |
-| FAULT_UNDER_TEMPERATURE | `uint8` | 5 | Under-temperature fault |
-| FAULT_INCOMPATIBLE_VOLTAGE | `uint8` | 6 | Vehicle voltage is not compatible with this battery (batteries on same power rail should have similar voltage) |
-| FAULT_INCOMPATIBLE_FIRMWARE | `uint8` | 7 | Battery firmware is not compatible with current autopilot firmware |
-| FAULT_INCOMPATIBLE_MODEL | `uint8` | 8 | Battery model is not supported by the system |
-| FAULT_HARDWARE_FAILURE | `uint8` | 9 | Hardware problem |
-| FAULT_FAILED_TO_ARM | `uint8` | 10 | Battery had a problem while arming |
-| FAULT_COUNT | `uint8` | 11 | Counter. Keep this as last element |
+| Name | Type | Value | Description |
+| --------------------------------------------------------------------- | ------- | ----- | -------------------------------------------------------------------------------------------------------------- |
+| FAULT_DEEP_DISCHARGE | `uint8` | 0 | Battery has deep discharged |
+| FAULT_SPIKES | `uint8` | 1 | Voltage spikes |
+| FAULT_CELL_FAIL | `uint8` | 2 | One or more cells have failed |
+| FAULT_OVER_CURRENT | `uint8` | 3 | Over-current |
+| FAULT_OVER_TEMPERATURE | `uint8` | 4 | Over-temperature |
+| FAULT_UNDER_TEMPERATURE | `uint8` | 5 | Under-temperature fault |
+| FAULT_INCOMPATIBLE_VOLTAGE | `uint8` | 6 | Vehicle voltage is not compatible with this battery (batteries on same power rail should have similar voltage) |
+| FAULT_INCOMPATIBLE_FIRMWARE | `uint8` | 7 | Battery firmware is not compatible with current autopilot firmware |
+| FAULT_INCOMPATIBLE_MODEL | `uint8` | 8 | Battery model is not supported by the system |
+| FAULT_HARDWARE_FAILURE | `uint8` | 9 | Hardware problem |
+| FAULT_FAILED_TO_ARM | `uint8` | 10 | Battery had a problem while arming |
+| FAULT_COUNT | `uint8` | 11 | Counter. Keep this as last element |
## Constants
diff --git a/docs/en/msg_docs/CellularStatus.md b/docs/en/msg_docs/CellularStatus.md
index 10214361e7..a632b99d8a 100644
--- a/docs/en/msg_docs/CellularStatus.md
+++ b/docs/en/msg_docs/CellularStatus.md
@@ -27,40 +27,40 @@ This is currently used only for logging cell status from MAVLink.
### STATUS_FLAG {#STATUS_FLAG}
-| Name | Type | Value | Description |
-| ------------------------------------------------------------------- | -------- | ----- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| STATUS_FLAG_UNKNOWN | `uint16` | 1 | State unknown or not reportable |
-| STATUS_FLAG_FAILED | `uint16` | 2 | Modem is unusable |
-| STATUS_FLAG_INITIALIZING | `uint16` | 4 | Modem is being initialized |
-| STATUS_FLAG_LOCKED | `uint16` | 8 | Modem is locked |
-| STATUS_FLAG_DISABLED | `uint16` | 16 | Modem is not enabled and is powered down |
-| STATUS_FLAG_DISABLING | `uint16` | 32 | Modem is currently transitioning to the STATUS_FLAG_DISABLED state |
-| STATUS_FLAG_ENABLING | `uint16` | 64 | Modem is currently transitioning to the STATUS_FLAG_ENABLED state |
-| STATUS_FLAG_ENABLED | `uint16` | 128 | Modem is enabled and powered on but not registered with a network provider and not available for data connections |
-| STATUS_FLAG_SEARCHING | `uint16` | 256 | Modem is searching for a network provider to register |
-| STATUS_FLAG_REGISTERED | `uint16` | 512 | Modem is registered with a network provider, and data connections and messaging may be available for use |
-| STATUS_FLAG_DISCONNECTING | `uint16` | 1024 | Modem is disconnecting and deactivating the last active packet data bearer. This state will not be entered if more than one packet data bearer is active and one of the active bearers is deactivated |
-| STATUS_FLAG_CONNECTING | `uint16` | 2048 | Modem is activating and connecting the first packet data bearer. Subsequent bearer activations when another bearer is already active do not cause this state to be entered |
-| STATUS_FLAG_CONNECTED | `uint16` | 4096 | One or more packet data bearers is active and connected |
+| Name | Type | Value | Description |
+| ----------------------------------------------------------------- | -------- | ----- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| STATUS_FLAG_UNKNOWN | `uint16` | 1 | State unknown or not reportable |
+| STATUS_FLAG_FAILED | `uint16` | 2 | Modem is unusable |
+| STATUS_FLAG_INITIALIZING | `uint16` | 4 | Modem is being initialized |
+| STATUS_FLAG_LOCKED | `uint16` | 8 | Modem is locked |
+| STATUS_FLAG_DISABLED | `uint16` | 16 | Modem is not enabled and is powered down |
+| STATUS_FLAG_DISABLING | `uint16` | 32 | Modem is currently transitioning to the STATUS_FLAG_DISABLED state |
+| STATUS_FLAG_ENABLING | `uint16` | 64 | Modem is currently transitioning to the STATUS_FLAG_ENABLED state |
+| STATUS_FLAG_ENABLED | `uint16` | 128 | Modem is enabled and powered on but not registered with a network provider and not available for data connections |
+| STATUS_FLAG_SEARCHING | `uint16` | 256 | Modem is searching for a network provider to register |
+| STATUS_FLAG_REGISTERED | `uint16` | 512 | Modem is registered with a network provider, and data connections and messaging may be available for use |
+| STATUS_FLAG_DISCONNECTING | `uint16` | 1024 | Modem is disconnecting and deactivating the last active packet data bearer. This state will not be entered if more than one packet data bearer is active and one of the active bearers is deactivated |
+| STATUS_FLAG_CONNECTING | `uint16` | 2048 | Modem is activating and connecting the first packet data bearer. Subsequent bearer activations when another bearer is already active do not cause this state to be entered |
+| STATUS_FLAG_CONNECTED | `uint16` | 4096 | One or more packet data bearers is active and connected |
### FAILURE_REASON {#FAILURE_REASON}
-| Name | Type | Value | Description |
-| --------------------------------------------------------------------- | ------- | ----- | ----------------------------------------------- |
-| FAILURE_REASON_NONE | `uint8` | 0 | No error |
-| FAILURE_REASON_UNKNOWN | `uint8` | 1 | Error state is unknown |
-| FAILURE_REASON_SIM_MISSING | `uint8` | 2 | SIM is required for the modem but missing |
-| FAILURE_REASON_SIM_ERROR | `uint8` | 3 | SIM is available, but not usable for connection |
+| Name | Type | Value | Description |
+| ------------------------------------------------------------------- | ------- | ----- | ----------------------------------------------- |
+| FAILURE_REASON_NONE | `uint8` | 0 | No error |
+| FAILURE_REASON_UNKNOWN | `uint8` | 1 | Error state is unknown |
+| FAILURE_REASON_SIM_MISSING | `uint8` | 2 | SIM is required for the modem but missing |
+| FAILURE_REASON_SIM_ERROR | `uint8` | 3 | SIM is available, but not usable for connection |
### CELLULAR_NETWORK_RADIO_TYPE {#CELLULAR_NETWORK_RADIO_TYPE}
-| Name | Type | Value | Description |
-| ----------------------------------------------------------------------------------- | ------- | ----- | ----------- |
-| CELLULAR_NETWORK_RADIO_TYPE_NONE | `uint8` | 0 | None |
-| CELLULAR_NETWORK_RADIO_TYPE_GSM | `uint8` | 1 | GSM |
-| CELLULAR_NETWORK_RADIO_TYPE_CDMA | `uint8` | 2 | CDMA |
-| CELLULAR_NETWORK_RADIO_TYPE_WCDMA | `uint8` | 3 | WCDMA |
-| CELLULAR_NETWORK_RADIO_TYPE_LTE | `uint8` | 4 | LTE |
+| Name | Type | Value | Description |
+| --------------------------------------------------------------------------------- | ------- | ----- | ----------- |
+| CELLULAR_NETWORK_RADIO_TYPE_NONE | `uint8` | 0 | None |
+| CELLULAR_NETWORK_RADIO_TYPE_GSM | `uint8` | 1 | GSM |
+| CELLULAR_NETWORK_RADIO_TYPE_CDMA | `uint8` | 2 | CDMA |
+| CELLULAR_NETWORK_RADIO_TYPE_WCDMA | `uint8` | 3 | WCDMA |
+| CELLULAR_NETWORK_RADIO_TYPE_LTE | `uint8` | 4 | LTE |
## Source Message
diff --git a/docs/en/msg_docs/DeviceInformation.md b/docs/en/msg_docs/DeviceInformation.md
index 23e676b2a2..e6e5abc02d 100644
--- a/docs/en/msg_docs/DeviceInformation.md
+++ b/docs/en/msg_docs/DeviceInformation.md
@@ -27,24 +27,24 @@ as well as tracking of the used firmware versions on the devices.
### DEVICE_TYPE {#DEVICE_TYPE}
-| Name | Type | Value | Description |
-| ----------------------------------------------------------------------------------- | ------- | ----- | ---------------------- |
-| DEVICE_TYPE_GENERIC | `uint8` | 0 | Generic/unknown sensor |
-| DEVICE_TYPE_AIRSPEED | `uint8` | 1 | Airspeed sensor |
-| DEVICE_TYPE_ESC | `uint8` | 2 | ESC |
-| DEVICE_TYPE_SERVO | `uint8` | 3 | Servo |
-| DEVICE_TYPE_GPS | `uint8` | 4 | GPS |
-| DEVICE_TYPE_MAGNETOMETER | `uint8` | 5 | Magnetometer |
-| DEVICE_TYPE_PARACHUTE | `uint8` | 6 | Parachute |
-| DEVICE_TYPE_RANGEFINDER | `uint8` | 7 | Rangefinder |
-| DEVICE_TYPE_WINCH | `uint8` | 8 | Winch |
-| DEVICE_TYPE_BAROMETER | `uint8` | 9 | Barometer |
-| DEVICE_TYPE_OPTICAL_FLOW | `uint8` | 10 | Optical flow |
-| DEVICE_TYPE_ACCELEROMETER | `uint8` | 11 | Accelerometer |
-| DEVICE_TYPE_GYROSCOPE | `uint8` | 12 | Gyroscope |
-| DEVICE_TYPE_DIFFERENTIAL_PRESSURE | `uint8` | 13 | Differential pressure |
-| DEVICE_TYPE_BATTERY | `uint8` | 14 | Battery |
-| DEVICE_TYPE_HYGROMETER | `uint8` | 15 | Hygrometer |
+| Name | Type | Value | Description |
+| --------------------------------------------------------------------------------- | ------- | ----- | ---------------------- |
+| DEVICE_TYPE_GENERIC | `uint8` | 0 | Generic/unknown sensor |
+| DEVICE_TYPE_AIRSPEED | `uint8` | 1 | Airspeed sensor |
+| DEVICE_TYPE_ESC | `uint8` | 2 | ESC |
+| DEVICE_TYPE_SERVO | `uint8` | 3 | Servo |
+| DEVICE_TYPE_GPS | `uint8` | 4 | GPS |
+| DEVICE_TYPE_MAGNETOMETER | `uint8` | 5 | Magnetometer |
+| DEVICE_TYPE_PARACHUTE | `uint8` | 6 | Parachute |
+| DEVICE_TYPE_RANGEFINDER | `uint8` | 7 | Rangefinder |
+| DEVICE_TYPE_WINCH | `uint8` | 8 | Winch |
+| DEVICE_TYPE_BAROMETER | `uint8` | 9 | Barometer |
+| DEVICE_TYPE_OPTICAL_FLOW | `uint8` | 10 | Optical flow |
+| DEVICE_TYPE_ACCELEROMETER | `uint8` | 11 | Accelerometer |
+| DEVICE_TYPE_GYROSCOPE | `uint8` | 12 | Gyroscope |
+| DEVICE_TYPE_DIFFERENTIAL_PRESSURE | `uint8` | 13 | Differential pressure |
+| DEVICE_TYPE_BATTERY | `uint8` | 14 | Battery |
+| DEVICE_TYPE_HYGROMETER | `uint8` | 15 | Hygrometer |
## Source Message
diff --git a/docs/en/msg_docs/VehicleCommand.md b/docs/en/msg_docs/VehicleCommand.md
index 872768eee4..5f42816d9a 100644
--- a/docs/en/msg_docs/VehicleCommand.md
+++ b/docs/en/msg_docs/VehicleCommand.md
@@ -1490,34 +1490,34 @@ Change mode by specifying nav_state directly.
### ORBIT_YAW_BEHAVIOUR {#ORBIT_YAW_BEHAVIOUR}
-| Name | Type | Value | Description |
-| ----------------------------------------------------------------------------------------------------------------- | ------- | ----- | ----------- |
-| ORBIT_YAW_BEHAVIOUR_HOLD_FRONT_TO_CIRCLE_CENTER | `uint8` | 0 |
-| ORBIT_YAW_BEHAVIOUR_HOLD_INITIAL_HEADING | `uint8` | 1 |
-| ORBIT_YAW_BEHAVIOUR_UNCONTROLLED | `uint8` | 2 |
-| ORBIT_YAW_BEHAVIOUR_HOLD_FRONT_TANGENT_TO_CIRCLE | `uint8` | 3 |
-| ORBIT_YAW_BEHAVIOUR_RC_CONTROLLED | `uint8` | 4 |
-| ORBIT_YAW_BEHAVIOUR_UNCHANGED | `uint8` | 5 |
+| Name | Type | Value | Description |
+| --------------------------------------------------------------------------------------------------------------- | ------- | ----- | ----------- |
+| ORBIT_YAW_BEHAVIOUR_HOLD_FRONT_TO_CIRCLE_CENTER | `uint8` | 0 |
+| ORBIT_YAW_BEHAVIOUR_HOLD_INITIAL_HEADING | `uint8` | 1 |
+| ORBIT_YAW_BEHAVIOUR_UNCONTROLLED | `uint8` | 2 |
+| ORBIT_YAW_BEHAVIOUR_HOLD_FRONT_TANGENT_TO_CIRCLE | `uint8` | 3 |
+| ORBIT_YAW_BEHAVIOUR_RC_CONTROLLED | `uint8` | 4 |
+| ORBIT_YAW_BEHAVIOUR_UNCHANGED | `uint8` | 5 |
### VEHICLE_ROI {#VEHICLE_ROI}
-| Name | Type | Value | Description |
-| --------------------------------------------------------- | ------- | ----- | ---------------------------- |
-| VEHICLE_ROI_NONE | `uint8` | 0 | No region of interest. |
-| VEHICLE_ROI_WPNEXT | `uint8` | 1 | Point toward next MISSION. |
-| VEHICLE_ROI_WPINDEX | `uint8` | 2 | Point toward given MISSION. |
-| VEHICLE_ROI_LOCATION | `uint8` | 3 | Point toward fixed location. |
-| VEHICLE_ROI_TARGET | `uint8` | 4 | Point toward target. |
-| VEHICLE_ROI_ENUM_END | `uint8` | 5 |
+| Name | Type | Value | Description |
+| ------------------------------------------------------- | ------- | ----- | ---------------------------- |
+| VEHICLE_ROI_NONE | `uint8` | 0 | No region of interest. |
+| VEHICLE_ROI_WPNEXT | `uint8` | 1 | Point toward next MISSION. |
+| VEHICLE_ROI_WPINDEX | `uint8` | 2 | Point toward given MISSION. |
+| VEHICLE_ROI_LOCATION | `uint8` | 3 | Point toward fixed location. |
+| VEHICLE_ROI_TARGET | `uint8` | 4 | Point toward target. |
+| VEHICLE_ROI_ENUM_END | `uint8` | 5 |
### SPEED_TYPE {#SPEED_TYPE}
-| Name | Type | Value | Description |
-| ----------------------------------------------------------------- | ------- | ----- | ----------- |
-| SPEED_TYPE_AIRSPEED | `uint8` | 0 |
-| SPEED_TYPE_GROUNDSPEED | `uint8` | 1 |
-| SPEED_TYPE_CLIMB_SPEED | `uint8` | 2 |
-| SPEED_TYPE_DESCEND_SPEED | `uint8` | 3 |
+| Name | Type | Value | Description |
+| --------------------------------------------------------------- | ------- | ----- | ----------- |
+| SPEED_TYPE_AIRSPEED | `uint8` | 0 |
+| SPEED_TYPE_GROUNDSPEED | `uint8` | 1 |
+| SPEED_TYPE_CLIMB_SPEED | `uint8` | 2 |
+| SPEED_TYPE_DESCEND_SPEED | `uint8` | 3 |
### MAV_MOUNT_MODE {#MAV_MOUNT_MODE}
diff --git a/docs/en/msg_docs/VehicleCommandAck.md b/docs/en/msg_docs/VehicleCommandAck.md
index 65c2751ebf..7aea6ba850 100644
--- a/docs/en/msg_docs/VehicleCommandAck.md
+++ b/docs/en/msg_docs/VehicleCommandAck.md
@@ -28,18 +28,18 @@ Follows the MAVLink COMMAND_ACK message definition
### VEHICLE_CMD_RESULT {#VEHICLE_CMD_RESULT}
-| Name | Type | Value | Description |
-| ------------------------------------------------------------------------------------------------- | ------- | ----- | ---------------------------------------------------- |
-| VEHICLE_CMD_RESULT_ACCEPTED | `uint8` | 0 | Command ACCEPTED and EXECUTED |
-| VEHICLE_CMD_RESULT_TEMPORARILY_REJECTED | `uint8` | 1 | Command TEMPORARY REJECTED/DENIED |
-| VEHICLE_CMD_RESULT_DENIED | `uint8` | 2 | Command PERMANENTLY DENIED |
-| VEHICLE_CMD_RESULT_UNSUPPORTED | `uint8` | 3 | Command UNKNOWN/UNSUPPORTED |
-| VEHICLE_CMD_RESULT_FAILED | `uint8` | 4 | Command executed, but failed |
-| VEHICLE_CMD_RESULT_IN_PROGRESS | `uint8` | 5 | Command being executed |
-| VEHICLE_CMD_RESULT_CANCELLED | `uint8` | 6 | Command Canceled |
-| VEHICLE_CMD_RESULT_COMMAND_LONG_ONLY | `uint8` | 7 | Command is only accepted when sent as a COMMAND_LONG |
-| VEHICLE_CMD_RESULT_COMMAND_INT_ONLY | `uint8` | 8 | Command is only accepted when sent as a COMMAND_INT |
-| VEHICLE_CMD_RESULT_UNSUPPORTED_MAV_FRAME | `uint8` | 9 | Command does not support specified frame |
+| Name | Type | Value | Description |
+| ----------------------------------------------------------------------------------------------- | ------- | ----- | ---------------------------------------------------- |
+| VEHICLE_CMD_RESULT_ACCEPTED | `uint8` | 0 | Command ACCEPTED and EXECUTED |
+| VEHICLE_CMD_RESULT_TEMPORARILY_REJECTED | `uint8` | 1 | Command TEMPORARY REJECTED/DENIED |
+| VEHICLE_CMD_RESULT_DENIED | `uint8` | 2 | Command PERMANENTLY DENIED |
+| VEHICLE_CMD_RESULT_UNSUPPORTED | `uint8` | 3 | Command UNKNOWN/UNSUPPORTED |
+| VEHICLE_CMD_RESULT_FAILED | `uint8` | 4 | Command executed, but failed |
+| VEHICLE_CMD_RESULT_IN_PROGRESS | `uint8` | 5 | Command being executed |
+| VEHICLE_CMD_RESULT_CANCELLED | `uint8` | 6 | Command Canceled |
+| VEHICLE_CMD_RESULT_COMMAND_LONG_ONLY | `uint8` | 7 | Command is only accepted when sent as a COMMAND_LONG |
+| VEHICLE_CMD_RESULT_COMMAND_INT_ONLY | `uint8` | 8 | Command is only accepted when sent as a COMMAND_INT |
+| VEHICLE_CMD_RESULT_UNSUPPORTED_MAV_FRAME | `uint8` | 9 | Command does not support specified frame |
## Constants
diff --git a/docs/en/msg_docs/VehicleOdometry.md b/docs/en/msg_docs/VehicleOdometry.md
index 78fc9ad7e1..a3c6d201fd 100644
--- a/docs/en/msg_docs/VehicleOdometry.md
+++ b/docs/en/msg_docs/VehicleOdometry.md
@@ -32,20 +32,20 @@ Fits ROS REP 147 for aerial vehicles
### POSE_FRAME {#POSE_FRAME}
-| Name | Type | Value | Description |
-| ----------------------------------------------------- | ------- | ----- | --------------------------------------------------------------------------------------------- |
-| POSE_FRAME_UNKNOWN | `uint8` | 0 | Unknown frame |
-| POSE_FRAME_NED | `uint8` | 1 | North-East-Down (NED) navigation frame. Aligned with True North. |
-| POSE_FRAME_FRD | `uint8` | 2 | Forward-Right-Down (FRD) frame. Constant arbitrary heading offset from True North. Z is down. |
+| Name | Type | Value | Description |
+| --------------------------------------------------- | ------- | ----- | --------------------------------------------------------------------------------------------- |
+| POSE_FRAME_UNKNOWN | `uint8` | 0 | Unknown frame |
+| POSE_FRAME_NED | `uint8` | 1 | North-East-Down (NED) navigation frame. Aligned with True North. |
+| POSE_FRAME_FRD | `uint8` | 2 | Forward-Right-Down (FRD) frame. Constant arbitrary heading offset from True North. Z is down. |
### VELOCITY_FRAME {#VELOCITY_FRAME}
-| Name | Type | Value | Description |
-| --------------------------------------------------------------- | ------- | ----- | ------------------------------------------------------------------------------------------------------- |
-| VELOCITY_FRAME_UNKNOWN | `uint8` | 0 | Unknown frame |
-| VELOCITY_FRAME_NED | `uint8` | 1 | NED navigation frame at current position. |
-| VELOCITY_FRAME_FRD | `uint8` | 2 | FRD navigation frame at current position. Constant arbitrary heading offset from True North. Z is down. |
-| VELOCITY_FRAME_BODY_FRD | `uint8` | 3 | FRD body-fixed frame |
+| Name | Type | Value | Description |
+| ------------------------------------------------------------- | ------- | ----- | ------------------------------------------------------------------------------------------------------- |
+| VELOCITY_FRAME_UNKNOWN | `uint8` | 0 | Unknown frame |
+| VELOCITY_FRAME_NED | `uint8` | 1 | NED navigation frame at current position. |
+| VELOCITY_FRAME_FRD | `uint8` | 2 | FRD navigation frame at current position. Constant arbitrary heading offset from True North. Z is down. |
+| VELOCITY_FRAME_BODY_FRD | `uint8` | 3 | FRD body-fixed frame |
## Constants
diff --git a/docs/en/msg_docs/VehicleStatusV1.md b/docs/en/msg_docs/VehicleStatusV1.md
index ed7a3d0de0..c38ce82a9e 100644
--- a/docs/en/msg_docs/VehicleStatusV1.md
+++ b/docs/en/msg_docs/VehicleStatusV1.md
@@ -56,71 +56,71 @@ Encodes the system state of the vehicle published by commander.
### NAVIGATION_STATE {#NAVIGATION_STATE}
-| Name | Type | Value | Description |
-| --------------------------------------------------------------------------------------- | ------- | ----- | ------------------------------------- |
-| NAVIGATION_STATE_MANUAL | `uint8` | 0 | Manual mode |
-| NAVIGATION_STATE_ALTCTL | `uint8` | 1 | Altitude control mode |
-| NAVIGATION_STATE_POSCTL | `uint8` | 2 | Position control mode |
-| NAVIGATION_STATE_AUTO_MISSION | `uint8` | 3 | Auto mission mode |
-| NAVIGATION_STATE_AUTO_LOITER | `uint8` | 4 | Auto loiter mode |
-| NAVIGATION_STATE_AUTO_RTL | `uint8` | 5 | Auto return to launch mode |
-| NAVIGATION_STATE_POSITION_SLOW | `uint8` | 6 |
-| NAVIGATION_STATE_FREE5 | `uint8` | 7 |
-| NAVIGATION_STATE_ALTITUDE_CRUISE | `uint8` | 8 | Altitude with Cruise mode |
-| NAVIGATION_STATE_FREE3 | `uint8` | 9 |
-| NAVIGATION_STATE_ACRO | `uint8` | 10 | Acro mode |
-| NAVIGATION_STATE_FREE2 | `uint8` | 11 |
-| NAVIGATION_STATE_DESCEND | `uint8` | 12 | Descend mode (no position control) |
-| NAVIGATION_STATE_TERMINATION | `uint8` | 13 | Termination mode |
-| NAVIGATION_STATE_OFFBOARD | `uint8` | 14 |
-| NAVIGATION_STATE_STAB | `uint8` | 15 | Stabilized mode |
-| NAVIGATION_STATE_FREE1 | `uint8` | 16 |
-| NAVIGATION_STATE_AUTO_TAKEOFF | `uint8` | 17 | Takeoff |
-| NAVIGATION_STATE_AUTO_LAND | `uint8` | 18 | Land |
-| NAVIGATION_STATE_AUTO_FOLLOW_TARGET | `uint8` | 19 | Auto Follow |
-| NAVIGATION_STATE_AUTO_PRECLAND | `uint8` | 20 | Precision land with landing target |
-| NAVIGATION_STATE_ORBIT | `uint8` | 21 | Orbit in a circle |
-| NAVIGATION_STATE_AUTO_VTOL_TAKEOFF | `uint8` | 22 | Takeoff, transition, establish loiter |
-| NAVIGATION_STATE_EXTERNAL1 | `uint8` | 23 |
-| NAVIGATION_STATE_EXTERNAL2 | `uint8` | 24 |
-| NAVIGATION_STATE_EXTERNAL3 | `uint8` | 25 |
-| NAVIGATION_STATE_EXTERNAL4 | `uint8` | 26 |
-| NAVIGATION_STATE_EXTERNAL5 | `uint8` | 27 |
-| NAVIGATION_STATE_EXTERNAL6 | `uint8` | 28 |
-| NAVIGATION_STATE_EXTERNAL7 | `uint8` | 29 |
-| NAVIGATION_STATE_EXTERNAL8 | `uint8` | 30 |
-| NAVIGATION_STATE_MAX | `uint8` | 31 |
+| Name | Type | Value | Description |
+| ------------------------------------------------------------------------------------- | ------- | ----- | ------------------------------------- |
+| NAVIGATION_STATE_MANUAL | `uint8` | 0 | Manual mode |
+| NAVIGATION_STATE_ALTCTL | `uint8` | 1 | Altitude control mode |
+| NAVIGATION_STATE_POSCTL | `uint8` | 2 | Position control mode |
+| NAVIGATION_STATE_AUTO_MISSION | `uint8` | 3 | Auto mission mode |
+| NAVIGATION_STATE_AUTO_LOITER | `uint8` | 4 | Auto loiter mode |
+| NAVIGATION_STATE_AUTO_RTL | `uint8` | 5 | Auto return to launch mode |
+| NAVIGATION_STATE_POSITION_SLOW | `uint8` | 6 |
+| NAVIGATION_STATE_FREE5 | `uint8` | 7 |
+| NAVIGATION_STATE_ALTITUDE_CRUISE | `uint8` | 8 | Altitude with Cruise mode |
+| NAVIGATION_STATE_FREE3 | `uint8` | 9 |
+| NAVIGATION_STATE_ACRO | `uint8` | 10 | Acro mode |
+| NAVIGATION_STATE_FREE2 | `uint8` | 11 |
+| NAVIGATION_STATE_DESCEND | `uint8` | 12 | Descend mode (no position control) |
+| NAVIGATION_STATE_TERMINATION | `uint8` | 13 | Termination mode |
+| NAVIGATION_STATE_OFFBOARD | `uint8` | 14 |
+| NAVIGATION_STATE_STAB | `uint8` | 15 | Stabilized mode |
+| NAVIGATION_STATE_FREE1 | `uint8` | 16 |
+| NAVIGATION_STATE_AUTO_TAKEOFF | `uint8` | 17 | Takeoff |
+| NAVIGATION_STATE_AUTO_LAND | `uint8` | 18 | Land |
+| NAVIGATION_STATE_AUTO_FOLLOW_TARGET | `uint8` | 19 | Auto Follow |
+| NAVIGATION_STATE_AUTO_PRECLAND | `uint8` | 20 | Precision land with landing target |
+| NAVIGATION_STATE_ORBIT | `uint8` | 21 | Orbit in a circle |
+| NAVIGATION_STATE_AUTO_VTOL_TAKEOFF | `uint8` | 22 | Takeoff, transition, establish loiter |
+| NAVIGATION_STATE_EXTERNAL1 | `uint8` | 23 |
+| NAVIGATION_STATE_EXTERNAL2 | `uint8` | 24 |
+| NAVIGATION_STATE_EXTERNAL3 | `uint8` | 25 |
+| NAVIGATION_STATE_EXTERNAL4 | `uint8` | 26 |
+| NAVIGATION_STATE_EXTERNAL5 | `uint8` | 27 |
+| NAVIGATION_STATE_EXTERNAL6 | `uint8` | 28 |
+| NAVIGATION_STATE_EXTERNAL7 | `uint8` | 29 |
+| NAVIGATION_STATE_EXTERNAL8 | `uint8` | 30 |
+| NAVIGATION_STATE_MAX | `uint8` | 31 |
### FAILURE {#FAILURE}
-| Name | Type | Value | Description |
-| --------------------------------------------------------------- | -------- | ----- | ----------- |
-| FAILURE_NONE | `uint16` | 0 |
-| FAILURE_ROLL | `uint16` | 1 | (1 << 0) |
-| FAILURE_PITCH | `uint16` | 2 | (1 << 1) |
-| FAILURE_ALT | `uint16` | 4 | (1 << 2) |
-| FAILURE_EXT | `uint16` | 8 | (1 << 3) |
-| FAILURE_ARM_ESC | `uint16` | 16 | (1 << 4) |
-| FAILURE_BATTERY | `uint16` | 32 | (1 << 5) |
-| FAILURE_IMBALANCED_PROP | `uint16` | 64 | (1 << 6) |
-| FAILURE_MOTOR | `uint16` | 128 | (1 << 7) |
+| Name | Type | Value | Description |
+| ------------------------------------------------------------- | -------- | ----- | ----------- |
+| FAILURE_NONE | `uint16` | 0 |
+| FAILURE_ROLL | `uint16` | 1 | (1 << 0) |
+| FAILURE_PITCH | `uint16` | 2 | (1 << 1) |
+| FAILURE_ALT | `uint16` | 4 | (1 << 2) |
+| FAILURE_EXT | `uint16` | 8 | (1 << 3) |
+| FAILURE_ARM_ESC | `uint16` | 16 | (1 << 4) |
+| FAILURE_BATTERY | `uint16` | 32 | (1 << 5) |
+| FAILURE_IMBALANCED_PROP | `uint16` | 64 | (1 << 6) |
+| FAILURE_MOTOR | `uint16` | 128 | (1 << 7) |
### VEHICLE_TYPE {#VEHICLE_TYPE}
-| Name | Type | Value | Description |
-| ----------------------------------------------------------------- | ------- | ----- | ----------- |
-| VEHICLE_TYPE_UNSPECIFIED | `uint8` | 0 |
-| VEHICLE_TYPE_ROTARY_WING | `uint8` | 1 |
-| VEHICLE_TYPE_FIXED_WING | `uint8` | 2 |
-| VEHICLE_TYPE_ROVER | `uint8` | 3 |
+| Name | Type | Value | Description |
+| --------------------------------------------------------------- | ------- | ----- | ----------- |
+| VEHICLE_TYPE_UNSPECIFIED | `uint8` | 0 |
+| VEHICLE_TYPE_ROTARY_WING | `uint8` | 1 |
+| VEHICLE_TYPE_FIXED_WING | `uint8` | 2 |
+| VEHICLE_TYPE_ROVER | `uint8` | 3 |
### FAILSAFE_DEFER_STATE {#FAILSAFE_DEFER_STATE}
-| Name | Type | Value | Description |
-| --------------------------------------------------------------------------------------- | ------- | ----- | ------------------------------------------------ |
-| FAILSAFE_DEFER_STATE_DISABLED | `uint8` | 0 |
-| FAILSAFE_DEFER_STATE_ENABLED | `uint8` | 1 |
-| FAILSAFE_DEFER_STATE_WOULD_FAILSAFE | `uint8` | 2 | Failsafes deferred, but would trigger a failsafe |
+| Name | Type | Value | Description |
+| ------------------------------------------------------------------------------------- | ------- | ----- | ------------------------------------------------ |
+| FAILSAFE_DEFER_STATE_DISABLED | `uint8` | 0 |
+| FAILSAFE_DEFER_STATE_ENABLED | `uint8` | 1 |
+| FAILSAFE_DEFER_STATE_WOULD_FAILSAFE | `uint8` | 2 | Failsafes deferred, but would trigger a failsafe |
## Constants
diff --git a/docs/en/neural_networks/mc_neural_network_control.md b/docs/en/neural_networks/mc_neural_network_control.md
index 0c1cc83b57..8f4c21e3b0 100644
--- a/docs/en/neural_networks/mc_neural_network_control.md
+++ b/docs/en/neural_networks/mc_neural_network_control.md
@@ -17,7 +17,7 @@ Note that after training the network you will need to update and rebuild PX4.
TLFM is a mature inference library intended for use on embedded devices.
It has support for several architectures, so there is a high likelihood that you can build it for the board you want to use.
-If not, there are other possible NN frameworks, such as [Eigen](https://eigen.tuxfamily.org/index.php?title=Main_Page) and [Executorch](https://pytorch.org/executorch-overview).
+If not, there are other possible NN frameworks, such as [Eigen](https://eigen.tuxfamily.org/index.php?title=Main_Page) and [Executorch](https://docs.pytorch.org/executorch/stable/intro-overview.html).
This document explains how you can include the module in your PX4 build, and provides a broad overview of how it works.
The other documents in the section provide more information about the integration, allowing you to replace the NN with a version trained on different data, or even to replace the TLFM library altogether.
diff --git a/docs/en/payloads/generic_actuator_control.md b/docs/en/payloads/generic_actuator_control.md
index 82bd1f4df9..305dc52cc2 100644
--- a/docs/en/payloads/generic_actuator_control.md
+++ b/docs/en/payloads/generic_actuator_control.md
@@ -66,7 +66,7 @@ To use a generic actuator in a mission:
## MAVSDK (Example script)
-The following [MAVSDK](https://mavsdk.mavlink.io/main/en/index.html) [example code](https://github.com/mavlink/MAVSDK/blob/main/examples/set_actuator/set_actuator.cpp) shows how to trigger payload release using the MAVSDK Action plugin's [`set_actuator()`](https://mavsdk.mavlink.io/main/en/cpp/api_reference/classmavsdk_1_1_action.html#classmavsdk_1_1_action_1ad30beac27f05c62dcf6a3d0928b86e4c) method.
+The following [MAVSDK](https://mavsdk.mavlink.io/main/en/index.html) [example code](https://github.com/mavlink/MAVSDK/blob/main/cpp/examples/set_actuator/set_actuator.cpp) shows how to trigger payload release using the MAVSDK Action plugin's [`set_actuator()`](https://mavsdk.mavlink.io/main/en/cpp/api_reference/classmavsdk_1_1_action.html#classmavsdk_1_1_action_1ad30beac27f05c62dcf6a3d0928b86e4c) method.
The `set_actuator()` index values map to the MAVLink payload outputs defined for your airframe.
diff --git a/docs/en/peripherals/adsb_flarm.md b/docs/en/peripherals/adsb_flarm.md
index 9cf011bf39..1e5207cc5d 100644
--- a/docs/en/peripherals/adsb_flarm.md
+++ b/docs/en/peripherals/adsb_flarm.md
@@ -1,6 +1,6 @@
# ADS-B/FLARM/UTM Receivers: Air Traffic Avoidance
-PX4 supports simple air traffic avoidance in [missions](../flying/missions.md) using [ADS-B](https://en.wikipedia.org/wiki/Automatic_dependent_surveillance_%E2%80%93_broadcast), [FLARM](https://en.wikipedia.org/wiki/FLARM), or [UTM](https://www.faa.gov/uas/research_development/traffic_management) transponders that use the standard MAVLink interfaces.
+PX4 supports simple air traffic avoidance in [missions](../flying/missions.md) using [ADS-B](https://en.wikipedia.org/wiki/Automatic_dependent_surveillance_%E2%80%93_broadcast), [FLARM](https://en.wikipedia.org/wiki/FLARM), or [UTM](https://www.faa.gov/uas/advanced_operations/traffic_management) transponders that use the standard MAVLink interfaces.
If a potential collision is detected, PX4 can _warn_, immediately [land](../flight_modes_mc/land.md), or [return](../flight_modes_mc/return.md) (depending on the value of [NAV_TRAFF_AVOID](#NAV_TRAFF_AVOID)).
diff --git a/docs/en/peripherals/frsky_telemetry.md b/docs/en/peripherals/frsky_telemetry.md
index 74326ca07a..42da72065f 100644
--- a/docs/en/peripherals/frsky_telemetry.md
+++ b/docs/en/peripherals/frsky_telemetry.md
@@ -213,8 +213,8 @@ You will need connectors that are appropriate for your autopilot (e.g. _JST-GH c
The Pixracer includes electronics for converting between S.PORT and UART signals, but for other boards you will need a UART to S.PORT adapter.
These can be sourced from:
-- [FrSky FUL-1](https://www.frsky-rc.com/product/ful-1/): [unmannedtech.co.uk](https://www.unmannedtechshop.co.uk/frsky-transmitter-receiver-upgrade-adapter-ful-1/)
-- SPC: [getfpv.com](https://www.getfpv.com/frsky-smart-port-converter-cable.html), [unmannedtechshop.co.uk](https://www.unmannedtechshop.co.uk/frsky-smart-port-converter-spc/)
+- [FrSky FUL-1](https://www.frsky-rc.com/product/ful-1/): [unmannedtech.co.uk](https://www.unmannedtechshop.co.uk/products/frsky-transmitter-receiver-upgrade-adapter-ful-1)
+- SPC: [getfpv.com](https://www.getfpv.com/frsky-smart-port-converter-cable.html), [unmannedtechshop.co.uk](https://www.unmannedtechshop.co.uk/products/frsky-smart-port-converter-spc)
More information about the connections for different boards is given below.
diff --git a/docs/en/peripherals/vertiq.md b/docs/en/peripherals/vertiq.md
index 224118a8bf..dc81c1a377 100644
--- a/docs/en/peripherals/vertiq.md
+++ b/docs/en/peripherals/vertiq.md
@@ -6,7 +6,7 @@ With closed loop velocity control for the fastest response times available, clas

-All Vertiq modules support traditional [PWM input, DShot, OneShot, and Multishot communication protocols](https://iqmotion.readthedocs.io/en/latest/communication_protocols/hobby_protocol.html). Vertiq's larger modules also support [DroneCAN control](https://iqmotion.readthedocs.io/en/latest/communication_protocols/dronecan_protocol.html).
+All Vertiq modules support traditional [PWM input, DShot, OneShot, and Multishot communication protocols](https://iqmotion.readthedocs.io/en/latest/communication_protocols/timer_based_protocol.html). Vertiq's larger modules also support [DroneCAN control](https://iqmotion.readthedocs.io/en/latest/communication_protocols/dronecan_protocol.html).
## Where to Buy
diff --git a/docs/en/releases/1.16.md b/docs/en/releases/1.16.md
index 42019f52d1..5cd1175dd1 100644
--- a/docs/en/releases/1.16.md
+++ b/docs/en/releases/1.16.md
@@ -55,7 +55,7 @@ Please continue reading for [upgrade instructions](#upgrade-guide).
- [Battery level estimation improvements](../config/battery.md). ([PX4-Autopilot#23205](https://github.com/PX4/PX4-Autopilot/pull/23205)).
- [Voltage-based estimation with load compensation](../config/battery.md#voltage-based-estimation-with-load-compensation) now uses a real-time estimate of the internal resistance of the battery to compensate voltage drops under load (with increased current), providing a better capacity estimate than with the raw measured voltage.
- Thrust-based load compensation has been removed (along with the `BATn_V_LOAD_DROP` parameters, where `n` is the battery number).
-- The [Position (GNSS) loss failsafe](../config/safety.md#position-gnss-loss-failsafe) configurable delay (`COM_POS_FS_DELAY`) has been removed.
+- The [Position (GNSS) loss failsafe](../config/safety.md#position-loss-failsafe) configurable delay (`COM_POS_FS_DELAY`) has been removed.
The failsafe will now trigger 1 second after position has been lost. ([PX4-Autopilot#24063](https://github.com/PX4/PX4-Autopilot/pull/24063)).
- [Log Encryption](../dev_log/log_encryption.md) now generates an encrypted log that contains the public-key-encrypted symmetric key that can be used to decrypt it, instead of putting the key into a separate file.
This makes log decryption much easier, as there is no need to download or identify a separate key file.
diff --git a/docs/en/ros/external_position_estimation.md b/docs/en/ros/external_position_estimation.md
index ec31ef5e44..0085decad7 100644
--- a/docs/en/ros/external_position_estimation.md
+++ b/docs/en/ros/external_position_estimation.md
@@ -253,7 +253,7 @@ This might break the _tf_ tree.
### OptiTrack MoCap
-The following steps explain how to feed position estimates from an [OptiTrack](https://optitrack.com/applications/robotics/) system to PX4.
+The following steps explain how to feed position estimates from an [OptiTrack](https://optitrack.com/applications/robotics) system to PX4.
It is assumed that the MoCap system is calibrated.
See [this video](https://www.youtube.com/watch?v=cNZaFEghTBU) for a tutorial on the calibration process.
diff --git a/docs/en/ros/mavros_custom_messages.md b/docs/en/ros/mavros_custom_messages.md
index 3549abea35..a9956836e9 100644
--- a/docs/en/ros/mavros_custom_messages.md
+++ b/docs/en/ros/mavros_custom_messages.md
@@ -14,7 +14,7 @@ However these steps are fairly general and so it should work with other distros/
## MAVROS Installation
-Follow _Source Installation_ instructions from [mavlink/mavros](https://github.com/mavlink/mavros/blob/master/mavros/index.md) to install "ROS Kinetic".
+Follow _Source Installation_ instructions from [mavlink/mavros](https://github.com/mavlink/mavros/blob/master/mavros/README.md) to install "ROS Kinetic".
## MAVROS
diff --git a/docs/en/ros2/px4_ros2_navigation_interface.md b/docs/en/ros2/px4_ros2_navigation_interface.md
index 4533ce30bd..ef94186246 100644
--- a/docs/en/ros2/px4_ros2_navigation_interface.md
+++ b/docs/en/ros2/px4_ros2_navigation_interface.md
@@ -101,7 +101,7 @@ The following steps are required to get started:
To send a position measurement, you populate the position struct with the values you have measured.
Then call the interface's update function with that struct as the argument.
-For a basic example of how to use this interface, check out the [examples](https://github.com/Auterion/px4-ros2-interface-lib/tree/main/examples/cpp/navigation) in the `Auterion/px4-ros2-interface-lib` repository, such as [examples/cpp/navigation/local_navigation](https://github.com/Auterion/px4-ros2-interface-lib/blob/main/examples/cpp/navigation/local_navigation/include/local_navigation.hpp) or [examples/cpp/navigation/global_navigation](https://github.com/Auterion/px4-ros2-interface-lib/blob/main/examples/cpp/navigation/local_navigation/include/global_navigation.hpp).
+For a basic example of how to use this interface, check out the [examples](https://github.com/Auterion/px4-ros2-interface-lib/tree/main/examples/cpp/navigation) in the `Auterion/px4-ros2-interface-lib` repository, such as [examples/cpp/navigation/local_navigation](https://github.com/Auterion/px4-ros2-interface-lib/blob/main/examples/cpp/navigation/local_navigation/include/local_navigation.hpp) or [examples/cpp/navigation/global_navigation](https://github.com/Auterion/px4-ros2-interface-lib/blob/main/examples/cpp/navigation/global_navigation/include/global_navigation.hpp).
### Local Position Updates
@@ -220,7 +220,7 @@ private:
### Global Position Updates
-First ensure that the PX4 parameter [`EKF2_AGP_CTRL`](../advanced_config/parameter_reference.md#EKF2_AGP_CTRL) is properly configured to fuse external global measurements, by setting the appropriate bits to `true`:
+First ensure that the PX4 [`EKF2_AGP_CTRLn`](../advanced_config/parameter_reference.md#EKF2_AGP0_CTRL) parameters are properly configured to fuse external global measurements, by setting the appropriate bits to `true`:
- `0`: Horizontal position data
- `1`: Vertical position data
diff --git a/docs/en/sensor/airspeed.md b/docs/en/sensor/airspeed.md
index c77b680ebb..e0db4f4ba0 100644
--- a/docs/en/sensor/airspeed.md
+++ b/docs/en/sensor/airspeed.md
@@ -12,7 +12,7 @@ Recommended digital airspeed sensors include:
- Based on [Pitot tube](https://en.wikipedia.org/wiki/Pitot_tube)
- I2C MEAS Spec series (e.g. [MS4525DO](https://www.te.com/usa-en/product-CAT-BLPS0002.html), [MS5525](https://www.te.com/usa-en/product-CAT-BLPS0003.html))
- - [mRo I2C Airspeed Sensor JST-GH MS4525DO](https://store.3dr.com/mro-i2c-airspeed-sensor-jst-gh-ms4525do/) (3DR store)
+ - [mRo I2C Airspeed Sensor JST-GH MS4525DO](https://store.3dr.com/airspeed-sensor-jst-gh-ms4525do/) (3DR store)
- [Digital Differential Airspeed Sensor Kit - MS4525DO](https://store-drotek.com/793-digital-differential-airspeed-sensor-kit-.html) (Drotek).
- [Holybro Digital Air Speed Sensor - MS4525DO](https://holybro.com/collections/sensors/products/digital-air-speed-sensor-ms4525do)
- [Holybro Digital Air Speed Sensor - MS5525DSO](https://holybro.com/collections/sensors/products/digital-air-speed-sensor-ms5525dso)
diff --git a/docs/en/sensor/airspeed_tfslot.md b/docs/en/sensor/airspeed_tfslot.md
index 413911ecbd..c95b404ff7 100644
--- a/docs/en/sensor/airspeed_tfslot.md
+++ b/docs/en/sensor/airspeed_tfslot.md
@@ -5,7 +5,7 @@

[TFSLOT](https://github.com/ThunderFly-aerospace/TFSLOT01) is an airspeed sensor based on venturi effects.
-In the basic configuration, the TFSLOT is equipped with the [TFASPDIMU02](https://github.com/ThunderFly-aerospace/TFASPDIMU02) sensor board, which contains a differential pressure sensor ([Sensirion SDP3x series](https://sensirion.com/products/catalog/?filter_series=d1816d53-f5c8-47e3-ab47-818c3fd54259)) and a 9-axis motion tracking sensor ([ICM-20948](https://invensense.tdk.com/products/motion-tracking/9-axis/icm-20948/)).
+In the basic configuration, the TFSLOT is equipped with the [TFASPDIMU02](https://github.com/ThunderFly-aerospace/TFASPDIMU02) sensor board, which contains a differential pressure sensor ([Sensirion SDP3x series](https://sensirion.com/products/catalog?filter_series=d1816d53-f5c8-47e3-ab47-818c3fd54259)) and a 9-axis motion tracking sensor ([ICM-20948](https://invensense.tdk.com/products/motion-tracking/9-axis/icm-20948/)).
The IMU unit can be used as an external compass.
- This design brings several advantages when used on small-scale and slow-flying UAVs.
diff --git a/docs/en/sensor/grf_lidar.md b/docs/en/sensor/grf_lidar.md
index 836596e026..4f48bc1884 100644
--- a/docs/en/sensor/grf_lidar.md
+++ b/docs/en/sensor/grf_lidar.md
@@ -55,8 +55,8 @@ The [parameters to change](../advanced_config/parameters.md) are listed in the t
| Parameter | Description |
| -------------------------------------------------------------------------------------------------------- | -------------------------------------------------- |
| [SENS_EN_GRF_CFG](../advanced_config/parameter_reference.md#SENS_EN_GRF_CFG) | Set to the serial port the sensor is connected to. |
-| [GRF_UPDATE_CFG](../advanced_config/parameter_reference.md#GRF_UPDATE_CFG) | Set the update rate. |
-| [GRF_SENS_MODEL](../advanced_config/parameter_reference.md#GRF_SENS_MODEL) | Set the update rate. |
+| [GRF_RATE_CFG](../advanced_config/parameter_reference.md#GRF_RATE_CFG) | Set the update rate. |
+| [GRF_SENS_MODEL](../advanced_config/parameter_reference.md#GRF_SENS_MODEL) | Set the sensor model to use. |
## Testing
diff --git a/docs/en/sensor/inertial_navigation_systems.md b/docs/en/sensor/inertial_navigation_systems.md
index bdf7f39b6d..ce3e32106f 100644
--- a/docs/en/sensor/inertial_navigation_systems.md
+++ b/docs/en/sensor/inertial_navigation_systems.md
@@ -49,5 +49,5 @@ Essentially it is an AHRS that also includes position/velocity estimation.
## Further Information
-- [What is an Inertial Navigation System?](https://www.vectornav.com/resources/inertial-navigation-articles/what-is-an-ins) (VectorNav)
+- [What is an Inertial Navigation System?](https://www.vectornav.com/resources/inertial-navigation-articles/what-is-an-ins) (VectorNav)
- [Inertial Navigation Primer](https://www.vectornav.com/resources/inertial-navigation-primer) (VectorNav)
diff --git a/docs/en/sensor/inertiallabs.md b/docs/en/sensor/inertiallabs.md
index 2d677e0d53..45fc7197a0 100644
--- a/docs/en/sensor/inertiallabs.md
+++ b/docs/en/sensor/inertiallabs.md
@@ -21,8 +21,8 @@ The mode is configurable using a parameter.
[Get technical support or send requests to sales team](https://inertiallabs.com/inertial-labs-inc/contact-inertial-labs-team/).
Recommended sensors:
-- [INS-U GNSS/INS](https://inertiallabs.com/ins-u-datasheet): Recommended for fixed-wing systems without hovering, where static heading is not necessary.
-- [INS-DU DUAL GNSS/INS](https://inertiallabs.com/ins-du-datasheet): Recommended for multicopter systems where hovering and low dynamics requires the use of static heading.
+- [INS-U GNSS/INS](https://inertiallabs.com/wp-content/uploads/2026/01/INS-U_INS-U-OEM_Datasheet_REV2.18_JAN2026.pdf): Recommended for fixed-wing systems without hovering, where static heading is not necessary.
+- [INS-DU DUAL GNSS/INS](https://inertiallabs.com/wp-content/uploads/2025/12/INS-DU_INS-DU-OEM_Datasheet_REV1.00_DEC2025.pdf): Recommended for multicopter systems where hovering and low dynamics requires the use of static heading.
## Hardware Setup
diff --git a/docs/en/sensor/lidar_lite.md b/docs/en/sensor/lidar_lite.md
index 56162491fe..7c7bc4a5e1 100644
--- a/docs/en/sensor/lidar_lite.md
+++ b/docs/en/sensor/lidar_lite.md
@@ -6,7 +6,7 @@ LIDAR-Lite is a compact, high-performance optical distant measurement sensor sol
## Where to Buy
-- [LIDAR-Lite v3](https://buy.garmin.com/en-AU/AU/p/557294) (5cm - 40m)
+- [LIDAR-Lite v3](https://www.garmin.com/en-AU/p/557294/) (5cm - 40m)
## Pinouts
diff --git a/docs/en/sensor/microstrain.md b/docs/en/sensor/microstrain.md
index 9a6964180d..b969b18ea0 100644
--- a/docs/en/sensor/microstrain.md
+++ b/docs/en/sensor/microstrain.md
@@ -7,10 +7,10 @@ Widely used across industries like aerospace, robotics, industrial automation, a
The driver currently supports the following hardware:
-- [`MicroStrain CV7-AR`](https://www.hbkworld.com/en/products/transducers/inertial-sensors/vertical-reference-units--vru-/3dm-cv7-ar): Inertial Measurement Unit (IMU) and Vertical Reference Unit (VRU)
-- [`MicroStrain CV7-AHRS`](https://www.hbkworld.com/en/products/transducers/inertial-sensors/attitude-and-heading-reference-systems--ahrs-/3dm-cv7-ahrs): Inertial Measurement Unit (IMU) and Attitude Heading Reference System (AHRS)
-- [`MicroStrain CV7-INS`](https://www.hbkworld.com/en/products/transducers/inertial-sensors/inertial-navigation-systems--ins-/3dm-cv7-ins): Inertial Measurement Unit (IMU) and Inertial Navigation System (INS).
-- [`MicroStrain CV7-GNSS/INS`](https://www.hbkworld.com/en/products/transducers/inertial-sensors/inertial-navigation-systems--ins-/3dm-cv7-gnss-ins): Inertial Measurement Unit (IMU) and Inertial Navigation System (INS) combined with dual multiband (GNSS) receivers.
+- [`MicroStrain CV7-AR`](https://www.hbkworld.com/en/products/transducers/inertial-sensors/vertical-reference/3dm-cv7-ar): Inertial Measurement Unit (IMU) and Vertical Reference Unit (VRU)
+- [`MicroStrain CV7-AHRS`](https://www.microstrain.com/inertial-sensors/3dm-cv7-ahrs): Inertial Measurement Unit (IMU) and Attitude Heading Reference System (AHRS)
+- [`MicroStrain CV7-INS`](https://www.microstrain.com/inertial-sensors/3dm-cv7-ins): Inertial Measurement Unit (IMU) and Inertial Navigation System (INS).
+- [`MicroStrain CV7-GNSS/INS`](https://www.hbkworld.com/en/products/transducers/inertial-sensors/navigation/3dm-cv7-gnss-ins): Inertial Measurement Unit (IMU) and Inertial Navigation System (INS) combined with dual multiband (GNSS) receivers.
PX4 can use these sensors to provide raw IMU data for EKF2 or to replace EKF2 as an external INS.
For more information, including user manuals and datasheets, please refer to the sensors product page.
@@ -18,7 +18,7 @@ For more information, including user manuals and datasheets, please refer to the
## Where to Buy
MicroStrain sensors can be purchased through HBK's official [MicroStrain product page](https://www.hbkworld.com/en/products/transducers/inertial-sensors) or through authorized distributors globally.
-For large orders, custom requirements, or technical inquiries, reach out directly to [sales](https://www.hbkworld.com/en/contact-us/contact-sales-microstrain)
+For large orders, custom requirements, or technical inquiries, reach out directly to [sales](https://www.hbkworld.com/en/contact-us)
## Hardware Setup
diff --git a/docs/en/sensor/optical_flow.md b/docs/en/sensor/optical_flow.md
index f76a40b4bb..ddc8a48297 100644
--- a/docs/en/sensor/optical_flow.md
+++ b/docs/en/sensor/optical_flow.md
@@ -71,7 +71,7 @@ It is used in a number of products, including some from: Bitcraze, Tindie, Hex,
### Other Cameras/Sensors
It is also possible to use a board/quad that has an integrated camera.
-For this the [Optical Flow repo](https://github.com/PX4/OpticalFlow) can be used (see also [snap_cam](https://github.com/PX4/snap_cam)).
+For this the [Optical Flow repo](https://github.com/PX4/PX4-OpticalFlow) can be used (see also [snap_cam](https://github.com/PX4/snap_cam)).
## Range Finders
diff --git a/docs/en/sensor/rangefinders.md b/docs/en/sensor/rangefinders.md
index 425b129241..90e1b6a0e9 100644
--- a/docs/en/sensor/rangefinders.md
+++ b/docs/en/sensor/rangefinders.md
@@ -93,7 +93,7 @@ It has a sensor range from (5cm - 40m) and can be connected to either PWM or I2C
### MaxBotix I2CXL-MaxSonar-EZ
-The MaxBotix [I2CXL-MaxSonar-EZ](https://www.maxbotix.com/product-category/i2cxl-maxsonar-ez-products) range has a number of relatively short-ranged sonar based rangefinders that are suitable for assisted takeoff/landing and collision avoidance.
+The MaxBotix [I2CXL-MaxSonar-EZ](https://maxbotix.com/collections/i2cxl-maxsonar-ez-products) range has a number of relatively short-ranged sonar based rangefinders that are suitable for assisted takeoff/landing and collision avoidance.
These can be connected using an I2C port.
The rangefinders are enabled using the parameter [SENS_EN_MB12XX](../advanced_config/parameter_reference.md#SENS_EN_MB12XX).
@@ -163,7 +163,7 @@ Features:
- [VL53L1CBV0FY-1](https://www.st.com/resource/en/datasheet/vl53l1.pdf) sensor
- Input voltage sensor
-- CAN connectors: 2 [UCANPHY Micro (JST-GH 4)](https://raccoonlabdev.github.io/docs/guide/wires/).
+- CAN connectors: 2 [UCANPHY Micro (JST-GH 4)](https://docs.raccoonlab.co/guide/wires/).
## Configuration/Setup {#configuration}
diff --git a/docs/en/sensor/sbgecom.md b/docs/en/sensor/sbgecom.md
index 2115f1f4c1..60b79771af 100644
--- a/docs/en/sensor/sbgecom.md
+++ b/docs/en/sensor/sbgecom.md
@@ -2,7 +2,7 @@
[SBG-Systems](https://www.sbg-systems.com/) designs, manufactures, and support an extensive range of state-of-the-art inertial sensors such as Inertial Measurement Units (IMU), Attitude and Heading Reference Systems (AHRS), Inertial Navigation Systems with embedded GNSS (INS/GNSS), and so on.
-PX4 supports [all SBG Systems products](https://www.sbg-systems.com/products/) and can use these as an [external INS](../sensor/inertial_navigation_systems.md) (bypassing/replacing the EKF2 estimator), or as a source of raw sensor data provided to the navigation estimator.
+PX4 supports [all SBG Systems products](https://www.sbg-systems.com/) and can use these as an [external INS](../sensor/inertial_navigation_systems.md) (bypassing/replacing the EKF2 estimator), or as a source of raw sensor data provided to the navigation estimator.

@@ -17,7 +17,7 @@ SBG Systems products provide a range of benefits to PX4 users and can be integra
The sbgECom PX4 driver is streamlined to provide a simple plug-and-play architecture, removing engineering obstacles and allowing the acceleration of the design, development, and launch of platforms to keep pace with the rapid rate of innovation.
-The driver supports [all SBG Systems products](https://www.sbg-systems.com/products/).
+The driver supports [all SBG Systems products](https://www.sbg-systems.com/).
In particular the following systems are recommended:
- **Pulse:** Recommended for fixed-wing systems without hovering, where static heading is not necessary.
@@ -142,5 +142,5 @@ Published topics can be viewed using the `listener` command.
## Hardware Specifications
-- [Product Briefs](https://www.sbg-systems.com/products/)
+- [Product Briefs](https://www.sbg-systems.com/)
- [Datasheets](https://www.sbg-systems.com/contact/#products)
diff --git a/docs/en/sensor/sf45_rotating_lidar.md b/docs/en/sensor/sf45_rotating_lidar.md
index 796c194440..39dc53a02b 100644
--- a/docs/en/sensor/sf45_rotating_lidar.md
+++ b/docs/en/sensor/sf45_rotating_lidar.md
@@ -12,7 +12,7 @@ You will need to [create and use a custom build](#add-the-driver-to-the-px4-buil
## LightWare Studio Setup
-In the [LightWare Studio](https://www.lightwarelidar.com/resources-software) app set following values:
+In the [LightWare Studio](https://lightwarelidar.com/resources-software/) app set following values:
| Parameter | Description |
| --------- | ----------- |
diff --git a/docs/en/sensor/sfxx_lidar.md b/docs/en/sensor/sfxx_lidar.md
index 2ca57d9972..ea17162b36 100644
--- a/docs/en/sensor/sfxx_lidar.md
+++ b/docs/en/sensor/sfxx_lidar.md
@@ -9,14 +9,14 @@ These are useful for applications including terrain following, precision hoverin
The following models are supported by PX4, and can be connected to either the I2C or Serial bus (the tables below indicates what bus can be used for each model).
-| Model | Range (m) | Bus | Description |
-| ------------------------------------------------------- | --------- | ----------------- | ------------------------------------------------------------------------------------------ |
-| [SF11/C](https://lightwarelidar.com/shop/sf11-c-100-m/) | 100 | Serial or I2C bus |
-| [LW20/C](https://lightware.co.za/products/lw20-c-100-m) | 100 | I2C bus | Waterproofed (IP67) with servo for sense-and-avoid applications |
-| [SF30/D](https://lightwarelidar.com/shop/sf30-d-200-m/) | 200 | I2C bus | Waterproofed (IP67) |
-| [SF45/B](../sensor/sf45_rotating_lidar.md) | 50 | Serial | Rotary Lidar (Used for [Collision Prevention](../computer_vision/collision_prevention.md)) |
-| [GRF250](../sensor/grf_lidar.md) | 250 | Serial or I2C | Gimbal Range Finder |
-| [GRF500](../sensor/grf_lidar.md) | 500 | Serial or I2C | Gimbal Range Finder |
+| Model | Range (m) | Bus | Description |
+| ---------------------------------------------------------- | --------- | ----------------- | ------------------------------------------------------------------------------------------ |
+| [SF11/C](https://lightwarelidar.com/shop/sf11-c-100-m/) | 100 | Serial or I2C bus |
+| [LW20/C](https://lightwarelidar.com/products/lw20-c-100-m) | 100 | I2C bus | Waterproofed (IP67) with servo for sense-and-avoid applications |
+| [SF30/D](https://lightwarelidar.com/shop/sf30-d-200-m/) | 200 | I2C bus | Waterproofed (IP67) |
+| [SF45/B](../sensor/sf45_rotating_lidar.md) | 50 | Serial | Rotary Lidar (Used for [Collision Prevention](../computer_vision/collision_prevention.md)) |
+| [GRF250](../sensor/grf_lidar.md) | 250 | Serial or I2C | Gimbal Range Finder |
+| [GRF500](../sensor/grf_lidar.md) | 500 | Serial or I2C | Gimbal Range Finder |
::: details Discontinued
diff --git a/docs/en/sensor/thunderfly_tachometer.md b/docs/en/sensor/thunderfly_tachometer.md
index 779af6f29a..30f37a61b0 100644
--- a/docs/en/sensor/thunderfly_tachometer.md
+++ b/docs/en/sensor/thunderfly_tachometer.md
@@ -31,7 +31,7 @@ The LED lights up when the pulse input is grounded or exposed to logical 0, so y
Hall-Effect sensors (magnetically operated) are ideal for harsh environments, where dirt, dust, and water can contact the sensed rotor.
Many different hall effect sensors are commercially available.
-For example, a [55100 Miniature Flange Mounting Proximity Sensor](https://m.littelfuse.com/media?resourcetype=datasheets&itemid=6d69d457-770e-46ba-9998-012c5e0aedd7&filename=littelfuse-hall-effect-sensors-55100-datasheet) is a good choice.
+For example, a [55100 Miniature Flange Mounting Proximity Sensor](https://m.littelfuse.com/assetdocs/littelfuse-hall-effect-sensors-55100-datasheet?assetguid=6d69d457-770e-46ba-9998-012c5e0aedd7) is a good choice.

diff --git a/docs/en/sensor/vectornav.md b/docs/en/sensor/vectornav.md
index 9e1dae0f2d..bd1c12c1f8 100644
--- a/docs/en/sensor/vectornav.md
+++ b/docs/en/sensor/vectornav.md
@@ -76,7 +76,7 @@ IMU data should be published at 800Hz (400Hz if using VN-300).
## VectorNav Configuration
-Definitions for all commands and registers referenced in this section can be found in the respective [VectorNav ICD](https://www.vectornav.com/resources/interface-control-documents).
+Definitions for all commands and registers referenced in this section can be found in the respective [VectorNav ICD](https://www.vectornav.com/resources/interface-control-documents).
Upon initialization, PX4 configures the VectorNav unit as follows:
diff --git a/docs/en/sensor_bus/translator_tfi2cadt.md b/docs/en/sensor_bus/translator_tfi2cadt.md
index 0c12106d78..002a47eedf 100644
--- a/docs/en/sensor_bus/translator_tfi2cadt.md
+++ b/docs/en/sensor_bus/translator_tfi2cadt.md
@@ -13,7 +13,7 @@ The module contains two pairs of connectors, each pair responsible for different
::: info
[TFI2CADT01](https://github.com/ThunderFly-aerospace/TFI2CADT01) is designed as open-source hardware with GPLv3 license.
-It is commercially available from [ThunderFly](https://www.thunderfly.cz/) company or from [Tindie eshop](https://www.tindie.com/products/26353/).
+It is commercially available from [ThunderFly](https://www.thunderfly.cz/) company or from [Tindie eshop](https://www.tindie.com/products/thunderfly/tfi2cadt01-pixhawk-i2c-address-translator/).
:::
## Address Translation Method
@@ -30,7 +30,7 @@ If you need your own value for address translation, changing the configuration r
The tachometer sensor [TFRPM01](../sensor/thunderfly_tachometer.md) can be set to two different addresses using a solder jumper.
If the autopilot has three buses, only 6 sensors can be connected and no bus remains free (2 available addresses \* 3 I2C ports).
In some multicopters or VTOL solutions, there is a need to measure the RPM of 8 or more elements.
-The [TFI2CADT01](https://www.tindie.com/products/26353/) is highly recommended in this case.
+The [TFI2CADT01](https://www.tindie.com/products/thunderfly/tfi2cadt01-pixhawk-i2c-address-translator/) is highly recommended in this case.

diff --git a/docs/en/sim_gazebo_gz/gazebo_models.md b/docs/en/sim_gazebo_gz/gazebo_models.md
index 34af877400..623cf8e711 100644
--- a/docs/en/sim_gazebo_gz/gazebo_models.md
+++ b/docs/en/sim_gazebo_gz/gazebo_models.md
@@ -45,7 +45,7 @@ You can connect a PX4-enabled vehicle to an instance of _gz-server_ using severa
You can then drag and drop any PX4 model into your simulation.
::: info
- These models are taken from an web-server called [Gazebo Fuel](https://app.gazebosim.org/dashboard), which essentially acts as an online database for all types of models and worlds that can be launched in Gazebo.
+ These models are taken from an web-server called [Gazebo Fuel](https://app.gazebosim.org/PX4), which essentially acts as an online database for all types of models and worlds that can be launched in Gazebo.
:::
After dropping the vehicle of your choice into Gazebo, launch PX4 SITL with:
diff --git a/docs/en/sim_gazebo_gz/index.md b/docs/en/sim_gazebo_gz/index.md
index 8f4ed2fee8..4f6686acfc 100644
--- a/docs/en/sim_gazebo_gz/index.md
+++ b/docs/en/sim_gazebo_gz/index.md
@@ -5,7 +5,7 @@ Gazebo was previously known as "Gazebo Ignition" (while _Gazebo Classic_ was pre
See the [official blog post](https://www.openrobotics.org/blog/2022/4/6/a-new-era-for-gazebo) for more information.
:::
-[Gazebo](https://gazebosim.org/home) is an open source robotics simulator.
+[Gazebo](https://gazebosim.org/docs/latest/getstarted/) is an open source robotics simulator.
It supersedes the older [Gazebo Classic](../sim_gazebo_classic/index.md) simulator, and is the only supported version of Gazebo for Ubuntu 22.04 and onwards.
**Supported Vehicles:** Quadrotor, Plane, VTOL, Rover
diff --git a/docs/en/sim_sih/index.md b/docs/en/sim_sih/index.md
index adbcff61ae..07312cca95 100644
--- a/docs/en/sim_sih/index.md
+++ b/docs/en/sim_sih/index.md
@@ -314,7 +314,7 @@ For SIH as SITL (no FC):
- `param set-default SENS_EN_MAGSIM 1`
- `param set-default SENS_EN_ARSPDSIM 1` (if it is a fixed-wing or VTOL airframe with airspeed sensor)
-For specific examples see the `_sihsim_` airframes in [ROMFS/px4fmu_common/init.d-posix/airframes](https://github.com/PX4/PX4-Autopilot/blob/main/ROMFS/px4fmu_common/init.d-posix/airframes/) (SIH as SITL) and [ROMFS/px4fmu_common/init.d/airframes](https://github.com/PX4/PX4-Autopilot/tree/main/ROMFS/px4fmu_common/init.d/airframes) (SIH on FC).
+For specific examples see the `_sihsim_` airframes in [ROMFS/px4fmu_common/init.d-posix/airframes](https://github.com/PX4/PX4-Autopilot/tree/main/ROMFS/px4fmu_common/init.d-posix/airframes) (SIH as SITL) and [ROMFS/px4fmu_common/init.d/airframes](https://github.com/PX4/PX4-Autopilot/tree/main/ROMFS/px4fmu_common/init.d/airframes) (SIH on FC).
## Controlling Actuators in SIH
diff --git a/docs/en/simulation/index.md b/docs/en/simulation/index.md
index 9951cd4fde..e3b38c4277 100644
--- a/docs/en/simulation/index.md
+++ b/docs/en/simulation/index.md
@@ -67,7 +67,7 @@ The messages are described below (see links for specific detail).
-PX4 directly uses the [Gazebo API](https://gazebosim.org/docs) to interface with [Gazebo](../sim_gazebo_gz/index.md) and MAVlink is not required.
+PX4 directly uses the [Gazebo API](https://gazebosim.org/docs/) to interface with [Gazebo](../sim_gazebo_gz/index.md) and MAVlink is not required.
## Default PX4 MAVLink UDP Ports
@@ -209,7 +209,7 @@ For setup information see the _QGroundControl User Guide_:
PX4 supports capture of both still images and video from within the [Gazebo Classic](../sim_gazebo_classic/index.md) simulated environment.
This can be enabled/set up as described in [Gazebo Glassic > Video Streaming](../sim_gazebo_classic/index.md#video-streaming).
-The simulated camera is a gazebo classic plugin that implements the [MAVLink Camera Protocol](https://mavlink.io/en/protocol/camera.html) .
+The simulated camera is a gazebo classic plugin that implements the [MAVLink Camera Protocol](https://mavlink.io/en/services/camera.html) .
PX4 connects/integrates with this camera in _exactly the same way_ as it would with any other MAVLink camera:
1. [TRIG_INTERFACE](../advanced_config/parameter_reference.md#TRIG_INTERFACE) must be set to `3` to configure the camera trigger driver for use with a MAVLink camera
diff --git a/docs/en/smart_batteries/rotoye_batmon.md b/docs/en/smart_batteries/rotoye_batmon.md
index a50eba58e2..2b8963a818 100644
--- a/docs/en/smart_batteries/rotoye_batmon.md
+++ b/docs/en/smart_batteries/rotoye_batmon.md
@@ -1,6 +1,6 @@
# Rotoye Batmon
-[Rotoye Batmon](https://rotoye.com/batmon/) is a kit for adding smart battery functionality to off-the-shelf Lithium-Ion and LiPo batteries.
+[Rotoye Batmon](https://shop.rotoye.com/batmon/) is a kit for adding smart battery functionality to off-the-shelf Lithium-Ion and LiPo batteries.
It can be purchased as a standalone unit or as part of a factory-assembled smart-battery.

@@ -9,7 +9,7 @@ It can be purchased as a standalone unit or as part of a factory-assembled smart
## Where to Buy
-[Rotoye Store](https://rotoye.com/batmon/): Batmon kits, custom smart-batteries, and accessories
+[Rotoye Store](https://shop.rotoye.com/batmon/): Batmon kits, custom smart-batteries, and accessories
## Wiring/Connections
diff --git a/docs/en/software_update/stm32_bootloader.md b/docs/en/software_update/stm32_bootloader.md
index cbb0d2648d..fac2fb498e 100644
--- a/docs/en/software_update/stm32_bootloader.md
+++ b/docs/en/software_update/stm32_bootloader.md
@@ -62,7 +62,7 @@ arm-none-eabi-gdb
### J-Link
-These instructions are for the [J-Link GDB server](https://www.segger.com/jlink-gdb-server.html).
+These instructions are for the [J-Link GDB server](https://www.segger.com/products/debug-probes/j-link/tools/j-link-gdb-server/about-j-link-gdb-server/).
#### Prerequisites
diff --git a/docs/en/telemetry/cuav_p8_radio.md b/docs/en/telemetry/cuav_p8_radio.md
index a20873b889..f8440a664d 100644
--- a/docs/en/telemetry/cuav_p8_radio.md
+++ b/docs/en/telemetry/cuav_p8_radio.md
@@ -19,7 +19,7 @@ It supports multiple modes such as point-to-point, point-to-multipoint, and rela
## Where to Buy
-- [CUAV store](https://www.cuav.net/en/p8-2/)
+- [CUAV store](https://www.cuav.net/en/p8-en/)
- [CUAV alibaba](https://www.alibaba.com/product-detail/Free-shipping-CUAV-UAV-P8-Radio_1600324379418.html?spm=a2747.manage.0.0.2dca71d2bY4B0M)
## PX4 Configuration
@@ -61,6 +61,6 @@ CUAV P8 Radio does not support power supply from the flight controller, it needs
## More information
-[P8 manual](http://manual.cuav.net/data-transmission/p8-radio/p8-user-manual-en.pdf)
+[P8 manual](https://manual.cuav.net/data-transmission/p8-radio/p8_user_manual_cn.pdf)
[CUAV P8 Radio](https://doc.cuav.net/data-transmission/p8-radio/en/) (Official Guide)