Sync Write Command Not Moving Two Motors in Velocity Mode

Hi all! I am working with multiple Dynamixel XM540-W150-R motors. The motors are chained together to an RS485 card and I’ve verified that communication is not an issue currently.

I’ve been able to successfully use sync write commands to perform LED on/off, and torque enable/disable commands to multiple motors. However, when I send a sync write velocity command to both motors, they will not move. When I send individual velocity write commands, the motors spin just fine. The velocity values being sent to both motors is also within the velocity limits.

This is the sync write velocity packet (all bytes are in hex):

HEADER ID LEN INS REG SIZE ID DATA ID DATA CRC
FF, FF, FD, 00, FE, 11, 00, 83, 68, 00, 04, 00, 01, E8, 03, 00, 00, 02, C8, 00, 00, 00, C0, 17

I also tried sending a write velocity 0 packet to both motors while they were individually set to rotate and it also did not work:

HEADER ID LEN INS REG SIZE ID DATA ID DATA CRC
FF, FF, FD, 00, FE, 11, 00, 83, 68, 00, 04, 00, 01, 00, 00, 00, 00, 02, 00, 00, 00, 00, E4, D0

However, when I send a sync write torque disable to both motors while they were individually set to rotate, they disable just fine. I can also send a single sync write torque enable command to both motors and then individually set them to move just fine as well.

The Dynamixels are running on Protocol 2.0. Any assistance or pointers would be greatly appreciated as to why this is the only sync write command I can’t get to work.

Thanks!

1 Like

Hi sasalman

The Sync Write packet seems to me correct.

I think that you should check if the accessing packet is out of upper / lower value of Velocity Limit(Addr 44).

If yes, you would have the data limit error (Checked by Write Inst), which does not give you correct result. In this case, release the velocity limit along the range of value in use.