diff --git a/docs/en/advanced_config/parameter_reference.md b/docs/en/advanced_config/parameter_reference.md
index be3672afdd..3d07b00099 100644
--- a/docs/en/advanced_config/parameter_reference.md
+++ b/docs/en/advanced_config/parameter_reference.md
@@ -36855,6 +36855,16 @@ GRF Sensor Model used to distinush between the GRF250 and GRF500 since both have
| ------- | -------- | -------- | --------- | ------- | ---- | --------- |
| ✓ | | | | 0 | | |
+### HEATER1_IMAX (`FLOAT`) {#HEATER1_IMAX}
+
+Heater controller 1 integrator clamp.
+
+Limits the maximum (and minimum) contribution of the integrator term to the controller output.
+
+| Reboot | minValue | maxValue | increment | default | unit | Read-Only |
+| ------- | -------- | -------- | --------- | ------- | ---- | --------- |
+| ✓ | 0.0 | 0.25 | | 0.25 | | |
+
### HEATER1_IMU_ID (`INT32`) {#HEATER1_IMU_ID}
The ID of the IMU controlled by heater 1.
@@ -36868,6 +36878,17 @@ a valid DEVID must be configured for each heater to ensure a 1:1 mapping between
| ------- | -------- | -------- | --------- | ------- | ---- | --------- |
| ✓ | | | | 0 | | |
+### HEATER1_NOM_V (`FLOAT`) {#HEATER1_NOM_V}
+
+Nominal supply voltage for heater 1.
+
+Used to limit the PWM duty cycle when the actual supply voltage exceeds this value,
+to prevent excess power dissipation. Set to 0 to disable voltage-based limiting.
+
+| Reboot | minValue | maxValue | increment | default | unit | Read-Only |
+| ------- | -------- | -------- | --------- | ------- | ---- | --------- |
+| ✓ | 0 | 100.0 | | 0.0 | V | |
+
### HEATER1_TEMP (`FLOAT`) {#HEATER1_TEMP}
Target temperature for heater 1.
@@ -36912,6 +36933,27 @@ The proportional gain determines how quickly the controller responds to temperat
| ------- | -------- | -------- | --------- | ------- | ---- | --------- |
| ✓ | 0 | 2.0 | | 1.0 | us/C | |
+### HEATER1_TEMP_SRC (`INT32`) {#HEATER1_TEMP_SRC}
+
+Temperature source for heater 1.
+
+Selects the sensor used as the temperature input for heater control.
+0 = IMU (sensor_accel temperature), 1 = Hygrometer (sensor_hygrometer temperature).
+
+| Reboot | minValue | maxValue | increment | default | unit | Read-Only |
+| ------- | -------- | -------- | --------- | ------- | ---- | --------- |
+| ✓ | | | | 0 | | |
+
+### HEATER2_IMAX (`FLOAT`) {#HEATER2_IMAX}
+
+Heater controller 2 integrator clamp.
+
+Limits the maximum (and minimum) contribution of the integrator term to the controller output.
+
+| Reboot | minValue | maxValue | increment | default | unit | Read-Only |
+| ------- | -------- | -------- | --------- | ------- | ---- | --------- |
+| ✓ | 0.0 | 0.25 | | 0.25 | | |
+
### HEATER2_IMU_ID (`INT32`) {#HEATER2_IMU_ID}
The ID of the IMU controlled by heater 2.
@@ -36925,6 +36967,17 @@ a valid DEVID must be configured for each heater to ensure a 1:1 mapping between
| ------- | -------- | -------- | --------- | ------- | ---- | --------- |
| ✓ | | | | 0 | | |
+### HEATER2_NOM_V (`FLOAT`) {#HEATER2_NOM_V}
+
+Nominal supply voltage for heater 2.
+
+Used to limit the PWM duty cycle when the actual supply voltage exceeds this value,
+to prevent excess power dissipation. Set to 0 to disable voltage-based limiting.
+
+| Reboot | minValue | maxValue | increment | default | unit | Read-Only |
+| ------- | -------- | -------- | --------- | ------- | ---- | --------- |
+| ✓ | 0 | 100.0 | | 0.0 | V | |
+
### HEATER2_TEMP (`FLOAT`) {#HEATER2_TEMP}
Target temperature for heater 2.
@@ -36969,6 +37022,27 @@ The proportional gain determines how quickly the controller responds to temperat
| ------- | -------- | -------- | --------- | ------- | ---- | --------- |
| ✓ | 0 | 2.0 | | 1.0 | us/C | |
+### HEATER2_TEMP_SRC (`INT32`) {#HEATER2_TEMP_SRC}
+
+Temperature source for heater 2.
+
+Selects the sensor used as the temperature input for heater control.
+0 = IMU (sensor_accel temperature), 1 = Hygrometer (sensor_hygrometer temperature).
+
+| Reboot | minValue | maxValue | increment | default | unit | Read-Only |
+| ------- | -------- | -------- | --------- | ------- | ---- | --------- |
+| ✓ | | | | 0 | | |
+
+### HEATER3_IMAX (`FLOAT`) {#HEATER3_IMAX}
+
+Heater controller 3 integrator clamp.
+
+Limits the maximum (and minimum) contribution of the integrator term to the controller output.
+
+| Reboot | minValue | maxValue | increment | default | unit | Read-Only |
+| ------- | -------- | -------- | --------- | ------- | ---- | --------- |
+| ✓ | 0.0 | 0.25 | | 0.25 | | |
+
### HEATER3_IMU_ID (`INT32`) {#HEATER3_IMU_ID}
The ID of the IMU controlled by heater 3.
@@ -36982,6 +37056,17 @@ a valid DEVID must be configured for each heater to ensure a 1:1 mapping between
| ------- | -------- | -------- | --------- | ------- | ---- | --------- |
| ✓ | | | | 0 | | |
+### HEATER3_NOM_V (`FLOAT`) {#HEATER3_NOM_V}
+
+Nominal supply voltage for heater 3.
+
+Used to limit the PWM duty cycle when the actual supply voltage exceeds this value,
+to prevent excess power dissipation. Set to 0 to disable voltage-based limiting.
+
+| Reboot | minValue | maxValue | increment | default | unit | Read-Only |
+| ------- | -------- | -------- | --------- | ------- | ---- | --------- |
+| ✓ | 0 | 100.0 | | 0.0 | V | |
+
### HEATER3_TEMP (`FLOAT`) {#HEATER3_TEMP}
Target temperature for heater 3.
@@ -37026,6 +37111,17 @@ The proportional gain determines how quickly the controller responds to temperat
| ------- | -------- | -------- | --------- | ------- | ---- | --------- |
| ✓ | 0 | 2.0 | | 1.0 | us/C | |
+### HEATER3_TEMP_SRC (`INT32`) {#HEATER3_TEMP_SRC}
+
+Temperature source for heater 3.
+
+Selects the sensor used as the temperature input for heater control.
+0 = IMU (sensor_accel temperature), 1 = Hygrometer (sensor_hygrometer temperature).
+
+| Reboot | minValue | maxValue | increment | default | unit | Read-Only |
+| ------- | -------- | -------- | --------- | ------- | ---- | --------- |
+| ✓ | | | | 0 | | |
+
### ILABS_MODE (`INT32`) {#ILABS_MODE}
InertialLabs INS sensor mode configuration.
diff --git a/docs/en/middleware/dds_topics.md b/docs/en/middleware/dds_topics.md
index eb16902b86..1a7666c236 100644
--- a/docs/en/middleware/dds_topics.md
+++ b/docs/en/middleware/dds_topics.md
@@ -95,219 +95,219 @@ They are not build into the module, and hence are neither published or subscribe
::: details See messages
-- [GeneratorStatus](../msg_docs/GeneratorStatus.md)
-- [VelocityLimits](../msg_docs/VelocityLimits.md)
-- [GimbalControls](../msg_docs/GimbalControls.md)
-- [PositionControllerStatus](../msg_docs/PositionControllerStatus.md)
-- [ManualControlSwitches](../msg_docs/ManualControlSwitches.md)
-- [SensorAirflow](../msg_docs/SensorAirflow.md)
-- [VteAidSource3d](../msg_docs/VteAidSource3d.md)
-- [NavigatorStatus](../msg_docs/NavigatorStatus.md)
-- [RegisterExtComponentReplyV0](../msg_docs/RegisterExtComponentReplyV0.md)
-- [VehicleMagnetometer](../msg_docs/VehicleMagnetometer.md)
-- [VteInput](../msg_docs/VteInput.md)
-- [EscStatus](../msg_docs/EscStatus.md)
-- [QshellRetval](../msg_docs/QshellRetval.md)
-- [BatteryStatusV0](../msg_docs/BatteryStatusV0.md)
-- [GeofenceStatus](../msg_docs/GeofenceStatus.md)
-- [MagnetometerBiasEstimate](../msg_docs/MagnetometerBiasEstimate.md)
-- [DatamanResponse](../msg_docs/DatamanResponse.md)
-- [ParameterResetRequest](../msg_docs/ParameterResetRequest.md)
-- [RaptorInput](../msg_docs/RaptorInput.md)
-- [RoverRateStatus](../msg_docs/RoverRateStatus.md)
-- [HeaterStatus](../msg_docs/HeaterStatus.md)
-- [Ping](../msg_docs/Ping.md)
-- [OrbTest](../msg_docs/OrbTest.md)
-- [RoverSpeedStatus](../msg_docs/RoverSpeedStatus.md)
-- [ArmingCheckRequestV0](../msg_docs/ArmingCheckRequestV0.md)
-- [GpioConfig](../msg_docs/GpioConfig.md)
-- [TaskStackInfo](../msg_docs/TaskStackInfo.md)
-- [RateCtrlStatus](../msg_docs/RateCtrlStatus.md)
-- [ActuatorArmed](../msg_docs/ActuatorArmed.md)
-- [Px4ioStatus](../msg_docs/Px4ioStatus.md)
-- [ControlAllocatorStatus](../msg_docs/ControlAllocatorStatus.md)
-- [TargetGnss](../msg_docs/TargetGnss.md)
-- [EscEepromRead](../msg_docs/EscEepromRead.md)
-- [OrbTestMedium](../msg_docs/OrbTestMedium.md)
-- [GeofenceResult](../msg_docs/GeofenceResult.md)
-- [SensorAccel](../msg_docs/SensorAccel.md)
-- [FiducialMarkerPosReport](../msg_docs/FiducialMarkerPosReport.md)
-- [DistanceSensorModeChangeRequest](../msg_docs/DistanceSensorModeChangeRequest.md)
-- [GimbalManagerStatus](../msg_docs/GimbalManagerStatus.md)
-- [EscEepromWrite](../msg_docs/EscEepromWrite.md)
-- [EscReport](../msg_docs/EscReport.md)
-- [VehicleLocalPositionV0](../msg_docs/VehicleLocalPositionV0.md)
-- [VehicleAngularAccelerationSetpoint](../msg_docs/VehicleAngularAccelerationSetpoint.md)
-- [FigureEightStatus](../msg_docs/FigureEightStatus.md)
-- [OrbitStatus](../msg_docs/OrbitStatus.md)
-- [LandingTargetPose](../msg_docs/LandingTargetPose.md)
-- [ActuatorControlsStatus](../msg_docs/ActuatorControlsStatus.md)
-- [PositionSetpoint](../msg_docs/PositionSetpoint.md)
-- [DatamanRequest](../msg_docs/DatamanRequest.md)
-- [EstimatorBias](../msg_docs/EstimatorBias.md)
-- [VehicleStatusV1](../msg_docs/VehicleStatusV1.md)
-- [SensorPreflightMag](../msg_docs/SensorPreflightMag.md)
-- [AdcReport](../msg_docs/AdcReport.md)
-- [FixedWingRunwayControl](../msg_docs/FixedWingRunwayControl.md)
-- [ActuatorOutputs](../msg_docs/ActuatorOutputs.md)
-- [SensorsStatusImu](../msg_docs/SensorsStatusImu.md)
-- [Cpuload](../msg_docs/Cpuload.md)
-- [GimbalManagerSetManualControl](../msg_docs/GimbalManagerSetManualControl.md)
-- [FailureDetectorStatus](../msg_docs/FailureDetectorStatus.md)
-- [VehicleImu](../msg_docs/VehicleImu.md)
-- [UavcanParameterRequest](../msg_docs/UavcanParameterRequest.md)
-- [FiducialMarkerYawReport](../msg_docs/FiducialMarkerYawReport.md)
-- [EstimatorSensorBias](../msg_docs/EstimatorSensorBias.md)
-- [RangingBeacon](../msg_docs/RangingBeacon.md)
-- [DronecanNodeStatus](../msg_docs/DronecanNodeStatus.md)
-- [MissionResult](../msg_docs/MissionResult.md)
-- [Rpm](../msg_docs/Rpm.md)
-- [YawEstimatorStatus](../msg_docs/YawEstimatorStatus.md)
-- [CameraCapture](../msg_docs/CameraCapture.md)
-- [VehicleRoi](../msg_docs/VehicleRoi.md)
-- [VehicleAngularVelocity](../msg_docs/VehicleAngularVelocity.md)
-- [RaptorStatus](../msg_docs/RaptorStatus.md)
-- [LoggerStatus](../msg_docs/LoggerStatus.md)
-- [SystemPower](../msg_docs/SystemPower.md)
-- [FollowTargetEstimator](../msg_docs/FollowTargetEstimator.md)
-- [DebugValue](../msg_docs/DebugValue.md)
-- [PurePursuitStatus](../msg_docs/PurePursuitStatus.md)
-- [EstimatorEventFlags](../msg_docs/EstimatorEventFlags.md)
-- [Gripper](../msg_docs/Gripper.md)
-- [SensorCorrection](../msg_docs/SensorCorrection.md)
-- [CameraTrigger](../msg_docs/CameraTrigger.md)
-- [HomePositionV0](../msg_docs/HomePositionV0.md)
-- [RtlTimeEstimate](../msg_docs/RtlTimeEstimate.md)
-- [InputRc](../msg_docs/InputRc.md)
-- [AirspeedWind](../msg_docs/AirspeedWind.md)
-- [SensorUwb](../msg_docs/SensorUwb.md)
-- [SensorGyroFifo](../msg_docs/SensorGyroFifo.md)
-- [LandingGearWheel](../msg_docs/LandingGearWheel.md)
-- [BatteryInfo](../msg_docs/BatteryInfo.md)
-- [FixedWingLateralStatus](../msg_docs/FixedWingLateralStatus.md)
-- [VehicleStatusV3](../msg_docs/VehicleStatusV3.md)
-- [DebugVect](../msg_docs/DebugVect.md)
-- [SensorTemp](../msg_docs/SensorTemp.md)
-- [LedControl](../msg_docs/LedControl.md)
-- [OpenDroneIdArmStatus](../msg_docs/OpenDroneIdArmStatus.md)
-- [RcChannels](../msg_docs/RcChannels.md)
-- [SensorGyro](../msg_docs/SensorGyro.md)
-- [RtlStatus](../msg_docs/RtlStatus.md)
-- [VehicleConstraints](../msg_docs/VehicleConstraints.md)
-- [VehicleCommandAckV0](../msg_docs/VehicleCommandAckV0.md)
-- [MavlinkTunnel](../msg_docs/MavlinkTunnel.md)
-- [GpsDump](../msg_docs/GpsDump.md)
-- [ParameterSetValueResponse](../msg_docs/ParameterSetValueResponse.md)
-- [TrajectorySetpoint6dof](../msg_docs/TrajectorySetpoint6dof.md)
-- [EstimatorFusionControl](../msg_docs/EstimatorFusionControl.md)
-- [VehicleAirData](../msg_docs/VehicleAirData.md)
-- [Ekf2Timestamps](../msg_docs/Ekf2Timestamps.md)
-- [FixedWingLateralGuidanceStatus](../msg_docs/FixedWingLateralGuidanceStatus.md)
-- [UavcanParameterValue](../msg_docs/UavcanParameterValue.md)
-- [DebugArray](../msg_docs/DebugArray.md)
-- [VehicleOpticalFlow](../msg_docs/VehicleOpticalFlow.md)
-- [TiltrotorExtraControls](../msg_docs/TiltrotorExtraControls.md)
-- [SatelliteInfo](../msg_docs/SatelliteInfo.md)
-- [RcParameterMap](../msg_docs/RcParameterMap.md)
-- [IrlockReport](../msg_docs/IrlockReport.md)
-- [EstimatorGpsStatus](../msg_docs/EstimatorGpsStatus.md)
-- [SensorBaro](../msg_docs/SensorBaro.md)
-- [NormalizedUnsignedSetpoint](../msg_docs/NormalizedUnsignedSetpoint.md)
-- [SensorHygrometer](../msg_docs/SensorHygrometer.md)
-- [VteAidSource1d](../msg_docs/VteAidSource1d.md)
-- [Vtx](../msg_docs/Vtx.md)
-- [GpioRequest](../msg_docs/GpioRequest.md)
-- [OpenDroneIdOperatorId](../msg_docs/OpenDroneIdOperatorId.md)
-- [ParameterUpdate](../msg_docs/ParameterUpdate.md)
-- [RadioStatus](../msg_docs/RadioStatus.md)
-- [EstimatorAidSource1d](../msg_docs/EstimatorAidSource1d.md)
-- [OpenDroneIdSelfId](../msg_docs/OpenDroneIdSelfId.md)
-- [DeviceInformation](../msg_docs/DeviceInformation.md)
-- [LaunchDetectionStatus](../msg_docs/LaunchDetectionStatus.md)
-- [RoverAttitudeStatus](../msg_docs/RoverAttitudeStatus.md)
-- [SensorGnssStatus](../msg_docs/SensorGnssStatus.md)
-- [GimbalDeviceInformation](../msg_docs/GimbalDeviceInformation.md)
-- [LandingTargetInnovations](../msg_docs/LandingTargetInnovations.md)
-- [GainCompression](../msg_docs/GainCompression.md)
-- [VteBiasInitStatus](../msg_docs/VteBiasInitStatus.md)
-- [ActuatorTest](../msg_docs/ActuatorTest.md)
-- [GpsInjectData](../msg_docs/GpsInjectData.md)
-- [UlogStream](../msg_docs/UlogStream.md)
-- [VehicleAcceleration](../msg_docs/VehicleAcceleration.md)
-- [VteOrientation](../msg_docs/VteOrientation.md)
-- [PpsCapture](../msg_docs/PpsCapture.md)
-- [MountOrientation](../msg_docs/MountOrientation.md)
-- [TakeoffStatus](../msg_docs/TakeoffStatus.md)
-- [CellularStatus](../msg_docs/CellularStatus.md)
-- [ConfigOverridesV0](../msg_docs/ConfigOverridesV0.md)
-- [Mission](../msg_docs/Mission.md)
-- [VehicleGlobalPositionV0](../msg_docs/VehicleGlobalPositionV0.md)
- [EventV0](../msg_docs/EventV0.md)
-- [InternalCombustionEngineStatus](../msg_docs/InternalCombustionEngineStatus.md)
-- [VehicleImuStatus](../msg_docs/VehicleImuStatus.md)
-- [SensorGyroFft](../msg_docs/SensorGyroFft.md)
-- [ParameterSetUsedRequest](../msg_docs/ParameterSetUsedRequest.md)
-- [ActuatorServosTrim](../msg_docs/ActuatorServosTrim.md)
-- [PositionControllerLandingStatus](../msg_docs/PositionControllerLandingStatus.md)
-- [VehicleStatusV2](../msg_docs/VehicleStatusV2.md)
-- [HealthReport](../msg_docs/HealthReport.md)
-- [FuelTankStatus](../msg_docs/FuelTankStatus.md)
-- [AutotuneAttitudeControlStatus](../msg_docs/AutotuneAttitudeControlStatus.md)
-- [SensorsStatus](../msg_docs/SensorsStatus.md)
-- [QshellReq](../msg_docs/QshellReq.md)
+- [OrbTest](../msg_docs/OrbTest.md)
+- [GeneratorStatus](../msg_docs/GeneratorStatus.md)
+- [NavigatorMissionItem](../msg_docs/NavigatorMissionItem.md)
+- [HomePositionV0](../msg_docs/HomePositionV0.md)
- [EstimatorAidSource3d](../msg_docs/EstimatorAidSource3d.md)
-- [GpioOut](../msg_docs/GpioOut.md)
-- [MavlinkLog](../msg_docs/MavlinkLog.md)
-- [MagWorkerData](../msg_docs/MagWorkerData.md)
+- [PurePursuitStatus](../msg_docs/PurePursuitStatus.md)
+- [YawEstimatorStatus](../msg_docs/YawEstimatorStatus.md)
+- [RoverRateStatus](../msg_docs/RoverRateStatus.md)
+- [GimbalControls](../msg_docs/GimbalControls.md)
+- [IridiumsbdStatus](../msg_docs/IridiumsbdStatus.md)
+- [OpenDroneIdOperatorId](../msg_docs/OpenDroneIdOperatorId.md)
+- [CameraCapture](../msg_docs/CameraCapture.md)
+- [SensorGyro](../msg_docs/SensorGyro.md)
+- [LandingTargetPose](../msg_docs/LandingTargetPose.md)
- [InternalCombustionEngineControl](../msg_docs/InternalCombustionEngineControl.md)
+- [VteInput](../msg_docs/VteInput.md)
+- [Px4ioStatus](../msg_docs/Px4ioStatus.md)
+- [PositionControllerStatus](../msg_docs/PositionControllerStatus.md)
+- [EstimatorGpsStatus](../msg_docs/EstimatorGpsStatus.md)
+- [HoverThrustEstimate](../msg_docs/HoverThrustEstimate.md)
+- [ActuatorControlsStatus](../msg_docs/ActuatorControlsStatus.md)
+- [SensorMag](../msg_docs/SensorMag.md)
+- [VteAidSource1d](../msg_docs/VteAidSource1d.md)
+- [VehicleOpticalFlow](../msg_docs/VehicleOpticalFlow.md)
+- [FixedWingLateralStatus](../msg_docs/FixedWingLateralStatus.md)
+- [CameraStatus](../msg_docs/CameraStatus.md)
+- [NormalizedUnsignedSetpoint](../msg_docs/NormalizedUnsignedSetpoint.md)
+- [TakeoffStatus](../msg_docs/TakeoffStatus.md)
+- [DronecanNodeStatus](../msg_docs/DronecanNodeStatus.md)
+- [NavigatorStatus](../msg_docs/NavigatorStatus.md)
+- [NeuralControl](../msg_docs/NeuralControl.md)
+- [VehicleMagnetometer](../msg_docs/VehicleMagnetometer.md)
+- [DeviceInformation](../msg_docs/DeviceInformation.md)
+- [VehicleAttitudeSetpointV0](../msg_docs/VehicleAttitudeSetpointV0.md)
+- [PrecLandStatus](../msg_docs/PrecLandStatus.md)
+- [HealthReport](../msg_docs/HealthReport.md)
+- [FigureEightStatus](../msg_docs/FigureEightStatus.md)
+- [VteBiasInitStatus](../msg_docs/VteBiasInitStatus.md)
+- [RcParameterMap](../msg_docs/RcParameterMap.md)
+- [WheelEncoders](../msg_docs/WheelEncoders.md)
+- [ArmingCheckRequestV0](../msg_docs/ArmingCheckRequestV0.md)
+- [EstimatorAidSource1d](../msg_docs/EstimatorAidSource1d.md)
+- [EstimatorStatus](../msg_docs/EstimatorStatus.md)
+- [ActuatorTest](../msg_docs/ActuatorTest.md)
+- [EstimatorInnovations](../msg_docs/EstimatorInnovations.md)
+- [EstimatorSensorBias](../msg_docs/EstimatorSensorBias.md)
+- [QshellReq](../msg_docs/QshellReq.md)
+- [VehicleLocalPositionSetpoint](../msg_docs/VehicleLocalPositionSetpoint.md)
+- [IrlockReport](../msg_docs/IrlockReport.md)
+- [SensorGyroFifo](../msg_docs/SensorGyroFifo.md)
+- [AirspeedValidatedV0](../msg_docs/AirspeedValidatedV0.md)
+- [FollowTarget](../msg_docs/FollowTarget.md)
+- [ControlAllocatorStatus](../msg_docs/ControlAllocatorStatus.md)
+- [ActuatorOutputs](../msg_docs/ActuatorOutputs.md)
+- [DistanceSensorModeChangeRequest](../msg_docs/DistanceSensorModeChangeRequest.md)
+- [SensorAirflow](../msg_docs/SensorAirflow.md)
+- [ParameterUpdate](../msg_docs/ParameterUpdate.md)
+- [SensorHygrometer](../msg_docs/SensorHygrometer.md)
+- [DifferentialPressure](../msg_docs/DifferentialPressure.md)
+- [OrbitStatus](../msg_docs/OrbitStatus.md)
+- [RegisterExtComponentReplyV0](../msg_docs/RegisterExtComponentReplyV0.md)
+- [MissionResult](../msg_docs/MissionResult.md)
+- [GimbalManagerStatus](../msg_docs/GimbalManagerStatus.md)
+- [LandingTargetInnovations](../msg_docs/LandingTargetInnovations.md)
+- [VehicleImuStatus](../msg_docs/VehicleImuStatus.md)
+- [GpioRequest](../msg_docs/GpioRequest.md)
+- [TrajectorySetpoint6dof](../msg_docs/TrajectorySetpoint6dof.md)
+- [MavlinkTunnel](../msg_docs/MavlinkTunnel.md)
+- [AirspeedWind](../msg_docs/AirspeedWind.md)
+- [DebugArray](../msg_docs/DebugArray.md)
+- [SensorTemp](../msg_docs/SensorTemp.md)
+- [RegisterExtComponentRequestV1](../msg_docs/RegisterExtComponentRequestV1.md)
+- [GpioConfig](../msg_docs/GpioConfig.md)
+- [ManualControlSwitches](../msg_docs/ManualControlSwitches.md)
+- [SensorPreflightMag](../msg_docs/SensorPreflightMag.md)
+- [VehicleOpticalFlowVel](../msg_docs/VehicleOpticalFlowVel.md)
+- [ActuatorServosTrim](../msg_docs/ActuatorServosTrim.md)
+- [FlightPhaseEstimation](../msg_docs/FlightPhaseEstimation.md)
- [EstimatorSelectorStatus](../msg_docs/EstimatorSelectorStatus.md)
- [GimbalManagerInformation](../msg_docs/GimbalManagerInformation.md)
-- [EstimatorInnovations](../msg_docs/EstimatorInnovations.md)
-- [FlightPhaseEstimation](../msg_docs/FlightPhaseEstimation.md)
-- [EstimatorAidSource2d](../msg_docs/EstimatorAidSource2d.md)
-- [NavigatorMissionItem](../msg_docs/NavigatorMissionItem.md)
-- [ButtonEvent](../msg_docs/ButtonEvent.md)
-- [SensorSelection](../msg_docs/SensorSelection.md)
-- [VehicleLocalPositionSetpoint](../msg_docs/VehicleLocalPositionSetpoint.md)
-- [AirspeedValidatedV0](../msg_docs/AirspeedValidatedV0.md)
-- [ActionRequest](../msg_docs/ActionRequest.md)
-- [GimbalManagerSetAttitude](../msg_docs/GimbalManagerSetAttitude.md)
-- [SensorAccelFifo](../msg_docs/SensorAccelFifo.md)
-- [GimbalDeviceSetAttitude](../msg_docs/GimbalDeviceSetAttitude.md)
-- [DifferentialPressure](../msg_docs/DifferentialPressure.md)
-- [PwmInput](../msg_docs/PwmInput.md)
-- [IridiumsbdStatus](../msg_docs/IridiumsbdStatus.md)
-- [HoverThrustEstimate](../msg_docs/HoverThrustEstimate.md)
-- [EstimatorStatus](../msg_docs/EstimatorStatus.md)
-- [PowerButtonState](../msg_docs/PowerButtonState.md)
-- [TuneControl](../msg_docs/TuneControl.md)
-- [VehicleStatusV0](../msg_docs/VehicleStatusV0.md)
-- [PrecLandStatus](../msg_docs/PrecLandStatus.md)
-- [OrbTestLarge](../msg_docs/OrbTestLarge.md)
-- [SensorMag](../msg_docs/SensorMag.md)
-- [RegisterExtComponentRequestV0](../msg_docs/RegisterExtComponentRequestV0.md)
-- [VtePosition](../msg_docs/VtePosition.md)
-- [LogMessage](../msg_docs/LogMessage.md)
-- [EstimatorStates](../msg_docs/EstimatorStates.md)
-- [WheelEncoders](../msg_docs/WheelEncoders.md)
-- [UlogStreamAck](../msg_docs/UlogStreamAck.md)
-- [VehicleOpticalFlowVel](../msg_docs/VehicleOpticalFlowVel.md)
-- [OpenDroneIdSystem](../msg_docs/OpenDroneIdSystem.md)
-- [NeuralControl](../msg_docs/NeuralControl.md)
-- [FollowTargetStatus](../msg_docs/FollowTargetStatus.md)
-- [CameraStatus](../msg_docs/CameraStatus.md)
-- [CanInterfaceStatus](../msg_docs/CanInterfaceStatus.md)
-- [ArmingCheckReplyV0](../msg_docs/ArmingCheckReplyV0.md)
-- [RegisterExtComponentRequestV1](../msg_docs/RegisterExtComponentRequestV1.md)
-- [PowerMonitor](../msg_docs/PowerMonitor.md)
-- [EstimatorBias3d](../msg_docs/EstimatorBias3d.md)
-- [TecsStatus](../msg_docs/TecsStatus.md)
-- [DebugKeyValue](../msg_docs/DebugKeyValue.md)
-- [FollowTarget](../msg_docs/FollowTarget.md)
-- [Event](../msg_docs/Event.md)
-- [GpioIn](../msg_docs/GpioIn.md)
-- [VehicleAttitudeSetpointV0](../msg_docs/VehicleAttitudeSetpointV0.md)
+- [RadioStatus](../msg_docs/RadioStatus.md)
+- [RtlTimeEstimate](../msg_docs/RtlTimeEstimate.md)
+- [VehicleAcceleration](../msg_docs/VehicleAcceleration.md)
+- [SystemPower](../msg_docs/SystemPower.md)
+- [VehicleConstraints](../msg_docs/VehicleConstraints.md)
+- [LaunchDetectionStatus](../msg_docs/LaunchDetectionStatus.md)
+- [RcChannels](../msg_docs/RcChannels.md)
- [Airspeed](../msg_docs/Airspeed.md)
-- [ParameterSetValueRequest](../msg_docs/ParameterSetValueRequest.md)
+- [QshellRetval](../msg_docs/QshellRetval.md)
+- [SensorSelection](../msg_docs/SensorSelection.md)
+- [RaptorInput](../msg_docs/RaptorInput.md)
+- [GeofenceResult](../msg_docs/GeofenceResult.md)
+- [DebugVect](../msg_docs/DebugVect.md)
+- [SensorBaro](../msg_docs/SensorBaro.md)
+- [MavlinkLog](../msg_docs/MavlinkLog.md)
+- [PowerMonitor](../msg_docs/PowerMonitor.md)
+- [FailureDetectorStatus](../msg_docs/FailureDetectorStatus.md)
+- [PowerButtonState](../msg_docs/PowerButtonState.md)
- [SensorGnssRelative](../msg_docs/SensorGnssRelative.md)
+- [ArmingCheckReplyV0](../msg_docs/ArmingCheckReplyV0.md)
+- [Cpuload](../msg_docs/Cpuload.md)
+- [Event](../msg_docs/Event.md)
+- [MagnetometerBiasEstimate](../msg_docs/MagnetometerBiasEstimate.md)
+- [Vtx](../msg_docs/Vtx.md)
+- [FixedWingRunwayControl](../msg_docs/FixedWingRunwayControl.md)
+- [EstimatorStates](../msg_docs/EstimatorStates.md)
+- [AdcReport](../msg_docs/AdcReport.md)
+- [ParameterSetValueResponse](../msg_docs/ParameterSetValueResponse.md)
+- [LedControl](../msg_docs/LedControl.md)
+- [SensorUwb](../msg_docs/SensorUwb.md)
+- [FollowTargetEstimator](../msg_docs/FollowTargetEstimator.md)
+- [RegisterExtComponentRequestV0](../msg_docs/RegisterExtComponentRequestV0.md)
+- [SensorAccel](../msg_docs/SensorAccel.md)
+- [OrbTestLarge](../msg_docs/OrbTestLarge.md)
+- [FixedWingLateralGuidanceStatus](../msg_docs/FixedWingLateralGuidanceStatus.md)
+- [BatteryStatusV0](../msg_docs/BatteryStatusV0.md)
+- [HeaterStatus](../msg_docs/HeaterStatus.md)
+- [GimbalDeviceInformation](../msg_docs/GimbalDeviceInformation.md)
+- [GimbalManagerSetManualControl](../msg_docs/GimbalManagerSetManualControl.md)
+- [BatteryInfo](../msg_docs/BatteryInfo.md)
+- [GpsDump](../msg_docs/GpsDump.md)
+- [OrbTestMedium](../msg_docs/OrbTestMedium.md)
+- [CellularStatus](../msg_docs/CellularStatus.md)
+- [GpioIn](../msg_docs/GpioIn.md)
+- [PositionSetpoint](../msg_docs/PositionSetpoint.md)
+- [Gripper](../msg_docs/Gripper.md)
+- [RoverAttitudeStatus](../msg_docs/RoverAttitudeStatus.md)
+- [DatamanResponse](../msg_docs/DatamanResponse.md)
+- [VteAidSource3d](../msg_docs/VteAidSource3d.md)
+- [VehicleLocalPositionV0](../msg_docs/VehicleLocalPositionV0.md)
+- [ButtonEvent](../msg_docs/ButtonEvent.md)
+- [VehicleCommandAckV0](../msg_docs/VehicleCommandAckV0.md)
+- [SensorCorrection](../msg_docs/SensorCorrection.md)
+- [VehicleStatusV1](../msg_docs/VehicleStatusV1.md)
+- [DatamanRequest](../msg_docs/DatamanRequest.md)
+- [EscReport](../msg_docs/EscReport.md)
+- [FollowTargetStatus](../msg_docs/FollowTargetStatus.md)
+- [EstimatorFusionControl](../msg_docs/EstimatorFusionControl.md)
+- [OpenDroneIdArmStatus](../msg_docs/OpenDroneIdArmStatus.md)
+- [ActuatorArmed](../msg_docs/ActuatorArmed.md)
+- [ActionRequest](../msg_docs/ActionRequest.md)
+- [TiltrotorExtraControls](../msg_docs/TiltrotorExtraControls.md)
+- [UlogStream](../msg_docs/UlogStream.md)
+- [EstimatorBias](../msg_docs/EstimatorBias.md)
+- [EscEepromWrite](../msg_docs/EscEepromWrite.md)
+- [EstimatorAidSource2d](../msg_docs/EstimatorAidSource2d.md)
+- [InputRc](../msg_docs/InputRc.md)
+- [VehicleStatusV0](../msg_docs/VehicleStatusV0.md)
+- [TecsStatus](../msg_docs/TecsStatus.md)
+- [EscStatus](../msg_docs/EscStatus.md)
+- [GainCompression](../msg_docs/GainCompression.md)
+- [UavcanParameterValue](../msg_docs/UavcanParameterValue.md)
+- [MountOrientation](../msg_docs/MountOrientation.md)
+- [SensorGyroFft](../msg_docs/SensorGyroFft.md)
+- [VehicleAirData](../msg_docs/VehicleAirData.md)
+- [GeofenceStatus](../msg_docs/GeofenceStatus.md)
+- [VehicleImu](../msg_docs/VehicleImu.md)
+- [SensorGnssStatus](../msg_docs/SensorGnssStatus.md)
+- [GimbalDeviceSetAttitude](../msg_docs/GimbalDeviceSetAttitude.md)
+- [VehicleAngularAccelerationSetpoint](../msg_docs/VehicleAngularAccelerationSetpoint.md)
+- [FiducialMarkerYawReport](../msg_docs/FiducialMarkerYawReport.md)
+- [PpsCapture](../msg_docs/PpsCapture.md)
+- [DebugKeyValue](../msg_docs/DebugKeyValue.md)
+- [TuneControl](../msg_docs/TuneControl.md)
+- [SensorsStatusImu](../msg_docs/SensorsStatusImu.md)
+- [SensorsStatus](../msg_docs/SensorsStatus.md)
+- [OpenDroneIdSystem](../msg_docs/OpenDroneIdSystem.md)
+- [FuelTankStatus](../msg_docs/FuelTankStatus.md)
+- [TargetGnss](../msg_docs/TargetGnss.md)
+- [VehicleStatusV3](../msg_docs/VehicleStatusV3.md)
+- [DebugValue](../msg_docs/DebugValue.md)
+- [RateCtrlStatus](../msg_docs/RateCtrlStatus.md)
+- [Ping](../msg_docs/Ping.md)
+- [ConfigOverridesV0](../msg_docs/ConfigOverridesV0.md)
+- [EstimatorBias3d](../msg_docs/EstimatorBias3d.md)
+- [UavcanParameterRequest](../msg_docs/UavcanParameterRequest.md)
+- [PositionControllerLandingStatus](../msg_docs/PositionControllerLandingStatus.md)
+- [EscEepromRead](../msg_docs/EscEepromRead.md)
+- [LogMessage](../msg_docs/LogMessage.md)
+- [EstimatorEventFlags](../msg_docs/EstimatorEventFlags.md)
+- [GpioOut](../msg_docs/GpioOut.md)
+- [RangingBeacon](../msg_docs/RangingBeacon.md)
+- [RtlStatus](../msg_docs/RtlStatus.md)
+- [ParameterSetValueRequest](../msg_docs/ParameterSetValueRequest.md)
+- [Rpm](../msg_docs/Rpm.md)
+- [AutotuneAttitudeControlStatus](../msg_docs/AutotuneAttitudeControlStatus.md)
+- [RaptorStatus](../msg_docs/RaptorStatus.md)
+- [FiducialMarkerPosReport](../msg_docs/FiducialMarkerPosReport.md)
+- [LandingGearWheel](../msg_docs/LandingGearWheel.md)
+- [VehicleRoi](../msg_docs/VehicleRoi.md)
+- [TaskStackInfo](../msg_docs/TaskStackInfo.md)
+- [MagWorkerData](../msg_docs/MagWorkerData.md)
+- [VelocityLimits](../msg_docs/VelocityLimits.md)
+- [GimbalManagerSetAttitude](../msg_docs/GimbalManagerSetAttitude.md)
+- [GpsInjectData](../msg_docs/GpsInjectData.md)
+- [Mission](../msg_docs/Mission.md)
+- [CameraTrigger](../msg_docs/CameraTrigger.md)
+- [LoggerStatus](../msg_docs/LoggerStatus.md)
+- [VehicleStatusV2](../msg_docs/VehicleStatusV2.md)
+- [Ekf2Timestamps](../msg_docs/Ekf2Timestamps.md)
+- [OpenDroneIdSelfId](../msg_docs/OpenDroneIdSelfId.md)
+- [ParameterResetRequest](../msg_docs/ParameterResetRequest.md)
+- [VtePosition](../msg_docs/VtePosition.md)
+- [PwmInput](../msg_docs/PwmInput.md)
+- [CanInterfaceStatus](../msg_docs/CanInterfaceStatus.md)
+- [VteOrientation](../msg_docs/VteOrientation.md)
+- [UlogStreamAck](../msg_docs/UlogStreamAck.md)
+- [VehicleAngularVelocity](../msg_docs/VehicleAngularVelocity.md)
+- [SatelliteInfo](../msg_docs/SatelliteInfo.md)
+- [RoverSpeedStatus](../msg_docs/RoverSpeedStatus.md)
+- [InternalCombustionEngineStatus](../msg_docs/InternalCombustionEngineStatus.md)
+- [SensorAccelFifo](../msg_docs/SensorAccelFifo.md)
+- [ParameterSetUsedRequest](../msg_docs/ParameterSetUsedRequest.md)
+- [VehicleGlobalPositionV0](../msg_docs/VehicleGlobalPositionV0.md)
:::
diff --git a/docs/en/modules/modules_system.md b/docs/en/modules/modules_system.md
index 01b9760968..36c2e5fb07 100644
--- a/docs/en/modules/modules_system.md
+++ b/docs/en/modules/modules_system.md
@@ -327,7 +327,7 @@ Source: [drivers/heater](https://github.com/PX4/PX4-Autopilot/tree/main/src/driv
### Description
-Background process running periodically on the INS{i} queue to regulate IMU temperature at a setpoint.
+Background process running periodically on the INS{i} queue to regulate temperature at a setpoint.
This task can be started at boot from the startup scripts by setting SENS_EN_THERMAL or via CLI.
diff --git a/docs/en/msg_docs/HeaterStatus.md b/docs/en/msg_docs/HeaterStatus.md
index 129e0c493d..735277abec 100644
--- a/docs/en/msg_docs/HeaterStatus.md
+++ b/docs/en/msg_docs/HeaterStatus.md
@@ -21,14 +21,20 @@ pageClass: is-wide-page
| proportional_value | `float32` | | |
| integrator_value | `float32` | | |
| feed_forward_value | `float32` | | |
+| supply_voltage | `float32` | | | Supply voltage (V) |
+| heater_current | `float32` | | | Heater current (A) |
+| nominal_multiplier | `float32` | | |
| mode | `uint8` | | |
+| temperature_source | `uint8` | | |
## Constants
-| Name | Type | Value | Description |
-| ----------------------------------- | ------- | ----- | ----------- |
-| MODE_GPIO | `uint8` | 1 |
-| MODE_PX4IO | `uint8` | 2 |
+| Name | Type | Value | Description |
+| --------------------------------------------------------------- | ------- | ----- | ----------- |
+| MODE_GPIO | `uint8` | 1 |
+| MODE_PX4IO | `uint8` | 2 |
+| TEMPERATURE_SOURCE_IMU | `uint8` | 0 |
+| TEMPERATURE_SOURCE_HYGRO | `uint8` | 1 |
## Source Message
@@ -54,9 +60,17 @@ float32 proportional_value
float32 integrator_value
float32 feed_forward_value
+float32 supply_voltage # Supply voltage (V)
+float32 heater_current # Heater current (A)
+float32 nominal_multiplier
+
uint8 MODE_GPIO = 1
uint8 MODE_PX4IO = 2
uint8 mode
+
+uint8 TEMPERATURE_SOURCE_IMU = 0
+uint8 TEMPERATURE_SOURCE_HYGRO = 1
+uint8 temperature_source
```
:::
diff --git a/docs/en/sim_gazebo_gz/index.md b/docs/en/sim_gazebo_gz/index.md
index 0fb6fcc192..371e962f72 100644
--- a/docs/en/sim_gazebo_gz/index.md
+++ b/docs/en/sim_gazebo_gz/index.md
@@ -229,41 +229,41 @@ Lockstep cannot be disabled on Gazebo.
:::
### Video Streaming
-
+
Some models (e.g. `gz_x500_mono_cam`, `gz_x500_gimbal`) include a camera and support video streaming. By default, the stream is published over UDP on port 5600 using the RTP protocol.
-
+
#### Prerequisites
-
+
GStreamer 1.0 is required. The necessary dependencies are included in the standard PX4 installation scripts for Ubuntu Linux and macOS.
-
+
::: info
Required packages: `gstreamer1.0-plugins-base`, `gstreamer1.0-plugins-good`, `gstreamer1.0-plugins-bad`, `gstreamer1.0-plugins-ugly`, `libgstreamer-plugins-base1.0-dev`. If missing, install them via `apt` or your system package manager.
:::
-
+
#### Viewing the Video Stream
-
+
**QGroundControl (recommended)**
-
+
Open **Application Settings > General**, set **Video Source** to _UDP h.264 Video Stream_, and set **UDP Port** to `5600`.
-
+

-
+
The Gazebo video feed will then appear in QGroundControl exactly as it would from a real camera.
-
+

-
+
**GStreamer pipeline**
-
+
To view the stream directly from a terminal:
-
+
```sh
gst-launch-1.0 -v udpsrc port=5600 \
caps='application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264' \
! rtph264depay ! avdec_h264 ! videoconvert ! autovideosink sync=false
```
-
+
#### Multi-Vehicle Simulation
-
+
In a multi-vehicle simulation, each vehicle instance streams to a separate port starting from `5600` — i.e. `5600`, `5601`, `5602`, and so on. If an instance (other than the first, which acts as the Gazebo world host) is restarted, it resumes streaming on its originally assigned port.
#### Advanced Usage