diff --git a/docs/en/advanced_config/parameter_reference.md b/docs/en/advanced_config/parameter_reference.md index e7be1203b6..40d093c47f 100644 --- a/docs/en/advanced_config/parameter_reference.md +++ b/docs/en/advanced_config/parameter_reference.md @@ -4202,6 +4202,9 @@ Custom PWM rates can be used by directly setting any value >0. **Values:** +- `-8`: BDShot150 +- `-7`: BDShot300 +- `-6`: BDShot600 - `-5`: DShot150 - `-4`: DShot300 - `-3`: DShot600 @@ -19499,18 +19502,33 @@ When mixer outputs 1000 or value inside DSHOT 3D deadband, DShot 0 is sent. | ------ | -------- | -------- | --------- | ------------ | ---- | |   | | | | Disabled (0) | | -### DSHOT_BIDIR_EN (`INT32`) {#DSHOT_BIDIR_EN} +### DSHOT_BIDIR_EDT (`INT32`) {#DSHOT_BIDIR_EDT} -Enable bidirectional DShot. +Enable Extended DShot Telemetry. -This parameter enables bidirectional DShot which provides RPM feedback. -Note that this requires ESCs that support bidirectional DSHot, e.g. BlHeli32. -This is not the same as DShot telemetry which requires an additional serial connection. +This parameter enables Extended DShot Telemetry which allows transmission of +additional telemetry within the eRPM frame. The EDT data is interleaved with +the eRPM frames at a low rate. | Reboot | minValue | maxValue | increment | default | unit | | ------- | -------- | -------- | --------- | ------------ | ---- | | ✓ | | | | Disabled (0) | | +### DSHOT_ESC_TYPE (`INT32`) {#DSHOT_ESC_TYPE} + +ESC Type. + +The ESC firmware type + +**Values:** + +- `0`: Unknown +- `1`: AM32 + +| Reboot | minValue | maxValue | increment | default | unit | +| ------ | -------- | -------- | --------- | ------- | ---- | +|   | | | | 0 | | + ### DSHOT_MIN (`FLOAT`) {#DSHOT_MIN} Minimum DShot Motor Output. @@ -19523,6 +19541,174 @@ armed. | ------ | -------- | -------- | --------- | ------- | ---- | |   | 0 | 1 | 0.01 | 0.055 | norm | +### DSHOT_MOT_POL1 (`INT32`) {#DSHOT_MOT_POL1} + +Number of magnetic poles of motor 1. + +Number of magnetic poles for motor 1. +Required to compute RPM from the eRPM returned by ESC telemetry. +Either get the number from the motor spec sheet or count the magnets +on the bell of the motor (not the stator magnets). +Typical motors for 5 inch props have 14 poles. + +| Reboot | minValue | maxValue | increment | default | unit | +| ------ | -------- | -------- | --------- | ------- | ---- | +|   | 2 | 400 | | 14 | | + +### DSHOT_MOT_POL10 (`INT32`) {#DSHOT_MOT_POL10} + +Number of magnetic poles of motor 10. + +Number of magnetic poles for motor 10. +Required to compute RPM from the eRPM returned by ESC telemetry. +Either get the number from the motor spec sheet or count the magnets +on the bell of the motor (not the stator magnets). +Typical motors for 5 inch props have 14 poles. + +| Reboot | minValue | maxValue | increment | default | unit | +| ------ | -------- | -------- | --------- | ------- | ---- | +|   | 2 | 400 | | 14 | | + +### DSHOT_MOT_POL11 (`INT32`) {#DSHOT_MOT_POL11} + +Number of magnetic poles of motor 11. + +Number of magnetic poles for motor 11. +Required to compute RPM from the eRPM returned by ESC telemetry. +Either get the number from the motor spec sheet or count the magnets +on the bell of the motor (not the stator magnets). +Typical motors for 5 inch props have 14 poles. + +| Reboot | minValue | maxValue | increment | default | unit | +| ------ | -------- | -------- | --------- | ------- | ---- | +|   | 2 | 400 | | 14 | | + +### DSHOT_MOT_POL12 (`INT32`) {#DSHOT_MOT_POL12} + +Number of magnetic poles of motor 12. + +Number of magnetic poles for motor 12. +Required to compute RPM from the eRPM returned by ESC telemetry. +Either get the number from the motor spec sheet or count the magnets +on the bell of the motor (not the stator magnets). +Typical motors for 5 inch props have 14 poles. + +| Reboot | minValue | maxValue | increment | default | unit | +| ------ | -------- | -------- | --------- | ------- | ---- | +|   | 2 | 400 | | 14 | | + +### DSHOT_MOT_POL2 (`INT32`) {#DSHOT_MOT_POL2} + +Number of magnetic poles of motor 2. + +Number of magnetic poles for motor 2. +Required to compute RPM from the eRPM returned by ESC telemetry. +Either get the number from the motor spec sheet or count the magnets +on the bell of the motor (not the stator magnets). +Typical motors for 5 inch props have 14 poles. + +| Reboot | minValue | maxValue | increment | default | unit | +| ------ | -------- | -------- | --------- | ------- | ---- | +|   | 2 | 400 | | 14 | | + +### DSHOT_MOT_POL3 (`INT32`) {#DSHOT_MOT_POL3} + +Number of magnetic poles of motor 3. + +Number of magnetic poles for motor 3. +Required to compute RPM from the eRPM returned by ESC telemetry. +Either get the number from the motor spec sheet or count the magnets +on the bell of the motor (not the stator magnets). +Typical motors for 5 inch props have 14 poles. + +| Reboot | minValue | maxValue | increment | default | unit | +| ------ | -------- | -------- | --------- | ------- | ---- | +|   | 2 | 400 | | 14 | | + +### DSHOT_MOT_POL4 (`INT32`) {#DSHOT_MOT_POL4} + +Number of magnetic poles of motor 4. + +Number of magnetic poles for motor 4. +Required to compute RPM from the eRPM returned by ESC telemetry. +Either get the number from the motor spec sheet or count the magnets +on the bell of the motor (not the stator magnets). +Typical motors for 5 inch props have 14 poles. + +| Reboot | minValue | maxValue | increment | default | unit | +| ------ | -------- | -------- | --------- | ------- | ---- | +|   | 2 | 400 | | 14 | | + +### DSHOT_MOT_POL5 (`INT32`) {#DSHOT_MOT_POL5} + +Number of magnetic poles of motor 5. + +Number of magnetic poles for motor 5. +Required to compute RPM from the eRPM returned by ESC telemetry. +Either get the number from the motor spec sheet or count the magnets +on the bell of the motor (not the stator magnets). +Typical motors for 5 inch props have 14 poles. + +| Reboot | minValue | maxValue | increment | default | unit | +| ------ | -------- | -------- | --------- | ------- | ---- | +|   | 2 | 400 | | 14 | | + +### DSHOT_MOT_POL6 (`INT32`) {#DSHOT_MOT_POL6} + +Number of magnetic poles of motor 6. + +Number of magnetic poles for motor 6. +Required to compute RPM from the eRPM returned by ESC telemetry. +Either get the number from the motor spec sheet or count the magnets +on the bell of the motor (not the stator magnets). +Typical motors for 5 inch props have 14 poles. + +| Reboot | minValue | maxValue | increment | default | unit | +| ------ | -------- | -------- | --------- | ------- | ---- | +|   | 2 | 400 | | 14 | | + +### DSHOT_MOT_POL7 (`INT32`) {#DSHOT_MOT_POL7} + +Number of magnetic poles of motor 7. + +Number of magnetic poles for motor 7. +Required to compute RPM from the eRPM returned by ESC telemetry. +Either get the number from the motor spec sheet or count the magnets +on the bell of the motor (not the stator magnets). +Typical motors for 5 inch props have 14 poles. + +| Reboot | minValue | maxValue | increment | default | unit | +| ------ | -------- | -------- | --------- | ------- | ---- | +|   | 2 | 400 | | 14 | | + +### DSHOT_MOT_POL8 (`INT32`) {#DSHOT_MOT_POL8} + +Number of magnetic poles of motor 8. + +Number of magnetic poles for motor 8. +Required to compute RPM from the eRPM returned by ESC telemetry. +Either get the number from the motor spec sheet or count the magnets +on the bell of the motor (not the stator magnets). +Typical motors for 5 inch props have 14 poles. + +| Reboot | minValue | maxValue | increment | default | unit | +| ------ | -------- | -------- | --------- | ------- | ---- | +|   | 2 | 400 | | 14 | | + +### DSHOT_MOT_POL9 (`INT32`) {#DSHOT_MOT_POL9} + +Number of magnetic poles of motor 9. + +Number of magnetic poles for motor 9. +Required to compute RPM from the eRPM returned by ESC telemetry. +Either get the number from the motor spec sheet or count the magnets +on the bell of the motor (not the stator magnets). +Typical motors for 5 inch props have 14 poles. + +| Reboot | minValue | maxValue | increment | default | unit | +| ------ | -------- | -------- | --------- | ------- | ---- | +|   | 2 | 400 | | 14 | | + ### DSHOT_TEL_CFG (`INT32`) {#DSHOT_TEL_CFG} Serial Configuration for DShot Driver. @@ -19548,20 +19734,6 @@ Configure on which serial port to run DShot Driver. | ------- | -------- | -------- | --------- | ------- | ---- | | ✓ | | | | 0 | | -### MOT_POLE_COUNT (`INT32`) {#MOT_POLE_COUNT} - -Number of magnetic poles of the motors. - -Specify the number of magnetic poles of the motors. -It is required to compute the RPM value from the eRPM returned with the ESC telemetry. - -Either get the number from the motor spec sheet or count the magnets on the bell of the motor (not the stator magnets). -Typical motors for 5 inch props have 14 poles. - -| Reboot | minValue | maxValue | increment | default | unit | -| ------ | -------- | -------- | --------- | ------- | ---- | -|   | | | | 14 | | - ## EKF2 ### EKF2_ABIAS_INIT (`FLOAT`) {#EKF2_ABIAS_INIT} diff --git a/docs/en/middleware/dds_topics.md b/docs/en/middleware/dds_topics.md index 3cba9d216a..7e01384323 100644 --- a/docs/en/middleware/dds_topics.md +++ b/docs/en/middleware/dds_topics.md @@ -95,202 +95,204 @@ They are not build into the module, and hence are neither published or subscribe ::: details See messages -- [InternalCombustionEngineStatus](../msg_docs/InternalCombustionEngineStatus.md) -- [TuneControl](../msg_docs/TuneControl.md) -- [ButtonEvent](../msg_docs/ButtonEvent.md) -- [MavlinkTunnel](../msg_docs/MavlinkTunnel.md) -- [VehicleStatusV1](../msg_docs/VehicleStatusV1.md) -- [GpsDump](../msg_docs/GpsDump.md) -- [LandingTargetInnovations](../msg_docs/LandingTargetInnovations.md) -- [DebugKeyValue](../msg_docs/DebugKeyValue.md) -- [SensorBaro](../msg_docs/SensorBaro.md) -- [HoverThrustEstimate](../msg_docs/HoverThrustEstimate.md) -- [TrajectorySetpoint6dof](../msg_docs/TrajectorySetpoint6dof.md) -- [WheelEncoders](../msg_docs/WheelEncoders.md) -- [Px4ioStatus](../msg_docs/Px4ioStatus.md) -- [DatamanRequest](../msg_docs/DatamanRequest.md) -- [SensorAccel](../msg_docs/SensorAccel.md) -- [PowerMonitor](../msg_docs/PowerMonitor.md) -- [EventV0](../msg_docs/EventV0.md) -- [ActionRequest](../msg_docs/ActionRequest.md) -- [DebugArray](../msg_docs/DebugArray.md) -- [PpsCapture](../msg_docs/PpsCapture.md) -- [Gripper](../msg_docs/Gripper.md) -- [EstimatorBias3d](../msg_docs/EstimatorBias3d.md) -- [GimbalManagerInformation](../msg_docs/GimbalManagerInformation.md) -- [PowerButtonState](../msg_docs/PowerButtonState.md) -- [PositionControllerStatus](../msg_docs/PositionControllerStatus.md) -- [EstimatorGpsStatus](../msg_docs/EstimatorGpsStatus.md) -- [ParameterSetValueResponse](../msg_docs/ParameterSetValueResponse.md) -- [SensorGyroFft](../msg_docs/SensorGyroFft.md) -- [RtlStatus](../msg_docs/RtlStatus.md) -- [VehicleGlobalPositionV0](../msg_docs/VehicleGlobalPositionV0.md) -- [FigureEightStatus](../msg_docs/FigureEightStatus.md) -- [VehicleOpticalFlow](../msg_docs/VehicleOpticalFlow.md) -- [AdcReport](../msg_docs/AdcReport.md) -- [VehicleImuStatus](../msg_docs/VehicleImuStatus.md) -- [ConfigOverridesV0](../msg_docs/ConfigOverridesV0.md) -- [GimbalDeviceInformation](../msg_docs/GimbalDeviceInformation.md) -- [GpioOut](../msg_docs/GpioOut.md) -- [GimbalControls](../msg_docs/GimbalControls.md) -- [ActuatorTest](../msg_docs/ActuatorTest.md) -- [ParameterResetRequest](../msg_docs/ParameterResetRequest.md) -- [MavlinkLog](../msg_docs/MavlinkLog.md) -- [VehicleAngularVelocity](../msg_docs/VehicleAngularVelocity.md) -- [CellularStatus](../msg_docs/CellularStatus.md) -- [LandingTargetPose](../msg_docs/LandingTargetPose.md) -- [HealthReport](../msg_docs/HealthReport.md) -- [Mission](../msg_docs/Mission.md) -- [GpsInjectData](../msg_docs/GpsInjectData.md) -- [OrbitStatus](../msg_docs/OrbitStatus.md) -- [FuelTankStatus](../msg_docs/FuelTankStatus.md) -- [PwmInput](../msg_docs/PwmInput.md) -- [SensorGyro](../msg_docs/SensorGyro.md) -- [RoverAttitudeStatus](../msg_docs/RoverAttitudeStatus.md) -- [CameraStatus](../msg_docs/CameraStatus.md) -- [GpioConfig](../msg_docs/GpioConfig.md) -- [RegisterExtComponentReplyV0](../msg_docs/RegisterExtComponentReplyV0.md) -- [DatamanResponse](../msg_docs/DatamanResponse.md) -- [VehicleImu](../msg_docs/VehicleImu.md) -- [GimbalManagerSetAttitude](../msg_docs/GimbalManagerSetAttitude.md) -- [EstimatorBias](../msg_docs/EstimatorBias.md) -- [Event](../msg_docs/Event.md) -- [EscReport](../msg_docs/EscReport.md) -- [Ping](../msg_docs/Ping.md) -- [EstimatorAidSource3d](../msg_docs/EstimatorAidSource3d.md) -- [VehicleLocalPositionSetpoint](../msg_docs/VehicleLocalPositionSetpoint.md) -- [FixedWingRunwayControl](../msg_docs/FixedWingRunwayControl.md) -- [EstimatorSelectorStatus](../msg_docs/EstimatorSelectorStatus.md) -- [GimbalManagerStatus](../msg_docs/GimbalManagerStatus.md) -- [GpioIn](../msg_docs/GpioIn.md) -- [InternalCombustionEngineControl](../msg_docs/InternalCombustionEngineControl.md) -- [EstimatorAidSource1d](../msg_docs/EstimatorAidSource1d.md) -- [EstimatorEventFlags](../msg_docs/EstimatorEventFlags.md) -- [AutotuneAttitudeControlStatus](../msg_docs/AutotuneAttitudeControlStatus.md) -- [UavcanParameterRequest](../msg_docs/UavcanParameterRequest.md) -- [UlogStreamAck](../msg_docs/UlogStreamAck.md) -- [VehicleLocalPositionV0](../msg_docs/VehicleLocalPositionV0.md) -- [EstimatorStatus](../msg_docs/EstimatorStatus.md) - [PositionSetpoint](../msg_docs/PositionSetpoint.md) -- [SensorGyroFifo](../msg_docs/SensorGyroFifo.md) -- [FixedWingLateralGuidanceStatus](../msg_docs/FixedWingLateralGuidanceStatus.md) -- [VehicleCommandAckV0](../msg_docs/VehicleCommandAckV0.md) -- [FollowTarget](../msg_docs/FollowTarget.md) -- [VehicleOpticalFlowVel](../msg_docs/VehicleOpticalFlowVel.md) -- [OpenDroneIdSelfId](../msg_docs/OpenDroneIdSelfId.md) -- [Rpm](../msg_docs/Rpm.md) -- [GeofenceStatus](../msg_docs/GeofenceStatus.md) -- [OrbTest](../msg_docs/OrbTest.md) -- [FollowTargetEstimator](../msg_docs/FollowTargetEstimator.md) -- [PurePursuitStatus](../msg_docs/PurePursuitStatus.md) - [BatteryStatusV0](../msg_docs/BatteryStatusV0.md) -- [ControlAllocatorStatus](../msg_docs/ControlAllocatorStatus.md) -- [RadioStatus](../msg_docs/RadioStatus.md) -- [MissionResult](../msg_docs/MissionResult.md) -- [HeaterStatus](../msg_docs/HeaterStatus.md) -- [GeneratorStatus](../msg_docs/GeneratorStatus.md) -- [AirspeedValidatedV0](../msg_docs/AirspeedValidatedV0.md) -- [VehicleMagnetometer](../msg_docs/VehicleMagnetometer.md) -- [LedControl](../msg_docs/LedControl.md) -- [ParameterSetUsedRequest](../msg_docs/ParameterSetUsedRequest.md) -- [ParameterUpdate](../msg_docs/ParameterUpdate.md) -- [CameraCapture](../msg_docs/CameraCapture.md) -- [EstimatorAidSource2d](../msg_docs/EstimatorAidSource2d.md) -- [GeofenceResult](../msg_docs/GeofenceResult.md) -- [OrbTestMedium](../msg_docs/OrbTestMedium.md) -- [VehicleRoi](../msg_docs/VehicleRoi.md) -- [VehicleAngularAccelerationSetpoint](../msg_docs/VehicleAngularAccelerationSetpoint.md) -- [RegisterExtComponentRequestV0](../msg_docs/RegisterExtComponentRequestV0.md) -- [SensorSelection](../msg_docs/SensorSelection.md) -- [RoverRateStatus](../msg_docs/RoverRateStatus.md) -- [ParameterSetValueRequest](../msg_docs/ParameterSetValueRequest.md) -- [Airspeed](../msg_docs/Airspeed.md) -- [SatelliteInfo](../msg_docs/SatelliteInfo.md) -- [MagnetometerBiasEstimate](../msg_docs/MagnetometerBiasEstimate.md) -- [VehicleAcceleration](../msg_docs/VehicleAcceleration.md) -- [SensorsStatus](../msg_docs/SensorsStatus.md) -- [SystemPower](../msg_docs/SystemPower.md) -- [SensorGnssStatus](../msg_docs/SensorGnssStatus.md) -- [Vtx](../msg_docs/Vtx.md) -- [LogMessage](../msg_docs/LogMessage.md) -- [MagWorkerData](../msg_docs/MagWorkerData.md) -- [RtlTimeEstimate](../msg_docs/RtlTimeEstimate.md) -- [LandingGearWheel](../msg_docs/LandingGearWheel.md) -- [Ekf2Timestamps](../msg_docs/Ekf2Timestamps.md) -- [NavigatorStatus](../msg_docs/NavigatorStatus.md) -- [EscStatus](../msg_docs/EscStatus.md) -- [DebugVect](../msg_docs/DebugVect.md) +- [EscEepromWrite](../msg_docs/EscEepromWrite.md) +- [PowerButtonState](../msg_docs/PowerButtonState.md) - [RaptorStatus](../msg_docs/RaptorStatus.md) -- [DeviceInformation](../msg_docs/DeviceInformation.md) -- [UlogStream](../msg_docs/UlogStream.md) -- [FailureDetectorStatus](../msg_docs/FailureDetectorStatus.md) -- [VelocityLimits](../msg_docs/VelocityLimits.md) -- [LoggerStatus](../msg_docs/LoggerStatus.md) -- [SensorAirflow](../msg_docs/SensorAirflow.md) -- [VehicleConstraints](../msg_docs/VehicleConstraints.md) -- [SensorAccelFifo](../msg_docs/SensorAccelFifo.md) +- [LedControl](../msg_docs/LedControl.md) +- [MavlinkLog](../msg_docs/MavlinkLog.md) +- [GeofenceResult](../msg_docs/GeofenceResult.md) +- [SensorGyroFifo](../msg_docs/SensorGyroFifo.md) +- [ParameterSetUsedRequest](../msg_docs/ParameterSetUsedRequest.md) - [FollowTargetStatus](../msg_docs/FollowTargetStatus.md) -- [OrbTestLarge](../msg_docs/OrbTestLarge.md) -- [DronecanNodeStatus](../msg_docs/DronecanNodeStatus.md) -- [EstimatorInnovations](../msg_docs/EstimatorInnovations.md) -- [ArmingCheckReplyV0](../msg_docs/ArmingCheckReplyV0.md) -- [IridiumsbdStatus](../msg_docs/IridiumsbdStatus.md) -- [QshellRetval](../msg_docs/QshellRetval.md) -- [GimbalDeviceSetAttitude](../msg_docs/GimbalDeviceSetAttitude.md) -- [ArmingCheckRequestV0](../msg_docs/ArmingCheckRequestV0.md) -- [CanInterfaceStatus](../msg_docs/CanInterfaceStatus.md) -- [UavcanParameterValue](../msg_docs/UavcanParameterValue.md) -- [RaptorInput](../msg_docs/RaptorInput.md) -- [SensorUwb](../msg_docs/SensorUwb.md) -- [TiltrotorExtraControls](../msg_docs/TiltrotorExtraControls.md) -- [VehicleAirData](../msg_docs/VehicleAirData.md) -- [SensorTemp](../msg_docs/SensorTemp.md) -- [VehicleStatusV0](../msg_docs/VehicleStatusV0.md) -- [AirspeedWind](../msg_docs/AirspeedWind.md) -- [BatteryInfo](../msg_docs/BatteryInfo.md) -- [Cpuload](../msg_docs/Cpuload.md) -- [OpenDroneIdArmStatus](../msg_docs/OpenDroneIdArmStatus.md) -- [DifferentialPressure](../msg_docs/DifferentialPressure.md) -- [YawEstimatorStatus](../msg_docs/YawEstimatorStatus.md) -- [CameraTrigger](../msg_docs/CameraTrigger.md) -- [GpioRequest](../msg_docs/GpioRequest.md) -- [SensorPreflightMag](../msg_docs/SensorPreflightMag.md) -- [LaunchDetectionStatus](../msg_docs/LaunchDetectionStatus.md) -- [VehicleAttitudeSetpointV0](../msg_docs/VehicleAttitudeSetpointV0.md) -- [PositionControllerLandingStatus](../msg_docs/PositionControllerLandingStatus.md) -- [RateCtrlStatus](../msg_docs/RateCtrlStatus.md) -- [SensorMag](../msg_docs/SensorMag.md) -- [SensorGnssRelative](../msg_docs/SensorGnssRelative.md) -- [ActuatorControlsStatus](../msg_docs/ActuatorControlsStatus.md) -- [NeuralControl](../msg_docs/NeuralControl.md) -- [TecsStatus](../msg_docs/TecsStatus.md) -- [NavigatorMissionItem](../msg_docs/NavigatorMissionItem.md) -- [RcChannels](../msg_docs/RcChannels.md) -- [NormalizedUnsignedSetpoint](../msg_docs/NormalizedUnsignedSetpoint.md) -- [ManualControlSwitches](../msg_docs/ManualControlSwitches.md) -- [ActuatorOutputs](../msg_docs/ActuatorOutputs.md) -- [SensorHygrometer](../msg_docs/SensorHygrometer.md) -- [FlightPhaseEstimation](../msg_docs/FlightPhaseEstimation.md) -- [EstimatorSensorBias](../msg_docs/EstimatorSensorBias.md) -- [RcParameterMap](../msg_docs/RcParameterMap.md) -- [MountOrientation](../msg_docs/MountOrientation.md) -- [OpenDroneIdSystem](../msg_docs/OpenDroneIdSystem.md) -- [FixedWingLateralStatus](../msg_docs/FixedWingLateralStatus.md) -- [OpenDroneIdOperatorId](../msg_docs/OpenDroneIdOperatorId.md) -- [TakeoffStatus](../msg_docs/TakeoffStatus.md) -- [SensorsStatusImu](../msg_docs/SensorsStatusImu.md) -- [DistanceSensorModeChangeRequest](../msg_docs/DistanceSensorModeChangeRequest.md) -- [DebugValue](../msg_docs/DebugValue.md) -- [GainCompression](../msg_docs/GainCompression.md) -- [GimbalManagerSetManualControl](../msg_docs/GimbalManagerSetManualControl.md) -- [SensorCorrection](../msg_docs/SensorCorrection.md) -- [TaskStackInfo](../msg_docs/TaskStackInfo.md) -- [EstimatorStates](../msg_docs/EstimatorStates.md) -- [InputRc](../msg_docs/InputRc.md) -- [QshellReq](../msg_docs/QshellReq.md) -- [ActuatorServosTrim](../msg_docs/ActuatorServosTrim.md) -- [HomePositionV0](../msg_docs/HomePositionV0.md) - [ActuatorArmed](../msg_docs/ActuatorArmed.md) -- [IrlockReport](../msg_docs/IrlockReport.md) +- [OpenDroneIdOperatorId](../msg_docs/OpenDroneIdOperatorId.md) +- [VehicleAcceleration](../msg_docs/VehicleAcceleration.md) +- [ButtonEvent](../msg_docs/ButtonEvent.md) +- [RtlStatus](../msg_docs/RtlStatus.md) +- [SensorGyroFft](../msg_docs/SensorGyroFft.md) +- [VehicleRoi](../msg_docs/VehicleRoi.md) +- [OrbTestLarge](../msg_docs/OrbTestLarge.md) - [RoverSpeedStatus](../msg_docs/RoverSpeedStatus.md) +- [Event](../msg_docs/Event.md) +- [InternalCombustionEngineControl](../msg_docs/InternalCombustionEngineControl.md) +- [DebugVect](../msg_docs/DebugVect.md) +- [FailureDetectorStatus](../msg_docs/FailureDetectorStatus.md) +- [EventV0](../msg_docs/EventV0.md) +- [FuelTankStatus](../msg_docs/FuelTankStatus.md) +- [FixedWingLateralGuidanceStatus](../msg_docs/FixedWingLateralGuidanceStatus.md) +- [MissionResult](../msg_docs/MissionResult.md) +- [VehicleLocalPositionV0](../msg_docs/VehicleLocalPositionV0.md) +- [BatteryInfo](../msg_docs/BatteryInfo.md) +- [EstimatorGpsStatus](../msg_docs/EstimatorGpsStatus.md) +- [RegisterExtComponentReplyV0](../msg_docs/RegisterExtComponentReplyV0.md) +- [SensorUwb](../msg_docs/SensorUwb.md) +- [LandingTargetInnovations](../msg_docs/LandingTargetInnovations.md) +- [SensorCorrection](../msg_docs/SensorCorrection.md) +- [ConfigOverridesV0](../msg_docs/ConfigOverridesV0.md) +- [UlogStream](../msg_docs/UlogStream.md) +- [GpioOut](../msg_docs/GpioOut.md) +- [Mission](../msg_docs/Mission.md) +- [EscEepromRead](../msg_docs/EscEepromRead.md) +- [PpsCapture](../msg_docs/PpsCapture.md) +- [SensorSelection](../msg_docs/SensorSelection.md) +- [EstimatorAidSource1d](../msg_docs/EstimatorAidSource1d.md) +- [UavcanParameterValue](../msg_docs/UavcanParameterValue.md) +- [PwmInput](../msg_docs/PwmInput.md) +- [ManualControlSwitches](../msg_docs/ManualControlSwitches.md) +- [VehicleStatusV0](../msg_docs/VehicleStatusV0.md) +- [ParameterResetRequest](../msg_docs/ParameterResetRequest.md) +- [NeuralControl](../msg_docs/NeuralControl.md) +- [GpioRequest](../msg_docs/GpioRequest.md) +- [ActuatorTest](../msg_docs/ActuatorTest.md) +- [DebugArray](../msg_docs/DebugArray.md) +- [NormalizedUnsignedSetpoint](../msg_docs/NormalizedUnsignedSetpoint.md) +- [UavcanParameterRequest](../msg_docs/UavcanParameterRequest.md) +- [ActuatorServosTrim](../msg_docs/ActuatorServosTrim.md) +- [CellularStatus](../msg_docs/CellularStatus.md) +- [ParameterUpdate](../msg_docs/ParameterUpdate.md) +- [InternalCombustionEngineStatus](../msg_docs/InternalCombustionEngineStatus.md) +- [NavigatorMissionItem](../msg_docs/NavigatorMissionItem.md) +- [VehicleAttitudeSetpointV0](../msg_docs/VehicleAttitudeSetpointV0.md) +- [LoggerStatus](../msg_docs/LoggerStatus.md) +- [RcParameterMap](../msg_docs/RcParameterMap.md) +- [GpioIn](../msg_docs/GpioIn.md) +- [FlightPhaseEstimation](../msg_docs/FlightPhaseEstimation.md) +- [GimbalManagerSetAttitude](../msg_docs/GimbalManagerSetAttitude.md) +- [Ekf2Timestamps](../msg_docs/Ekf2Timestamps.md) +- [SensorGnssRelative](../msg_docs/SensorGnssRelative.md) +- [SensorTemp](../msg_docs/SensorTemp.md) +- [EstimatorAidSource2d](../msg_docs/EstimatorAidSource2d.md) +- [SensorGyro](../msg_docs/SensorGyro.md) +- [TuneControl](../msg_docs/TuneControl.md) +- [RcChannels](../msg_docs/RcChannels.md) +- [ControlAllocatorStatus](../msg_docs/ControlAllocatorStatus.md) +- [ActionRequest](../msg_docs/ActionRequest.md) +- [VehicleAirData](../msg_docs/VehicleAirData.md) +- [SensorsStatus](../msg_docs/SensorsStatus.md) +- [VehicleImu](../msg_docs/VehicleImu.md) +- [CameraTrigger](../msg_docs/CameraTrigger.md) +- [GeofenceStatus](../msg_docs/GeofenceStatus.md) +- [EstimatorBias3d](../msg_docs/EstimatorBias3d.md) +- [NavigatorStatus](../msg_docs/NavigatorStatus.md) +- [GeneratorStatus](../msg_docs/GeneratorStatus.md) +- [ParameterSetValueResponse](../msg_docs/ParameterSetValueResponse.md) +- [VehicleConstraints](../msg_docs/VehicleConstraints.md) +- [VehicleImuStatus](../msg_docs/VehicleImuStatus.md) +- [HomePositionV0](../msg_docs/HomePositionV0.md) +- [GimbalManagerInformation](../msg_docs/GimbalManagerInformation.md) +- [OpenDroneIdArmStatus](../msg_docs/OpenDroneIdArmStatus.md) +- [EstimatorBias](../msg_docs/EstimatorBias.md) +- [DeviceInformation](../msg_docs/DeviceInformation.md) +- [FixedWingLateralStatus](../msg_docs/FixedWingLateralStatus.md) +- [VelocityLimits](../msg_docs/VelocityLimits.md) +- [RoverAttitudeStatus](../msg_docs/RoverAttitudeStatus.md) +- [Airspeed](../msg_docs/Airspeed.md) +- [SensorMag](../msg_docs/SensorMag.md) +- [HeaterStatus](../msg_docs/HeaterStatus.md) +- [EstimatorSensorBias](../msg_docs/EstimatorSensorBias.md) +- [SensorHygrometer](../msg_docs/SensorHygrometer.md) +- [OrbTestMedium](../msg_docs/OrbTestMedium.md) +- [RaptorInput](../msg_docs/RaptorInput.md) +- [IrlockReport](../msg_docs/IrlockReport.md) +- [RadioStatus](../msg_docs/RadioStatus.md) +- [RateCtrlStatus](../msg_docs/RateCtrlStatus.md) +- [TrajectorySetpoint6dof](../msg_docs/TrajectorySetpoint6dof.md) +- [SensorAccel](../msg_docs/SensorAccel.md) +- [InputRc](../msg_docs/InputRc.md) +- [VehicleMagnetometer](../msg_docs/VehicleMagnetometer.md) +- [SensorsStatusImu](../msg_docs/SensorsStatusImu.md) +- [SensorBaro](../msg_docs/SensorBaro.md) +- [PurePursuitStatus](../msg_docs/PurePursuitStatus.md) +- [GimbalDeviceInformation](../msg_docs/GimbalDeviceInformation.md) +- [ParameterSetValueRequest](../msg_docs/ParameterSetValueRequest.md) +- [LandingGearWheel](../msg_docs/LandingGearWheel.md) +- [ArmingCheckReplyV0](../msg_docs/ArmingCheckReplyV0.md) +- [GimbalDeviceSetAttitude](../msg_docs/GimbalDeviceSetAttitude.md) +- [LaunchDetectionStatus](../msg_docs/LaunchDetectionStatus.md) +- [GimbalManagerSetManualControl](../msg_docs/GimbalManagerSetManualControl.md) +- [SensorAccelFifo](../msg_docs/SensorAccelFifo.md) +- [MavlinkTunnel](../msg_docs/MavlinkTunnel.md) +- [FigureEightStatus](../msg_docs/FigureEightStatus.md) +- [RtlTimeEstimate](../msg_docs/RtlTimeEstimate.md) +- [Px4ioStatus](../msg_docs/Px4ioStatus.md) +- [VehicleAngularAccelerationSetpoint](../msg_docs/VehicleAngularAccelerationSetpoint.md) +- [Vtx](../msg_docs/Vtx.md) +- [TaskStackInfo](../msg_docs/TaskStackInfo.md) +- [RoverRateStatus](../msg_docs/RoverRateStatus.md) +- [TecsStatus](../msg_docs/TecsStatus.md) +- [DronecanNodeStatus](../msg_docs/DronecanNodeStatus.md) +- [OpenDroneIdSelfId](../msg_docs/OpenDroneIdSelfId.md) +- [GpioConfig](../msg_docs/GpioConfig.md) +- [EstimatorInnovations](../msg_docs/EstimatorInnovations.md) +- [DebugKeyValue](../msg_docs/DebugKeyValue.md) +- [EstimatorEventFlags](../msg_docs/EstimatorEventFlags.md) +- [Rpm](../msg_docs/Rpm.md) +- [TakeoffStatus](../msg_docs/TakeoffStatus.md) +- [HoverThrustEstimate](../msg_docs/HoverThrustEstimate.md) +- [VehicleOpticalFlowVel](../msg_docs/VehicleOpticalFlowVel.md) +- [AutotuneAttitudeControlStatus](../msg_docs/AutotuneAttitudeControlStatus.md) +- [SensorAirflow](../msg_docs/SensorAirflow.md) +- [ActuatorControlsStatus](../msg_docs/ActuatorControlsStatus.md) +- [GimbalControls](../msg_docs/GimbalControls.md) +- [VehicleOpticalFlow](../msg_docs/VehicleOpticalFlow.md) +- [MagnetometerBiasEstimate](../msg_docs/MagnetometerBiasEstimate.md) +- [Gripper](../msg_docs/Gripper.md) +- [GimbalManagerStatus](../msg_docs/GimbalManagerStatus.md) +- [TiltrotorExtraControls](../msg_docs/TiltrotorExtraControls.md) +- [GpsDump](../msg_docs/GpsDump.md) +- [AdcReport](../msg_docs/AdcReport.md) +- [Ping](../msg_docs/Ping.md) +- [SensorPreflightMag](../msg_docs/SensorPreflightMag.md) +- [EscStatus](../msg_docs/EscStatus.md) +- [MountOrientation](../msg_docs/MountOrientation.md) +- [UlogStreamAck](../msg_docs/UlogStreamAck.md) +- [HealthReport](../msg_docs/HealthReport.md) +- [EstimatorSelectorStatus](../msg_docs/EstimatorSelectorStatus.md) +- [VehicleCommandAckV0](../msg_docs/VehicleCommandAckV0.md) +- [EstimatorStatus](../msg_docs/EstimatorStatus.md) +- [FollowTargetEstimator](../msg_docs/FollowTargetEstimator.md) +- [EscReport](../msg_docs/EscReport.md) +- [YawEstimatorStatus](../msg_docs/YawEstimatorStatus.md) +- [VehicleAngularVelocity](../msg_docs/VehicleAngularVelocity.md) +- [DatamanResponse](../msg_docs/DatamanResponse.md) +- [QshellRetval](../msg_docs/QshellRetval.md) +- [DistanceSensorModeChangeRequest](../msg_docs/DistanceSensorModeChangeRequest.md) +- [FollowTarget](../msg_docs/FollowTarget.md) +- [VehicleStatusV1](../msg_docs/VehicleStatusV1.md) +- [LandingTargetPose](../msg_docs/LandingTargetPose.md) +- [CameraCapture](../msg_docs/CameraCapture.md) +- [Cpuload](../msg_docs/Cpuload.md) +- [AirspeedValidatedV0](../msg_docs/AirspeedValidatedV0.md) +- [RegisterExtComponentRequestV0](../msg_docs/RegisterExtComponentRequestV0.md) +- [OrbitStatus](../msg_docs/OrbitStatus.md) +- [CameraStatus](../msg_docs/CameraStatus.md) +- [EstimatorStates](../msg_docs/EstimatorStates.md) +- [FixedWingRunwayControl](../msg_docs/FixedWingRunwayControl.md) +- [MagWorkerData](../msg_docs/MagWorkerData.md) +- [VehicleGlobalPositionV0](../msg_docs/VehicleGlobalPositionV0.md) +- [QshellReq](../msg_docs/QshellReq.md) +- [WheelEncoders](../msg_docs/WheelEncoders.md) +- [DebugValue](../msg_docs/DebugValue.md) +- [PositionControllerLandingStatus](../msg_docs/PositionControllerLandingStatus.md) +- [SensorGnssStatus](../msg_docs/SensorGnssStatus.md) +- [SystemPower](../msg_docs/SystemPower.md) +- [ArmingCheckRequestV0](../msg_docs/ArmingCheckRequestV0.md) +- [ActuatorOutputs](../msg_docs/ActuatorOutputs.md) +- [PositionControllerStatus](../msg_docs/PositionControllerStatus.md) +- [AirspeedWind](../msg_docs/AirspeedWind.md) +- [EstimatorAidSource3d](../msg_docs/EstimatorAidSource3d.md) +- [IridiumsbdStatus](../msg_docs/IridiumsbdStatus.md) +- [PowerMonitor](../msg_docs/PowerMonitor.md) +- [DatamanRequest](../msg_docs/DatamanRequest.md) +- [LogMessage](../msg_docs/LogMessage.md) +- [GpsInjectData](../msg_docs/GpsInjectData.md) +- [OpenDroneIdSystem](../msg_docs/OpenDroneIdSystem.md) +- [VehicleLocalPositionSetpoint](../msg_docs/VehicleLocalPositionSetpoint.md) +- [CanInterfaceStatus](../msg_docs/CanInterfaceStatus.md) +- [OrbTest](../msg_docs/OrbTest.md) +- [DifferentialPressure](../msg_docs/DifferentialPressure.md) +- [SatelliteInfo](../msg_docs/SatelliteInfo.md) +- [GainCompression](../msg_docs/GainCompression.md) ::: diff --git a/docs/en/modules/modules_driver.md b/docs/en/modules/modules_driver.md index 0612215565..3a42139fe2 100644 --- a/docs/en/modules/modules_driver.md +++ b/docs/en/modules/modules_driver.md @@ -191,28 +191,13 @@ Source: [drivers/dshot](https://github.com/PX4/PX4-Autopilot/tree/main/src/drive ### Description -This is the DShot output driver. It is similar to the fmu driver, and can be used as drop-in replacement +This is the DShot output driver. It can be used as drop-in replacement to use DShot as ESC communication protocol instead of PWM. -On startup, the module tries to occupy all available pins for DShot output. -It skips all pins already in use (e.g. by a camera trigger module). - It supports: - DShot150, DShot300, DShot600 - telemetry via separate UART and publishing as esc_status message -- sending DShot commands via CLI - -### Examples - -Permanently reverse motor 1: - -``` -dshot reverse -m 1 -dshot save -m 1 -``` - -After saving, the reversed direction will be regarded as the normal one. So to reverse again repeat the same commands. ### Usage {#dshot_usage} @@ -226,36 +211,6 @@ dshot [arguments...] values: [-x] Swap RX/TX pins - reverse Reverse motor direction - [-m ] Motor index (1-based, default=all) - - normal Normal motor direction - [-m ] Motor index (1-based, default=all) - - save Save current settings - [-m ] Motor index (1-based, default=all) - - 3d_on Enable 3D mode - [-m ] Motor index (1-based, default=all) - - 3d_off Disable 3D mode - [-m ] Motor index (1-based, default=all) - - beep1 Send Beep pattern 1 - [-m ] Motor index (1-based, default=all) - - beep2 Send Beep pattern 2 - [-m ] Motor index (1-based, default=all) - - beep3 Send Beep pattern 3 - [-m ] Motor index (1-based, default=all) - - beep4 Send Beep pattern 4 - [-m ] Motor index (1-based, default=all) - - beep5 Send Beep pattern 5 - [-m ] Motor index (1-based, default=all) - stop status print status info diff --git a/docs/en/msg_docs/EscEepromRead.md b/docs/en/msg_docs/EscEepromRead.md new file mode 100644 index 0000000000..410ebe15dc --- /dev/null +++ b/docs/en/msg_docs/EscEepromRead.md @@ -0,0 +1,41 @@ +--- +pageClass: is-wide-page +--- + +# EscEepromRead (UORB message) + +**TOPICS:** esc_eeprom_read + +## Fields + +| Name | Type | Unit [Frame] | Range/Enum | Description | +| --------- | ----------- | ------------ | ---------- | ---------------------------------------------------- | +| timestamp | `uint64` | us | | Time since system start | +| firmware | `uint8` | | | ESC firmware type (see ESC_FIRMWARE enum in MAVLink) | +| index | `uint8` | | | Index of the ESC (0 = ESC1, 1 = ESC2, etc.) | +| length | `uint16` | | | Length of valid data | +| data | `uint8[48]` | | | Raw ESC EEPROM data | + +## Constants + +| Name | Type | Value | Description | +| ----------------------------------------------- | ------- | ----- | -------------------------------- | +| ORB_QUEUE_LENGTH | `uint8` | 8 | To support 8 queued up responses | + +## Source Message + +[Source file (GitHub)](https://github.com/PX4/PX4-Autopilot/blob/main/msg/EscEepromRead.msg) + +::: details Click here to see original file + +```c +uint64 timestamp # [us] Time since system start +uint8 firmware # [-] ESC firmware type (see ESC_FIRMWARE enum in MAVLink) +uint8 index # [-] Index of the ESC (0 = ESC1, 1 = ESC2, etc.) +uint16 length # [-] Length of valid data +uint8[48] data # [-] Raw ESC EEPROM data + +uint8 ORB_QUEUE_LENGTH = 8 # To support 8 queued up responses +``` + +::: diff --git a/docs/en/msg_docs/EscEepromWrite.md b/docs/en/msg_docs/EscEepromWrite.md new file mode 100644 index 0000000000..85691d7669 --- /dev/null +++ b/docs/en/msg_docs/EscEepromWrite.md @@ -0,0 +1,43 @@ +--- +pageClass: is-wide-page +--- + +# EscEepromWrite (UORB message) + +**TOPICS:** esc_eeprom_write + +## Fields + +| Name | Type | Unit [Frame] | Range/Enum | Description | +| ---------- | ----------- | ------------ | ---------- | ---------------------------------------------------------------------------------- | +| timestamp | `uint64` | us | | Time since system start | +| firmware | `uint8` | | | ESC firmware type (see ESC_FIRMWARE enum in MAVLink) | +| index | `uint8` | | | Index of the ESC (0 = ESC1, 1 = ESC2, etc, 255 = All) | +| length | `uint16` | | | Length of valid data | +| data | `uint8[48]` | | | Raw ESC EEPROM data | +| write_mask | `uint32[2]` | | | Bitmask indicating which bytes in the data array should be written (max 48 values) | + +## Constants + +| Name | Type | Value | Description | +| ----------------------------------------------- | ------- | ----- | ------------------------------- | +| ORB_QUEUE_LENGTH | `uint8` | 8 | To support 8 queued up requests | + +## Source Message + +[Source file (GitHub)](https://github.com/PX4/PX4-Autopilot/blob/main/msg/EscEepromWrite.msg) + +::: details Click here to see original file + +```c +uint64 timestamp # [us] Time since system start +uint8 firmware # [-] ESC firmware type (see ESC_FIRMWARE enum in MAVLink) +uint8 index # [-] Index of the ESC (0 = ESC1, 1 = ESC2, etc, 255 = All) +uint16 length # [-] Length of valid data +uint8[48] data # [-] Raw ESC EEPROM data +uint32[2] write_mask # [-] Bitmask indicating which bytes in the data array should be written (max 48 values) + +uint8 ORB_QUEUE_LENGTH = 8 # To support 8 queued up requests +``` + +::: diff --git a/docs/en/msg_docs/EscReport.md b/docs/en/msg_docs/EscReport.md index 2101e0e183..5f7850d0ff 100644 --- a/docs/en/msg_docs/EscReport.md +++ b/docs/en/msg_docs/EscReport.md @@ -8,28 +8,27 @@ pageClass: is-wide-page ## Fields -| Name | Type | Unit [Frame] | Range/Enum | Description | -| ----------------- | --------- | ------------ | ---------- | ------------------------------------------------------------------ | -| timestamp | `uint64` | | | time since system start (microseconds) | -| esc_errorcount | `uint32` | | | Number of reported errors by ESC - if supported | -| esc_rpm | `int32` | | | Motor RPM, negative for reverse rotation [RPM] - if supported | -| esc_voltage | `float32` | | | Voltage measured from current ESC [V] - if supported | -| esc_current | `float32` | | | Current measured from current ESC [A] - if supported | -| esc_temperature | `float32` | | | Temperature measured from current ESC [degC] - if supported | -| motor_temperature | `int16` | | | Temperature measured from current motor [degC] - if supported | -| esc_address | `uint8` | | | Address of current ESC (in most cases 1-8 / must be set by driver) | -| esc_cmdcount | `uint8` | | | Counter of number of commands | -| esc_state | `uint8` | | | State of ESC - depend on Vendor | -| actuator_function | `uint8` | | | actuator output function (one of Motor1...MotorN) | -| failures | `uint16` | | | Bitmask to indicate the internal ESC faults | -| esc_power | `int8` | | | Applied power 0-100 in % (negative values reserved) | +| Name | Type | Unit [Frame] | Range/Enum | Description | +| ----------------- | --------- | ------------ | ------------------- | ------------------------------------------------------------------- | +| timestamp | `uint64` | us | | Time since system start | +| esc_errorcount | `uint32` | | | Number of reported errors by ESC - if supported | +| esc_rpm | `int32` | rpm | | Motor RPM, negative for reverse rotation - if supported | +| esc_voltage | `float32` | V | | Voltage measured from current ESC - if supported | +| esc_current | `float32` | A | | Current measured from current ESC - if supported | +| esc_temperature | `float32` | degC | | Temperature measured from current ESC - if supported | +| esc_address | `uint8` | | | Address of current ESC (in most cases 1-12 / must be set by driver) | +| motor_temperature | `int16` | degC | | Temperature measured from current motor - if supported | +| esc_state | `uint8` | | | State of ESC - depend on Vendor | +| actuator_function | `uint8` | | | Actuator output function (one of Motor1...MotorN) | +| failures | `uint16` | | [FAILURE](#FAILURE) | Bitmask to indicate the internal ESC faults | +| esc_power | `int8` | % | [0 : 100] | Applied power (negative values reserved) | -## Constants +## Enums + +### FAILURE {#FAILURE} | Name | Type | Value | Description | | --------------------------------------------------------------------------- | ------- | ----- | ---------------------------------------------------------------------------- | -| ACTUATOR_FUNCTION_MOTOR1 | `uint8` | 101 | -| ACTUATOR_FUNCTION_MOTOR_MAX | `uint8` | 112 | output_functions.yaml Motor.start + Motor.count - 1 | | FAILURE_OVER_CURRENT | `uint8` | 0 | (1 << 0) | | FAILURE_OVER_VOLTAGE | `uint8` | 1 | (1 << 1) | | FAILURE_MOTOR_OVER_TEMPERATURE | `uint8` | 2 | (1 << 2) | @@ -40,7 +39,14 @@ pageClass: is-wide-page | FAILURE_MOTOR_WARN_TEMPERATURE | `uint8` | 7 | (1 << 7) | | FAILURE_WARN_ESC_TEMPERATURE | `uint8` | 8 | (1 << 8) | | FAILURE_OVER_ESC_TEMPERATURE | `uint8` | 9 | (1 << 9) | -| ESC_FAILURE_COUNT | `uint8` | 10 | Counter - keep it as last element! | + +## Constants + +| Name | Type | Value | Description | +| --------------------------------------------------------------------- | ------- | ----- | --------------------------------------------------- | +| ACTUATOR_FUNCTION_MOTOR1 | `uint8` | 101 | +| ACTUATOR_FUNCTION_MOTOR_MAX | `uint8` | 112 | output_functions.yaml Motor.start + Motor.count - 1 | +| ESC_FAILURE_COUNT | `uint8` | 10 | Counter - keep it as last element! | ## Source Message @@ -49,36 +55,37 @@ pageClass: is-wide-page ::: details Click here to see original file ```c -uint64 timestamp # time since system start (microseconds) -uint32 esc_errorcount # Number of reported errors by ESC - if supported -int32 esc_rpm # Motor RPM, negative for reverse rotation [RPM] - if supported -float32 esc_voltage # Voltage measured from current ESC [V] - if supported -float32 esc_current # Current measured from current ESC [A] - if supported -float32 esc_temperature # Temperature measured from current ESC [degC] - if supported -int16 motor_temperature # Temperature measured from current motor [degC] - if supported -uint8 esc_address # Address of current ESC (in most cases 1-8 / must be set by driver) -uint8 esc_cmdcount # Counter of number of commands +uint64 timestamp # [us] Time since system start -uint8 esc_state # State of ESC - depend on Vendor +uint32 esc_errorcount # [-] Number of reported errors by ESC - if supported +int32 esc_rpm # [rpm] Motor RPM, negative for reverse rotation - if supported +float32 esc_voltage # [V] Voltage measured from current ESC - if supported +float32 esc_current # [A] Current measured from current ESC - if supported +float32 esc_temperature # [degC] Temperature measured from current ESC - if supported +uint8 esc_address # [-] Address of current ESC (in most cases 1-12 / must be set by driver) +int16 motor_temperature # [degC] Temperature measured from current motor - if supported + +uint8 esc_state # [-] State of ESC - depend on Vendor + +uint8 actuator_function # [-] Actuator output function (one of Motor1...MotorN) -uint8 actuator_function # actuator output function (one of Motor1...MotorN) uint8 ACTUATOR_FUNCTION_MOTOR1 = 101 uint8 ACTUATOR_FUNCTION_MOTOR_MAX = 112 # output_functions.yaml Motor.start + Motor.count - 1 -uint16 failures # Bitmask to indicate the internal ESC faults -int8 esc_power # Applied power 0-100 in % (negative values reserved) +uint16 failures # [@enum FAILURE] Bitmask to indicate the internal ESC faults +int8 esc_power # [%] [@range 0,100] Applied power (negative values reserved) -uint8 FAILURE_OVER_CURRENT = 0 # (1 << 0) -uint8 FAILURE_OVER_VOLTAGE = 1 # (1 << 1) -uint8 FAILURE_MOTOR_OVER_TEMPERATURE = 2 # (1 << 2) -uint8 FAILURE_OVER_RPM = 3 # (1 << 3) -uint8 FAILURE_INCONSISTENT_CMD = 4 # (1 << 4) Set if ESC received an inconsistent command (i.e out of boundaries) -uint8 FAILURE_MOTOR_STUCK = 5 # (1 << 5) -uint8 FAILURE_GENERIC = 6 # (1 << 6) -uint8 FAILURE_MOTOR_WARN_TEMPERATURE = 7 # (1 << 7) -uint8 FAILURE_WARN_ESC_TEMPERATURE = 8 # (1 << 8) -uint8 FAILURE_OVER_ESC_TEMPERATURE = 9 # (1 << 9) -uint8 ESC_FAILURE_COUNT = 10 # Counter - keep it as last element! +uint8 FAILURE_OVER_CURRENT = 0 # (1 << 0) +uint8 FAILURE_OVER_VOLTAGE = 1 # (1 << 1) +uint8 FAILURE_MOTOR_OVER_TEMPERATURE = 2 # (1 << 2) +uint8 FAILURE_OVER_RPM = 3 # (1 << 3) +uint8 FAILURE_INCONSISTENT_CMD = 4 # (1 << 4) Set if ESC received an inconsistent command (i.e out of boundaries) +uint8 FAILURE_MOTOR_STUCK = 5 # (1 << 5) +uint8 FAILURE_GENERIC = 6 # (1 << 6) +uint8 FAILURE_MOTOR_WARN_TEMPERATURE = 7 # (1 << 7) +uint8 FAILURE_WARN_ESC_TEMPERATURE = 8 # (1 << 8) +uint8 FAILURE_OVER_ESC_TEMPERATURE = 9 # (1 << 9) +uint8 ESC_FAILURE_COUNT = 10 # Counter - keep it as last element! ``` ::: diff --git a/docs/en/msg_docs/EscStatus.md b/docs/en/msg_docs/EscStatus.md index f4a8ab377c..4b1384a169 100644 --- a/docs/en/msg_docs/EscStatus.md +++ b/docs/en/msg_docs/EscStatus.md @@ -8,27 +8,34 @@ pageClass: is-wide-page ## Fields -| Name | Type | Unit [Frame] | Range/Enum | Description | -| ------------------ | -------------- | ------------ | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | -| timestamp | `uint64` | | | time since system start (microseconds) | -| counter | `uint16` | | | incremented by the writing thread everytime new data is stored | -| esc_count | `uint8` | | | number of connected ESCs | -| esc_connectiontype | `uint8` | | | how ESCs connected to the system | -| esc_online_flags | `uint8` | | | Bitmask indicating which ESC is online/offline | -| esc_armed_flags | `uint8` | | | Bitmask indicating which ESC is armed. For ESC's where the arming state is not known (returned by the ESC), the arming bits should always be set. | -| esc | `EscReport[8]` | | | +| Name | Type | Unit [Frame] | Range/Enum | Description | +| ------------------ | --------------- | ------------ | ------------------------------------------- | --------------------------------------------------------------- | +| timestamp | `uint64` | us | | Time since system start | +| counter | `uint16` | | | Incremented by the writing thread everytime new data is stored | +| esc_count | `uint8` | | | Number of connected ESCs | +| esc_connectiontype | `uint8` | | [ESC_CONNECTION_TYPE](#ESC_CONNECTION_TYPE) | How ESCs connected to the system | +| esc_online_flags | `uint16` | | | Bitmask indicating which ESC is online/offline (in motor order) | +| esc_armed_flags | `uint16` | | | Bitmask indicating which ESC is armed (in motor order) | +| esc | `EscReport[12]` | | | + +## Enums + +### ESC_CONNECTION_TYPE {#ESC_CONNECTION_TYPE} + +| Name | Type | Value | Description | +| --------------------------------------------------------------------- | ------- | ----- | ------------------------ | +| ESC_CONNECTION_TYPE_PPM | `uint8` | 0 | Traditional PPM ESC | +| ESC_CONNECTION_TYPE_SERIAL | `uint8` | 1 | Serial Bus connected ESC | +| ESC_CONNECTION_TYPE_ONESHOT | `uint8` | 2 | One Shot PPM | +| ESC_CONNECTION_TYPE_I2C | `uint8` | 3 | I2C | +| ESC_CONNECTION_TYPE_CAN | `uint8` | 4 | CAN-Bus | +| ESC_CONNECTION_TYPE_DSHOT | `uint8` | 5 | DShot | ## Constants -| Name | Type | Value | Description | -| --------------------------------------------------------------------- | ------- | ----- | ----------------------------------------------------------------- | -| CONNECTED_ESC_MAX | `uint8` | 8 | The number of ESCs supported. Current (Q2/2013) we support 8 ESCs | -| ESC_CONNECTION_TYPE_PPM | `uint8` | 0 | Traditional PPM ESC | -| ESC_CONNECTION_TYPE_SERIAL | `uint8` | 1 | Serial Bus connected ESC | -| ESC_CONNECTION_TYPE_ONESHOT | `uint8` | 2 | One Shot PPM | -| ESC_CONNECTION_TYPE_I2C | `uint8` | 3 | I2C | -| ESC_CONNECTION_TYPE_CAN | `uint8` | 4 | CAN-Bus | -| ESC_CONNECTION_TYPE_DSHOT | `uint8` | 5 | DShot | +| Name | Type | Value | Description | +| ------------------------------------------------- | ------- | ----- | --------------------------------------------- | +| CONNECTED_ESC_MAX | `uint8` | 12 | The number of ESCs supported (Motor1-Motor12) | ## Source Message @@ -37,34 +44,38 @@ pageClass: is-wide-page ::: details Click here to see original file ```c -uint64 timestamp # time since system start (microseconds) -uint8 CONNECTED_ESC_MAX = 8 # The number of ESCs supported. Current (Q2/2013) we support 8 ESCs +uint64 timestamp # [us] Time since system start +uint8 CONNECTED_ESC_MAX = 12 # The number of ESCs supported (Motor1-Motor12) -uint8 ESC_CONNECTION_TYPE_PPM = 0 # Traditional PPM ESC -uint8 ESC_CONNECTION_TYPE_SERIAL = 1 # Serial Bus connected ESC -uint8 ESC_CONNECTION_TYPE_ONESHOT = 2 # One Shot PPM -uint8 ESC_CONNECTION_TYPE_I2C = 3 # I2C -uint8 ESC_CONNECTION_TYPE_CAN = 4 # CAN-Bus -uint8 ESC_CONNECTION_TYPE_DSHOT = 5 # DShot +uint8 ESC_CONNECTION_TYPE_PPM = 0 # Traditional PPM ESC +uint8 ESC_CONNECTION_TYPE_SERIAL = 1 # Serial Bus connected ESC +uint8 ESC_CONNECTION_TYPE_ONESHOT = 2 # One Shot PPM +uint8 ESC_CONNECTION_TYPE_I2C = 3 # I2C +uint8 ESC_CONNECTION_TYPE_CAN = 4 # CAN-Bus +uint8 ESC_CONNECTION_TYPE_DSHOT = 5 # DShot -uint16 counter # incremented by the writing thread everytime new data is stored +uint16 counter # [-] Incremented by the writing thread everytime new data is stored -uint8 esc_count # number of connected ESCs -uint8 esc_connectiontype # how ESCs connected to the system +uint8 esc_count # [-] Number of connected ESCs +uint8 esc_connectiontype # [@enum ESC_CONNECTION_TYPE] How ESCs connected to the system -uint8 esc_online_flags # Bitmask indicating which ESC is online/offline -# esc_online_flags bit 0 : Set to 1 if ESC0 is online -# esc_online_flags bit 1 : Set to 1 if ESC1 is online -# esc_online_flags bit 2 : Set to 1 if ESC2 is online -# esc_online_flags bit 3 : Set to 1 if ESC3 is online -# esc_online_flags bit 4 : Set to 1 if ESC4 is online -# esc_online_flags bit 5 : Set to 1 if ESC5 is online -# esc_online_flags bit 6 : Set to 1 if ESC6 is online -# esc_online_flags bit 7 : Set to 1 if ESC7 is online +uint16 esc_online_flags # Bitmask indicating which ESC is online/offline (in motor order) +# esc_online_flags bit 0 : Set to 1 if Motor1 is online +# esc_online_flags bit 1 : Set to 1 if Motor2 is online +# esc_online_flags bit 2 : Set to 1 if Motor3 is online +# esc_online_flags bit 3 : Set to 1 if Motor4 is online +# esc_online_flags bit 4 : Set to 1 if Motor5 is online +# esc_online_flags bit 5 : Set to 1 if Motor6 is online +# esc_online_flags bit 6 : Set to 1 if Motor7 is online +# esc_online_flags bit 7 : Set to 1 if Motor8 is online +# esc_online_flags bit 8 : Set to 1 if Motor9 is online +# esc_online_flags bit 9 : Set to 1 if Motor10 is online +# esc_online_flags bit 10: Set to 1 if Motor11 is online +# esc_online_flags bit 11: Set to 1 if Motor12 is online -uint8 esc_armed_flags # Bitmask indicating which ESC is armed. For ESC's where the arming state is not known (returned by the ESC), the arming bits should always be set. +uint16 esc_armed_flags # [-] Bitmask indicating which ESC is armed (in motor order) -EscReport[8] esc +EscReport[12] esc ``` ::: diff --git a/docs/en/msg_docs/VehicleCommand.md b/docs/en/msg_docs/VehicleCommand.md index 5f42816d9a..5359238258 100644 --- a/docs/en/msg_docs/VehicleCommand.md +++ b/docs/en/msg_docs/VehicleCommand.md @@ -1052,6 +1052,20 @@ Actuator configuration command. | 6 | | | ? | | 7 | | | ? | +### VEHICLE_CMD_ESC_REQUEST_EEPROM (312) + +Request EEPROM data from an ESC. + +| Param | Units | Range/Enum | Description | +| ----- | ----- | ---------- | ------------- | +| 1 | | | ESC Index | +| 2 | | | Firmware Type | +| 3 | | | Unused | +| 4 | | | Unused | +| 5 | | | Unused | +| 6 | | | ? | +| 7 | | | ? | + ### VEHICLE_CMD_COMPONENT_ARM_DISARM (400) Arms / Disarms a component. @@ -1526,16 +1540,22 @@ Change mode by specifying nav_state directly. ## Constants -| Name | Type | Value | Description | -| --------------------------------------------------------------------------------------------------------- | -------- | ----- | ------------------------------------------------------------------------------------------ | +| Name | Type | Value | Description | +| --------------------------------------------------------------------------------------------------------- | -------- | ----- | ----------------------------------------------------------------------------------------------------- | | MESSAGE_VERSION | `uint32` | 0 | -| PREFLIGHT_CALIBRATION_TEMPERATURE_CALIBRATION | `uint16` | 3 | Param value for VEHICLE_CMD_PREFLIGHT_CALIBRATION to start temperature calibration. | -| VEHICLE_MOUNT_MODE_RETRACT | `uint8` | 0 | Load and keep safe position (Roll,Pitch,Yaw) from permanent memory and stop stabilization. | -| VEHICLE_MOUNT_MODE_NEUTRAL | `uint8` | 1 | Load and keep neutral position (Roll,Pitch,Yaw) from permanent memory. | -| VEHICLE_MOUNT_MODE_MAVLINK_TARGETING | `uint8` | 2 | Load neutral position and start MAVLink Roll,Pitch,Yaw control with stabilization. | -| VEHICLE_MOUNT_MODE_RC_TARGETING | `uint8` | 3 | Load neutral position and start RC Roll,Pitch,Yaw control with stabilization. | -| VEHICLE_MOUNT_MODE_GPS_POINT | `uint8` | 4 | Load neutral position and start to point to Lat,Lon,Alt. | +| PREFLIGHT_CALIBRATION_TEMPERATURE_CALIBRATION | `uint16` | 3 | Param value for VEHICLE_CMD_PREFLIGHT_CALIBRATION to start temperature calibration. | +| VEHICLE_MOUNT_MODE_RETRACT | `uint8` | 0 | Load and keep safe position (Roll,Pitch,Yaw) from permanent memory and stop stabilization. | +| VEHICLE_MOUNT_MODE_NEUTRAL | `uint8` | 1 | Load and keep neutral position (Roll,Pitch,Yaw) from permanent memory. | +| VEHICLE_MOUNT_MODE_MAVLINK_TARGETING | `uint8` | 2 | Load neutral position and start MAVLink Roll,Pitch,Yaw control with stabilization. | +| VEHICLE_MOUNT_MODE_RC_TARGETING | `uint8` | 3 | Load neutral position and start RC Roll,Pitch,Yaw control with stabilization. | +| VEHICLE_MOUNT_MODE_GPS_POINT | `uint8` | 4 | Load neutral position and start to point to Lat,Lon,Alt. | | VEHICLE_MOUNT_MODE_ENUM_END | `uint8` | 5 | +| ACTUATOR_CONFIGURATION_NONE | `uint8` | 0 | Do nothing. | +| ACTUATOR_CONFIGURATION_BEEP | `uint8` | 1 | Command the actuator to beep now. | +| ACTUATOR_CONFIGURATION_3D_MODE_ON | `uint8` | 2 | Permanently set the actuator (ESC) to 3D mode (reversible thrust). | +| ACTUATOR_CONFIGURATION_3D_MODE_OFF | `uint8` | 3 | Permanently set the actuator (ESC) to non 3D mode (non-reversible thrust). | +| ACTUATOR_CONFIGURATION_SPIN_DIRECTION1 | `uint8` | 4 | Permanently set the actuator (ESC) to spin direction 1 (which can be clockwise or counter-clockwise). | +| ACTUATOR_CONFIGURATION_SPIN_DIRECTION2 | `uint8` | 5 | Permanently set the actuator (ESC) to spin direction 2 (opposite of direction 1). | | PARACHUTE_ACTION_DISABLE | `uint8` | 0 | | PARACHUTE_ACTION_ENABLE | `uint8` | 1 | | PARACHUTE_ACTION_RELEASE | `uint8` | 2 | @@ -1660,6 +1680,7 @@ uint16 VEHICLE_CMD_GIMBAL_DEVICE_INFORMATION = 283 # Command to ask information uint16 VEHICLE_CMD_MISSION_START = 300 # Start running a mission. |first_item: the first mission item to run|last_item: the last mission item to run (after this item is run, the mission ends)| uint16 VEHICLE_CMD_ACTUATOR_TEST = 310 # Actuator testing command. |[@range -1,1] value|[s] timeout|Unused|Unused|output function| uint16 VEHICLE_CMD_CONFIGURE_ACTUATOR = 311 # Actuator configuration command. |configuration|Unused|Unused|Unused|output function| +uint16 VEHICLE_CMD_ESC_REQUEST_EEPROM = 312 # Request EEPROM data from an ESC. |ESC Index|Firmware Type|Unused|Unused|Unused| uint16 VEHICLE_CMD_COMPONENT_ARM_DISARM = 400 # Arms / Disarms a component. |1 to arm, 0 to disarm. uint16 VEHICLE_CMD_RUN_PREARM_CHECKS = 401 # Instructs a target system to run pre-arm checks. uint16 VEHICLE_CMD_INJECT_FAILURE = 420 # Inject artificial failure for testing purposes. @@ -1709,6 +1730,13 @@ uint8 VEHICLE_ROI_LOCATION = 3 # Point toward fixed location. uint8 VEHICLE_ROI_TARGET = 4 # Point toward target. uint8 VEHICLE_ROI_ENUM_END = 5 +uint8 ACTUATOR_CONFIGURATION_NONE = 0 # Do nothing. +uint8 ACTUATOR_CONFIGURATION_BEEP = 1 # Command the actuator to beep now. +uint8 ACTUATOR_CONFIGURATION_3D_MODE_ON = 2 # Permanently set the actuator (ESC) to 3D mode (reversible thrust). +uint8 ACTUATOR_CONFIGURATION_3D_MODE_OFF = 3 # Permanently set the actuator (ESC) to non 3D mode (non-reversible thrust). +uint8 ACTUATOR_CONFIGURATION_SPIN_DIRECTION1 = 4 # Permanently set the actuator (ESC) to spin direction 1 (which can be clockwise or counter-clockwise). +uint8 ACTUATOR_CONFIGURATION_SPIN_DIRECTION2 = 5 # Permanently set the actuator (ESC) to spin direction 2 (opposite of direction 1). + uint8 PARACHUTE_ACTION_DISABLE = 0 uint8 PARACHUTE_ACTION_ENABLE = 1 uint8 PARACHUTE_ACTION_RELEASE = 2 diff --git a/docs/en/msg_docs/index.md b/docs/en/msg_docs/index.md index 23531f3330..ff02de8420 100644 --- a/docs/en/msg_docs/index.md +++ b/docs/en/msg_docs/index.md @@ -85,6 +85,8 @@ Graphs showing how these are used [can be found here](../middleware/uorb_graph.m - [DistanceSensorModeChangeRequest](DistanceSensorModeChangeRequest.md) - [DronecanNodeStatus](DronecanNodeStatus.md) - [Ekf2Timestamps](Ekf2Timestamps.md) — this message contains the (relative) timestamps of the sensor inputs used by EKF2. It can be used for reproducible replay. +- [EscEepromRead](EscEepromRead.md) +- [EscEepromWrite](EscEepromWrite.md) - [EscReport](EscReport.md) - [EscStatus](EscStatus.md) - [EstimatorAidSource1d](EstimatorAidSource1d.md)