CAUTION : XL-320 is a different product from the OLLO Geared and Servo Motor.
|Baud Rate||7343 [bps] ~ 1 [Mbps]|
|Operating Modes||Joint Mode (0 ~ 300 [°])
Wheel Mode (Endless Turn)
|Dimensions (W x H x D)||24 x 36 x 27 [mm]|
|Gear Ratio||238 : 1|
|Stall Torque||0.39 [N.m] (at 7.4 [V], 1.1 [A])|
|No Load Speed||114 [rev/min] (at 7.4 [V], 0.18 [A])|
|Operating Temperature||-5 ~ +65 [°C]|
|Input Voltage||6 ~ 8.4 [V] (Recommended : 7.4 [V])|
|Command Signal||Digital Packet|
|Protocol Type||TTL Half Duplex Asynchronous Serial Communication with 8bit, 1stop, No Parity|
|Physical Connection||TTL Multidrop Bus|
|ID||253 ID (0 ~ 252)|
|Feedback||Position, Temperature, Load, Input Voltage, etc|
|Case Material||Engineering Plastic|
|Gear 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.
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.
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 DYNAMIXEL Protocol 2.0 for more details about Instruction Packets.
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’(Torque 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.
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.
|0||2||Model Number||Model Number||R||350||-||-|
|2||1||Firmware Version||Firmware Version||R||-||-||-|
|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|
|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 Instruction||If Instruction is registered||R||0||-||-|
|50||1||Hardware Error Status||Hardware Error Status||R||0||-||-|
|51||2||Punch||Minimum Current Threshold||RW||32||0||1023|
This address stores model number of DYNAMIXEL.
This address stores firmware version of DYNAMIXEL.
The ID is a unique value in the network to identify each DYNAMIXEL with an Instruction Packet. 0~253 (0xFD) 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 or WRITE Instructions regardless of the set value of Stuatus Return Level (17). For more details, please refer to the
Status Packet section for DYNAMIXEL Protocol 2.0
Baud Rate determines serial communication speed between a controller and DYNAMIXEL’s.
NOTE : For the stable communication with higher baudrate, configure USB Latency value to the lower.
USB Latency Setting
If the DYNAMIXEL receives an Instruction Packet, it will return the Status Packet after the time of the set Return Delay Time(5).
Note that the range of values is 0 to 254 (0XFE) and its unit is 2 [μsec]. 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.
|2[μsec]||0 ~ 254||Default value ‘250’(500[μsec])
Maximum value: ‘508’[μsec]
The angle limit allows the motion to be restrained.
The range and the unit of the value is the same as Goal Position(30).
- CW Angle Limit: the minimum value of Goal Position(30)
- CCW Angle Limit: the maximum value of Goal Position(30)
The operating temperature’s upper bound of the DYNAMIXEL.
For instance, if the value of the Temperature Limit(11) is set as ‘80’, it means 80 °C If the operating DYNAMIXEL’s internal temperature is over the Temperature Limit(11), the Status Packet transmits Overheating Error Bit (Bit2) via the ERROR field. Providing that Overheating flag is set in the Shutdown(18), the Alarm LED will start blinking and the motor’s output will be 0 [%].
|About 1°C||0 ~ 100|
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.
It is the operation range of voltage.
|About 0.1V||50 ~ 250||5.0 ~ 25.0V|
The range of value is from 50 to 160 and the per unit value is 0.1 [V]. For instance, if the value of the Max Voltage Limit(14) is set as ‘80’, it means 8 V.
The Min Voltage Limit(13) and Max Voltage Limit(14) determine the maximum and minimum operating voltages.
When the Present Voltage(45) indicating the present input voltage to the device exceeds the range of Max Voltage Limit(14) and Min Voltage Limit(13), the Input Voltage error Bit(0x10) in the Hardware Error Status(50) will be set, and the Status Packet will send Alert Bit(0x80) via the Error field.
If Input Voltage Error Bit(0x10) in the Shutdown(18) is set, Torque Enable(24) will be set to ‘0’(Torque OFF).
For more details, please refer to the Shutdown(18) section.
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(35) is reset to the value of Max Torque(15).
The Stuatus Return Level (17) decides how to return Status Packet when DYNAMIXEL receives an Instruction Packet.
|0||PING Instruction||Returns the Status Packet for PING Instruction only|
|Returns the Status Packet for PING and READ Instruction|
|2||All Instructions||Returns the Status Packet for all Instructions|
NOTE : If the Instruction Packet ID is set to the Broadcast ID(0xFE), Status Packet will not be returned for READ or WRITE Instructions regardless of Stuatus Return Level (17). For more details, please refer to the
Status Packet section for DYNAMIXEL Protocol 2.0.
DYNAMIXEL can protect itself by detecting errors occur during the operation. The errors can be set are as the table below.
|Bit 2||Input Voltage Error||Voltage is out of operational voatage range|
|Bit 1||OverHeating Error||Temperature is out of operational temperature range|
|Bit 0||Overload Error||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(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.
|1||Torque On and lock EEPROM area|
The combination of bit changes the output color of XL-320.
|Enabled Bit||Decimal Value||Output Color|
|Bit 0 (001)||1||Red|
|Bit 1 (010)||2||Green|
|Bit 2 (100)||4||Blue|
|Bit 0, Bit 1 (011)||3||Yellow|
|Bit 1, Bit 2 (110)||6||Cyan|
|Bit 0, Bit 2 (101)||5||Purple|
|Bit 0, Bit 1, Bit 2 (111)||7||White|
NOTE : The LED indicates present status of the device.
|Booting||Red LED flickers once|
|Factory Reset||Red LED flickers 4 times|
|Alarm||Red LED flickers|
|Boot Mode||Red LED On|
The following is the block-diagram for the PID controller.
P gain: value of proportional band.
I gain: value of integral action.
D Gain: value of derivative action. Gains values are in between 0 ~ 254.
- Kp : P Gain / 8
- Ki : I Gain * 1,000 / 2,048
- Kd : D Gain * 4 / 1,000
The relationship between Compliance Slop and PID
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.
NOTE: 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. For more details about the PID controller, see PID Controller.
Set the DYNAMIXEL’s goal position through the Goal Position(30).
The available position range is 0 to 1,023 (0x3FF) and the per unit value is 0.29 °
If the Goal Position(30) is set over the CW/CCW Angle Limit(6, 8), the Status Packet transmits Angle Limit Error Bit (0x01) via its ERROR field. In the case, providing that Angle Limit Error Bit(0x01) in the Shutdown(18) is set, the Alarm LED will start blinking and the motor’s output will be 0 [%].
The picture above is the front view of DYNAMIXEL
NOTE : If it is set to Wheel Mode, Goal Position value is not used.
Join Mode, Multi-Turn mode It is a moving speed to Goal Position. 0~1,023 (0x3FF) can be used, and the unit is about 0.111rpm. If it is set to 0, it means the maximum rpm of the motor is used without controlling the speed. If it is 1,023, it is about 114rpm. For example, if it is set to 300, it is about 33.3 rpm. However, the rpm will not exceed the No Load Speed.
Wheel Mode It is a moving speed to Goal direction. 0~2,047 (0x7FF) can be used, and the unit is about 0.1%. If a value in the range of 0~1,023 is used, it is stopped by setting to 0 while rotating to CCW direction. If a value in the range of 1,024~2,047 is used, it is stopped by setting to 1,024 while rotating to CW direction. That is, the 10th bit becomes the direction bit to control the direction. For example, if it is set to 512, it means the output is controlled by 50% of the maximum output.
NOTE : Wheel mode allows to check max rpm. Any values higher than max rpm will not take effect.
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.
When the power is turned on, Torque Limit(35) is reset to the value of [Max Torque(15)].
NOTE : If the function of Shutdown(18) is triggered, the motor loses its torque because Torque Limit(35) becomes 0. Once error conditions are resolved and Torque Limit(35) is changed to the value other than 0, the motor can be operated again.
It is the present position value of DYNAMIXEL. The range of Present Position(37) 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 Present Position(37) cannot be used to measure the moving distance and the rotation frequency.
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.
Joint Mode The unit is about 0.111rpm. For example, if it is set to 300, it means that the motor is moving to the CCW direction at a rate of about 33.3rpm.
Wheel Mode The unit is about 0.1%. For example, if it is set to 512, it means that the torque is controlled by 50% of the maximum torque to the CCW direction.
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.
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)
For more details, see Min/Max Voltage Limit(13, 14).
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.
For more details, see Temperature Limit(12).
|0||No instruction registered by REG_WRITE.|
|1||Instruction registered by REG_WRITE exsists.|
NOTE : If ACTION instruction is executed, the Registered Instruction (47) will be changed to 0.
|0||Goal position command execution is completed|
|1||Goal position command execution is in progress|
Present hardware error staus. Alarm shutdown error value.
Minimum current to drive motor. This value ranges from 0x20 to 0x3FF.
|Crimp Terminal||MOLEX 50212-8000|
|Wire Gauge for DYNAMIXEL||24 AWG|
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.
NOTE: Above circuit is designed for 5V or 5V tolerant MCU. Otherwise, use a Level Shifter to match the voltage of MCU.
Please also checkout ROBOTIS Download Center for software applications, 3D/2D CAD, and other useful resources!