Files
PX4-Autopilot/docs/en/msg_docs/EscReport.md
PX4BuildBot 35767730e4 docs: auto-sync metadata [skip ci]
Co-Authored-By: PX4 BuildBot <bot@px4.io>
2026-03-18 10:07:02 +00:00

6.2 KiB

pageClass
pageClass
is-wide-page

EscReport (UORB message)

TOPICS: esc_report

Fields

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
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 Bitmask to indicate the internal ESC faults
esc_power int8 % [0 : 100] Applied power (negative values reserved)

Enums

FAILURE

Name Type Value Description
FAILURE_OVER_CURRENT uint8 0 (1 << 0)
FAILURE_OVER_VOLTAGE uint8 1 (1 << 1)
FAILURE_MOTOR_OVER_TEMPERATURE uint8 2 (1 << 2)
FAILURE_OVER_RPM uint8 3 (1 << 3)
FAILURE_INCONSISTENT_CMD uint8 4 (1 << 4) Set if ESC received an inconsistent command (i.e out of boundaries)
FAILURE_MOTOR_STUCK uint8 5 (1 << 5)
FAILURE_GENERIC uint8 6 (1 << 6)
FAILURE_MOTOR_WARN_TEMPERATURE uint8 7 (1 << 7)
FAILURE_WARN_ESC_TEMPERATURE uint8 8 (1 << 8)
FAILURE_OVER_ESC_TEMPERATURE uint8 9 (1 << 9)

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

Source file (GitHub)

::: details Click here to see original file

uint64 timestamp # [us] Time since system start

uint32 esc_errorcount # [-] Number of reported errors by ESC - if supported
int32 esc_rpm # [rpm] Motor RPM, negative for reverse rotation - if supported
float32 esc_voltage # [V] Voltage measured from current ESC - if supported
float32 esc_current # [A] Current measured from current ESC - if supported
float32 esc_temperature # [degC] Temperature measured from current ESC - if supported
int16 motor_temperature # [degC] Temperature measured from current motor - if supported

uint8 esc_state # [-] State of ESC - depend on Vendor

uint8 actuator_function # [-] Actuator output function (one of Motor1...MotorN)

uint8 ACTUATOR_FUNCTION_MOTOR1 = 101
uint8 ACTUATOR_FUNCTION_MOTOR_MAX = 112 # output_functions.yaml Motor.start + Motor.count - 1

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!

:::