Skip to content

Motion

The commands that move the motor and the frames that come back.

Send_data_pack_1

ID 2host → driver2 or 5 or 8 bytesPython: Send_data_pack_1()

The motion command. Its length decides the control mode the driver enters: 8 bytes command a position with a speed and a current feedforward, 5 bytes a speed with a current feedforward, 2 bytes a current. Send 0 for a feedforward you do not use. A frame of any other length is ignored (the driver flags it as a wrong data length) but still answered.

8 bytes — position setpoint with speed and current feedforward (position mode)

Byte Bit Field Type Meaning
0-2 Position setpoint signed 24-bit encoder ticks
3-5 Speed feedforward signed 24-bit encoder ticks/s
6-7 Current feedforward signed 16-bit mA

5 bytes — speed setpoint with current feedforward (velocity mode)

Byte Bit Field Type Meaning
0-2 Speed setpoint signed 24-bit encoder ticks/s
3-4 Current feedforward signed 16-bit mA

2 bytes — current setpoint (current mode)

Byte Bit Field Type Meaning
0-1 Current setpoint signed 16-bit mA

The driver answers with Respond_data_pack_1.

Every form resets the watchdog. With Rstint set, the integral accumulators are cleared on each new setpoint.


Send_data_pack_PD

ID 4host → driver8 bytesPython: Send_data_pack_PD()

Puts the driver in impedance (PD) mode and sets the position, speed and current feedforward of the PD loop, whose gains are KP and KD (Send_PD_Gains).

8 bytes

Byte Bit Field Type Meaning
0-2 Position setpoint signed 24-bit encoder ticks
3-5 Speed setpoint signed 24-bit encoder ticks/s
6-7 Current feedforward signed 16-bit mA

The driver answers with Respond_data_pack_1.

Firmware 106 and older wrote the speed into the feedforward instead of the PD loop's speed setpoint, so the speed term had no effect; 107 fixed it.


Respond_data_pack_1

ID 3driver → host8 bytes

The driver's answer to Send_data_pack_1 and Send_data_pack_PD: where the motor is, how fast it turns and the current it draws. The Python library stores them as position, speed and current.

The frame (8 bytes)

Byte Bit Field Type Meaning
0-2 position signed 24-bit encoder ticks
3-5 speed signed 24-bit encoder ticks/s
6-7 current signed 16-bit Iq in mA

Send_data_pack_2

ID 6host → drivernot implemented

Reserved. The firmware has no handler for this ID and the Python library's call does nothing.


Send_data_pack_3

ID 8host → drivernot implemented

Reserved. The firmware has no handler for this ID and the Python library's call does nothing.


Respond_data_pack_2

ID 5driver → host0 bytes

Reserved; the driver never sends it.


Respond_data_pack_3

ID 7driver → host0 bytes

Reserved; the driver never sends it.


Send_Iq

ID 21host → drivernot implemented

Reserved; the firmware has no handler for this ID. Use the 2-byte form of Send_data_pack_1 for a current setpoint.


Comments


Found a mistake on this page? Edit it on GitHub · Report it · Get help · This page as Markdown · llms.txt · The whole manual as PDF