Files
ardupilot/libraries/AP_Scripting/drivers/UltraMotion.md
T
Peter Barker 5630ed535b AP_Scripting: add type to code blocks
required by the linter, and allows renderers to do syntax highlighting
2026-02-12 19:31:55 +11:00

1.9 KiB

UltraMotion CAN Driver

This driver implements support for the UltraMotion CAN servos

Parameters

The script used the following parameters:

UM_SERVO_MASK

Mask of servo channels to transmit using UltraMotion CAN messages

UM_CANDRV

This sets the CAN scripting driver number to attach to. This is normally set to 1 to use a CAN driver with CAN_Dx_PROTOCOL=10. To use the 2nd scripting CAN driver set this to 2 and set CAN_Dx_PROTOCOL=12.

UM_RATE_HZ

This sets the update rate of the script in Hz (how often it sends commands and checks for new data from the actuator). A value of 200 is reasonable.

UM_OPTIONS

This sets optional features. Set bit 1 for enabling CAN logging. Bit 2 enables telemetry parsing. Bit 3 for sending the position of all servos as NAMED_VALUE_FLOAT MAVLink packets of name UMPOS_n where n is the unit ID.

Operation

This driver should be loaded by placing the lua script in the APM/SCRIPTS directory on the microSD card, which can be done either directly or via MAVFTP. The following key parameters should be set:

  • SCR_ENABLE should be set to 1
  • UM_SERVO_MASK needs to be set to a mask of servos

It is also strongly recommended that you raise SCR_THD_PRIORITY to 3 to ensure the script gets sufficient priority.

then the flight controller should rebooted and parameters should be refreshed.

UltraMotion Settings

The following settings need to be changed using the CLI or CONFIG.TXT

  • unitID should be set to the servo number (1-indexed)
  • pMin to 1000
  • pMax to 2000

If using telemetry (remember to set UM_OPTIONS bit 2), the following should also be set:

  • txID should be set to match unitID

  • txData should be set to ABCGHEFY

  • txIvl should be set according to your desired telemetry rate

    (e.g., 100 milliseconds for 10Hz)

Commands, assuming you are setting up servo 7, and a telemetry rate of 10Hz

id 7
pn 1000
px 2000
ni 7
dt ABCGHEFY
it 100