---
pageClass: is-wide-page
---
# ActuatorMotors (UORB message)
Motor control message.
Normalised thrust setpoint for up to 12 motors.
Published by the vehicle's allocation and consumed by the ESC protocol drivers e.g. PWM, DSHOT, UAVCAN.
**TOPICS:** actuator_motors
## Fields
| Name | Type | Unit [Frame] | Range/Enum | Description |
| ---------------- | ------------- | ------------ | ---------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| timestamp | `uint64` | us | | Time since system start |
| timestamp_sample | `uint64` | us | | Sampling timestamp of the data this control response is based on |
| reversible_flags | `uint16` | | | Bitset indicating which motors are configured to be reversible |
| control | `float32[12]` | | [-1 : 1] | Normalized thrust. Where 1 means maximum positive thrust, -1 maximum negative (if not supported by the output, <0 maps to NaN). NaN maps to disarmed (stop the motors) |
## Constants
| Name | Type | Value | Description |
| --------------------------------------------------------------- | -------- | ----- | --------------------------------- |
| MESSAGE_VERSION | `uint32` | 0 |
| ACTUATOR_FUNCTION_MOTOR1 | `uint8` | 101 | output_functions.yaml Motor.start |
| NUM_CONTROLS | `uint8` | 12 | output_functions.yaml Motor.count |
## Source Message
[Source file (GitHub)](https://github.com/PX4/PX4-Autopilot/blob/main/msg/versioned/ActuatorMotors.msg)
::: details Click here to see original file
```c
# Motor control message
#
# Normalised thrust setpoint for up to 12 motors.
# Published by the vehicle's allocation and consumed by the ESC protocol drivers e.g. PWM, DSHOT, UAVCAN.
uint32 MESSAGE_VERSION = 0
uint64 timestamp # [us] Time since system start
uint64 timestamp_sample # [us] Sampling timestamp of the data this control response is based on
uint16 reversible_flags # [-] Bitset indicating which motors are configured to be reversible
uint8 ACTUATOR_FUNCTION_MOTOR1 = 101 # output_functions.yaml Motor.start
uint8 NUM_CONTROLS = 12 # output_functions.yaml Motor.count
float32[12] control # [@range -1, 1] Normalized thrust. Where 1 means maximum positive thrust, -1 maximum negative (if not supported by the output, <0 maps to NaN). NaN maps to disarmed (stop the motors)
```
:::