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