Edit on GitHub


CAUTION : XL-320 is a different product from the OLLO Geared and Servo Motor.


Item Specifications
Baud Rate 7343 bps ~ 1 Mbps
Resolution 0.29°
Running Degree 0° ~ 300°
Endless Turn
Weight 16.7 [g]
Dimensions (W x H x D) 24 x 36 x 27 [mm]
Gear Ratio 238 : 1
Stall Torque 0.39Nm @ 7.4V, 1.1A
No Load Speed 114rpm @ 7.4V, 0.18A
Operating Temperature -5°C ~ +65°C
Input Voltage 6 ~ 8.4V (Recommended : 7.4V)
Command Signal Digital Packet
Protocol Type Half Duplex Asynchronous Serial Communication
(8bit, 1stop, No Parity)
Physical Connection TTL Level Multidrop Bus(Daisy Chain Type Connector)
ID 0 ~ 252
Feedback Position, Temperature, Load, Input Voltage, etc
Material Engineering Plastic

NOTE : Stall torque is the maximum instantaneous and static torque. Stable motions are possible with robots designed for loads with 1/5 or less of the stall torque.

(May cause serious injury or death)

  • Never place items containing water, flammables, and solvents near product.
  • Never place fingers, arms, toes, and other body parts near product during operation.
  • Cut power off if product emits strange odors or smoke.
  • Keep product out of reach of children.
  • Check the power’s polarity before wiring.

(May cause injury or damage to product)

  • Do not operate the product at a temperature exceeding -5 ~ +65 [°C] range.
  • Do not insert sharp blades nor pins during product operation.

(May cause injury or damage to product)

  • Do not disassemble or modify product.
  • Do not drop or apply strong shock to product.

Control Table

The Control Table is a structure of data implemented in the device. Users can read a specific Data to get status of the device with Read Instruction Packets, and modify Data as well to control the device with WRITE Instruction Packets.

Control Table, Data, Address

The Control Table is a structure that consists of multiple Data fields to store status or to control the device. Users can check current status of the device by reading a specific Data from the Control Table with Read Instruction Packets. WRITE Instruction Packets enable users to control the device by changing specific Data in the Control Table. The Address is a unique value when accessing a specific Data in the Control Table with Instruction Packets. In order to read or write data, users must designate a specific Address in the Instruction Packet. Please refer to Protocol 2.0 for more details about Instruction Packets.

NOTE : Two’s complement is applied for the negative value. For more information, please refer to Two’s complement from Wikipedia.


The Control Table is divided into 2 Areas. Data in the RAM Area is reset to initial values when the power is reset(Volatile). On the other hand, data in the EEPROM Area is maintained even when the device is powered off(Non-Volatile).

Data in the EEPROM Area can only be written to if Torque Enable(24) is cleared to ‘0’(Off).


The Size of data varies from 1 ~ 2 bytes depend on their usage. Please check the size of data when updating the data with an Instruction Packet. For data larger than 2 bytes will be saved according to Little Endian.


The Control Table has two different access properties. ‘RW’ property stands for read and write access permission while ‘R’ stands for read only access permission. Data with the read only property cannot be changed by the WRITE Instruction. Read only property(‘R’) is generally used for measuring and monitoring purpose, and read write property(‘RW’) is used for controlling device.

Initial Value

Each data in the Control Table is restored to initial values when the device is turned on. Default values in the EEPROM area are initial values of the device (factory default settings). If any values in the EEPROM area are modified by a user, modified values will be restored as initial values when the device is turned on. Initial Values in the RAM area are restored when the device is turned on.

Control Table of EEPROM Area

Address Size
Data Name Description Access Initial
Min Max
0 2 Model Number Model Number R 350 - -
2 1 Firmware Version Firmware Version R - - -
3 1 ID DYNAMIXEL ID RW 1 0 252
4 1 Baud Rate Communication Speed RW 3 0 3
5 1 Return Delay Time Response Delay Time RW 250 0 254
6 2 CW Angle Limit Clockwise Angle Limit RW 0 0 1023
8 2 CCW Angle Limit Counter-Clockwise Angle Limit RW 1023 0 1023
11 1 Control Mode Control Mode RW 2 1 2
12 1 Temperature Limit Maximum Internal Temperature Limit RW 65 0 150
13 1 Min Voltage Limit Minimum Input Voltage Limit RW 60 50 250
14 1 Max Voltage Limit Maximum Input Voltage Limit RW 90 50 250
15 2 Max Torque Maximun Torque RW 1023 0 1023
17 1 Status Return Level Select Types of Status Return RW 2 0 2
18 1 Shutdown Shutdown Error Information RW 3 0 7

Control Table of RAM Area

Address Size
Data Name Description Access Initial
Min Max
24 1 Torque Enable Motor Torque On/Off RW 0 0 1
25 1 LED Status LED On/Off RW 0 0 7
27 1 D Gain Derivative Gain RW 0 0 254
28 1 I Gain Integral Gain RW 0 0 254
29 1 P Gain Proportional Gain RW 32 0 254
30 2 Goal Position Desired Position RW - 0 1023
32 2 Moving Speed Moving Speed(Moving Velocity) RW - 0 2047
35 2 Torque Limit Torque Limit RW - 0 1023
37 2 Present Position Present Position R - - -
39 2 Present Speed Present Speed R - - -
41 2 Present Load Present Load R - - -
45 1 Present Voltage Present Voltage R - - -
46 1 Present Temperature Present Temperature R - - -
47 1 Registered If Instruction is registered R 0 - -
49 1 Moving Movement Status R 0 - -
50 1 Hardware Error Status Hardware Error Status R 0 - -
51 2 Punch Minimum Current Threshold RW 32 0 1023

Control Table Description

Model Number (0)

This address stores model number of DYNAMIXEL.

Firmware Version (2)

This address stores firmware version of DYNAMIXEL.

ID (3)

The ID is a unique value in the network to identify each DYNAMIXEL with an Instruction Packet. 0~252 (0xFC) values can be used as an ID, and 254(0xFE) is occupied as a broadcast ID. The Broadcast ID(254, 0xFE) can send an Instruction Packet to all connected DYNAMIXEL simultaneously.

NOTE : Please avoid using an identical ID for multiple DYNAMIXEL. You may face communication failure or may not be able to detect DYNAMIXEL with an identical ID.

NOTE : If the Instruction Packet ID is set to the Broadcast ID(0xFE), Status Packets will not be returned for READ and WRITE Instructions. For more details, please refer to the Status Packet section for Protocol 1.0 or Protocol 2.0.

Baud Rate (4)

Baud Rate determines serial communication speed between a controller and DYNAMIXEL’s.

Value Baud Rate
0 9,600 bps
1 57,600 bps
2 115,200 bps
3 1 Mbps

NOTE : For the stable communication with higher baudrate, configure USB Latency value to the lower.
USB Latency Setting

Return Delay Time (5)

After the DYNAMIXEL receives an Instruction Packet, it delays transmitting the Status Packet for Return Delay Time(5). For instance, if the Return Delay Time(5) is set to ‘10’, the Status Packet will be returned after 20[μsec] when the Instruction Packet is received.

Unit Value Range Description
2[μsec] 0 ~ 254 Default value ‘250’(500[μsec]), Maximum 508[μsec]

CW/CCW Angle Limit(6, 8)

The angle limit allows the motion to be restrained.
The range and the unit of the value is the same as Goal Position(Address 30, 31).

Control Mode(11)

Value Mode
1 Wheel Mode
2 Joint Mode

Temperature Limit(12)

Unit Value Range
About 1°C 0 ~ 150

CAUTION : Do not set the temperature higher than the default value. When the temperature alarm shutdown occurs, wait 20 minutes to cool the temperature before re-use. Keep using the product when the temperature is high can cause severe damage.

Min/Max Voltage Limit(13, 14)

It is the operation range of voltage.

Unit Value Range Description
About 0.1V 50 ~ 250 5.0 ~ 25.0V

For example, if the value is 80, the voltage is 8V. If Present Voltage(45) is out of the range, Voltage Range Error Bit (Bit0) of Status Packet is returned as ‘1’ and Shutdown(18) is triggered.

Max Torque(15)

It is the torque value of maximum output. 0 to 1,023 (0x3FF) can be used, and the unit is about 0.1%.
For example, Data 1,023 (0x3FF) means that DYNAMIXEL will use 100% of the maximum torque it can produce while Data 512 (0x200) means that DYNAMIXEL will use 50% of the maximum torque.
When the power is turned on, Torque Limit(34) uses the value as the initial value.

Status Return Level(17)

The Status Return Level(68) decides how to return Status Packet when DYNAMIXEL receives an Instruction Packet.

Value Responding Instructions Description
0 PING Instruction Returns PING Instuction only
1 PING Instruction
READ Instruction
Returns PING and READ Instuctions only
2 All Instructions Returns all Instructions

NOTE : If the Instruction Packet ID is set to the Broadcast ID(0xFE), Status Packet will not be returned for READ and WRITE Instructions regardless of Status Return Level. For more details, please refer to the Status Packet section for Protocol 1.0 or Protocol 2.0.

1 Packet ID is the field that indicates an ID of the device that should receive the Instruction Packet and process it.


DYNAMIXEL can protect itself by detecting errors occur during the operation. The errors can be set are as the table below.

Bit Item Description
Bit 3~7 - -
Bit 2 ERROR_INPUT_VOLTAGE Voltage is out of operational voatage range
Bit 1 ERROR_OVER_HEATING Temperature is out of operational temperature range
Bit 0 ERROR_OVERLOAD Motor cannot output max load due to load being applied continouosly

It is possible to make duplicate set since the function of each bit is run by the logic of ‘OR’. That is, if 0x05 (binary 00000101) is set, both Input Voltage Error and Overload Error can be detected. If errors occur, in case of Alarm LED, the LED blinks; in case of Alarm Shutdown, the motor output becomes 0 % by making the value of Torque Limit(35) to 0.

Torque Enable(24)

Torque Enable(64) determines Torque ON/OFF. Writing ‘1’ to Toque Enable’s address will turn on the Torque and all Data in the EEPROM area will be locked.

Value Description
0(Default) Turn off the torque
1 Turn on the torque and lock EEPROM area


The combination of bit changes the output color of XL-320.

Enabled Bit Decimal Value Output Color
0 1 Red
1 2 Green
2 4 Blue
0 + 1 3 Yellow
1 + 2 6 Cyan
0 + 2 5 Purple
0 + 1 + 2 7 White

NOTE : The LED indicates present status of the device.

Status LED Representation
Booting Red LED flickers once
Factory Reset Red LED flickers 4 times
Alarm Red LED flickers
Boot Mode Red LED On

PID Gains(27, 28, 29)

MX series will use the PID controller as a main control method.

The relationship between Compliance Slop and PID

Slope P Gain
8 128
16 64
32 32
64 16
128 8

The less the P gain, The larger the back lash, and the weaker the amount of output near goal position.
At some extent, it is like a combined concept of margine and slope.
It does not exactly match the previous concept of compliance. So it is obvious if you see the difference in terms of motion.
Explanation for PID required.
For the brief explanation about general PID, please refer to the website(link) below.
FYI, PID control theory is not only limited to the control of motor(actuator) but is a generic theory that can be applied to all kinds of control.

Goal Position(30)

It is a position value of destination. 0 ~ 1,023 (0x3FF) is available. The unit is 0.29°. If Goal Position is out of the range, Angle Limit Error Bit (Bit 1) of Status Packet is returned as ‘1’ and Alarm is triggered as set in Alarm LED/Shutdown.

The picture above is the front view of DYNAMIXEL

NOTE : If it is set to Wheel Mode, Goal Position value is not used.

Moving Speed(32)

Torque Limit(35)

It is the value of the maximum torque limit. 0 ~ 1,023(0x3FF) is available, and the unit is about 0.1%. For example, if the value is 512, it is about 50%; that means only 50% of the maximum torque will be used. If the power is turned on, the value of Max Torque(14) is used as the initial value.

NOTE : If the function of Alarm Shutdown is triggered, the motor loses its torque because the value becomes 0. Once error conditions are resolved and this value is changed to the value other than 0, the motor can be operated again.

Present Position(37)

It is the present position value of DYNAMIXEL. The range of the value is 0 ~ 1,023 (0x3FF), and the unit is 0.29 [°].

The picture above is the front view of DYNAMIXEL.

CAUTION : If it is set to Wheel Mode, the value cannot be used to measure the moving distance and the rotation frequency.

Present Speed(39)

Is the present moving speed. 0~2,047 (0x000 ~ 0x7FF) can be used. If a value is in the rage of 0~1,023 then the motor rotates to the CCW direction. If a value is in the rage of 1,024~2,047 then the motor rotates to the CW direction. The 10th bit becomes the direction bit to control the direction; 0 and 1,024 are equal. The unit of this value varies depending on operation mode.

Present Load(41)

It means currently applied load. The range of the value is 0~2047, and the unit is about 0.1%. If the value is 0~1,023, it means the load works to the CCW direction. If the value is 1,024~2,047, it means the load works to the CW direction. That is, the 10th bit becomes the direction bit to control the direction, and 1,024 is equal to 0. For example, the value is 512, it means the load is detected in the direction of CCW about 50% of the maximum torque.

Bit 15 ~ 11 10 9 ~ 0
Value 0 Load Direction Data (Load Ratio)

NOTE : CCW Load : Load Direction = 0, CW Load : Load Direction = 1

NOTE : Present load is an inferred value based on the internal output value; not a measured value using torque sensor, etc. Therefore, it may be inaccurate for measuring weight or torque. It is recommended to use it for predicting the direction and size of the force being applied to the joint.

Present Voltage(45)

It is the size of the present voltage supplied. This value is 10 times larger than the actual voltage. For example, when 10V is supplied, the data value is 100 (0x64) If Present Voltage(45) value is out of range, Voltage Range Error Bit (Bit0) of Status Packet is returned as ‘1’ and Shutdown(18) is triggered by setting 1 to the Bit 0 of the address 18.

Present Temperature(46)

It is the internal temperature of DYNAMIXEL in Celsius.
Data value is identical to the actual temperature in Celsius. For example, if the data value is 85 (0x55), the current internal temperature is 85°C.

Registered Instruction(47)

Value Description
0 REG_WRITE instruction is not received
1 REG_WRITE instruction is received

NOTE : If ACTION instruction is executed, the value will be changed to 0.


Value Description
0 Goal position command execution is completed
1 Goal position command execution is in progress

Hardware Error Status(50)

Present hardware error staus. Alarm shutdown error value.


Minimum current to drive motor. This value ranges from 0x20 to 0x3FF.


Compatibility Guide
Harness Compatibility

Connector Information

Item TTL
Pinout 1 GND
MOLEX 51065-0300
PCB Header
MOLEX 53253-0370
Crimp Terminal MOLEX 50212-8000
Wire Gauge for DYNAMIXEL 24 AWG

Communication Circuit

To control the DYNAMIXEL actuators, the main controller needs to convert its UART signals to the half duplex type. The recommended circuit diagram for this is shown below.

TTL Communication


Please also checkout ROBOTIS Download Center for software applications, 3D/2D CAD, and other useful resources!