Dynamixel  2.9.5
RoadNarrows Robotics Dynamixel Package
Dynamixel Bus Packet Protocol

Intro

The Dynamixel Bus packats are tranmitted over a half-duplex serial interface at baud rates up to 3Mbs. The host initiates communication by transmitting a request and then waits for a response, if any, from the servo. There are two broad versions of the protocol:

Currently, only Version 1 of the protocol is supported.

Supported Packets Types

Ping Pings the specified servo.
Read Read byte/word from the specified servo.
Write Write byte/word to the specified servo.
SyncWrite Synchonize write data to a specified set of servos.

Packet Fields

Field Pos Len Values Notes
FRAME 0 2 0xffff All tx/rx packets begin with the frame bytes.
id 2 1 0-253, 254 Servo identifier: 0-253, BROADCAST: 254
len 3 1 2-255 Length of packet excluding FRAME, len, and chksum.
inst 4 1 enum Instruction. PING: 1, READ: 2, WRITE: 3, SYNC_WRITE: 131
addr 5 1 0-255 Address of servo control table data.
val_len 6 1 1, 2 Length of servo control table data.
val - 1 byte Byte read/written from/to servo control.
val_lsb - 1 byte Word LSB read/written from/to servo control table.
val_msb - 1 byte Word MSB read/written from/to servo control table.
chksum len+3 1 byte Checksum over packet excluding FRAME.

Packet Formats

Ping

TX (6) 0xff 0xff id 2 PING chksum
RX (6) 0xff 0xff id 2 PING chksum

Read Byte

TX (8) 0xff 0xff id 4 READ addr 1 chksum
RX (8) 0xff 0xff id 4 READ addr val chksum

Read Word

TX (8) 0xff 0xff id 4 READ addr 2 chksum
RX (9) 0xff 0xff id 5 READ addr val_lsb val_msb chksum

Write Byte

TX (8) 0xff 0xff id 4 WRITE addr val chksum
RX (6) 0xff 0xff id 2 WRITE chksum

Write Word

TX (9) 0xff 0xff id 5 WRITE addr val_lsb val_msb chksum
RX (6) 0xff 0xff id 2 WRITE chksum

Sync Write Byte

TX (len+4) 0xff 0xff BROADCAST 4+2*n SYNC_WRITE addr 1 id_1 val_1 ... id_n val_n chksum

no response

Sync Write Word

TX (len+4) 0xff 0xff BROADCAST 4+3*n SYNC_WRITE addr 2 id_1 val_lsb_1 val_msb_1 ... id_n val_lsb_n val_msb_n chksum

no response