Edit on GitHub

MX-106(Protocol 2.0)

Specifications

Item Specifications
MCU ST CORTEX-M3 ( STM32F103C8 @ 72MHZ,32BIT)
Position Sensor Contactless absolute encoder (12BIT,360 DEGREE)
Maker : ams (www.ams.com), Part No : AS5045
Motor Maxon
Baud Rate 8000 bps ~ 4.5 Mbps
Control Algorithm PID Control
Resolution 0.088°
Operation Modes Current Control Mode
Velocity Control Mode
Position Control Mode(0° ~ 360°)
Extended Position Ctrl Mode(Multi-turn)
Current-based Position Ctrl Mode
PWM Control Mode
Weight 153g
Dimensions (W x H x D) 40.2mm x 65.1mm x 46mm
Gear Ratio 225 : 1
Stall Torque 8.0Nm @ 11.1V, 4.8A
8.4Nm @ 12V, 5.2A
10.0Nm @ 14.8V, 6.3A
No Load Speed 41rpm @ 11.1V
45rpm @ 12V
55rpm @ 14.8V
Operating Temperature -5°C ~ +80°C
Input Voltage 10 ~ 14.8V (Recommended : 12V)
Standby Current 100mA
Command Signal Digital Packet
Protocol Type MX-106T: Half Duplex Asynchronous Serial Communication
MX-106R: RS485 Asynchronous Serial Communication
(8bit,1stop, No Parity)
Physical Connection MX-106T: TTL Level Multidrop BUS
MX-106R: RS485 Multidrop BUS
ID 0 ~ 252
Feedback Position, Temperature, Load, Input Voltage, etc
Material Full Metal Gear
Metal(Front), Engineering Plastic(Middle, Back)

Performance Graph

Stall torque Peak stall torque read from transient state

Performance Graph(N-T Curve) A graph shows torque measured in stable condition while increasing load. Normally, stall torque is bigger than maximum torque on performance graph.

Caution When connecting to power supply:

Control Table

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

Control Table, Data, Address

The Control Table is a structure that consists of multiple Data fields to store status of the DYNAMIXEL or to control the DYNAMIXEL. Users can check current status of the DYNAMIXEL by reading a specific Data from the Control Table with Read Instruction Packets. WRITE Instruction Packets enable users to control the DYNAMIXEL 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.

Area (EEPROM, RAM)

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 DYNAMIXEL is powered off(Non-Volatile). Data in the EEPROM Area can only be written to if Torque Enable(64) is cleared to ‘0’(Off).

Size

The Size of data varies from 1 to 4 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.

Access

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 DYNAMIXEL.

Initial Value

Each data in the Control Table is restored to initial values when the DYNAMIXEL is turned on. Default values in the EEPROM area are initial values of the DYNAMIXEL (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 DYNAMIXEL is turned on. Initial Values in the RAM area are restored when the DYNAMIXEL is turned on.

Control Table of EEPROM Area

Address Size(Byte) Data Name Description Access Initial Value
0 2 Model Number Model Number R 321
2 4 Model Information Model Information R -
6 1 Firmware Version Firmware Version R -
7 1 ID DYNAMIXEL ID RW 1
8 1 Baud Rate Communication Baud Rate RW 1
9 1 Return Delay Time Response Delay Time RW 250
10 1 Drive Mode Drive Mode RW 0
11 1 Operating Mode Operating Mode RW 3
12 1 Secondary(Shadow) ID Secondary ID RW 255
13 1 Protocol Version Protocol Version RW 2
20 4 Homing Offset Home Position Offset RW 0
24 4 Moving Threshold Velocity Threshold for Movement Detection RW 10
31 1 Temperature Limit Maximum Internal Temperature Limit RW 80
32 2 Max Voltage Limit Maximum Input Voltage Limit RW 160
34 2 Min Voltage Limit Minimum Input Voltage Limit RW 95
36 2 PWM Limit Maximum PWM Limit RW 885
38 2 Current Limit Maximum Current Limit RW 2047
40 4 Acceleration Limit Maximum Acceleration Limit RW 32767
44 4 Velocity Limit Maximum Velocity Limit RW 360
48 4 Max Position Limit Maximum Position Limit RW 4095
52 4 Min Position Limit Minimum Position Limit RW 0
63 1 Shutdown Shutdown Error Information RW 52

Control Table of RAM Area

Address Size(Byte) Data Name Description Access Initial Value
64 1 Torque Enable Motor Torque On/Off RW 0
65 1 LED Status LED On/Off RW 0
68 1 Status Return Level Select Types of Status Return RW 2
69 1 Registered Instruction REG_WRITE Instruction Flag R 0
70 1 Hardware Error Status Hardware Error Status R 0
76 2 Velocity I Gain I Gain of Velocity RW 1920
78 2 Velocity P Gain P Gain of Velocity RW 100
80 2 Position D Gain D Gain of Position RW 0
82 2 Position I Gain I Gain of Position RW 0
84 2 Position P Gain P Gain of Position RW 850
88 2 Feedforward 2nd Gain 2nd Gain of Feed-Forward RW 0
90 2 Feedforward 1st Gain 1st Gain of Feed-Forward RW 0
98 1 BUS Watchdog Dynamixel BUS Watchdog RW 0
100 2 Goal PWM Target PWM Value RW -
102 2 Goal Current Target Current Value RW -
104 4 Goal Velocity Target Velocity Value RW -
108 4 Profile Acceleration Acceleration Value of Profile RW 0
112 4 Profile Velocity Velocity Value of Profile RW 0
116 4 Goal Position Target Position RW -
120 2 Realtime Tick Count Time in Millisecond R -
122 1 Moving Movement Flag R 0
123 1 Moving Status Detailed Information of Movement Status R 0
124 2 Present PWM Present PWM Value R -
126 2 Present Current Present Current Value R -
128 4 Present Velocity Present Velocity Value R -
132 4 Present Position Present Position Value R -
136 4 Velocity Trajectory Target Velocity Trajectory from Profile R -
140 4 Position Trajectory Target Position Trajectory from Profile R -
144 2 Present Input Voltage Present Input Voltage R -
146 1 [Present Temperature] Present Internal Temperature R -
168 2 Indirect Address 1 Indirect Address 1 RW 224
170 2 Indirect Address 2 Indirect Address 2 RW 225
172 2 Indirect Address 3 Indirect Address 3 RW 226
218 2 Indirect Address 26 Indirect Address 26 RW 249
220 2 Indirect Address 27 Indirect Address 27 RW 250
222 2 Indirect Address 28 Indirect Address 28 RW 251
224 1 Indirect Data 1 Indirect Data 1 RW 0
225 1 Indirect Data 2 Indirect Data 2 RW 0
226 1 Indirect Data 3 Indirect Data 3 RW 0
249 1 Indirect Data 26 Indirect Data 26 RW 0
250 1 Indirect Data 27 Indirect Data 27 RW 0
251 1 Indirect Data 28 Indirect Data 28 RW 0
578 2 Indirect Address 29 Indirect Address 29 RW 634
580 2 Indirect Address 30 Indirect Address 30 RW 635
582 2 Indirect Address 31 Indirect Address 31 RW 636
628 2 Indirect Address 54 Indirect Address 54 RW 659
630 2 Indirect Address 55 Indirect Address 55 RW 660
632 2 Indirect Address 56 Indirect Address 56 RW 661
634 1 Indirect Data 29 Indirect Data 29 RW 0
635 1 Indirect Data 30 Indirect Data 30 RW 0
636 1 Indirect Data 31 Indirect Data 31 RW 0
659 1 Indirect Data 54 Indirect Data 54 RW 0
660 1 Indirect Data 55 Indirect Data 55 RW 0
661 1 Indirect Data 56 Indirect Data 56 RW 0

Caution Protocol 1.0 does not support addresses greater than 256. Therefore, Indirect Address 29 ~ 56 and Indirect Data 29 ~ 56 can only be accessed with Protocol 2.0.

Control Table Description

Caution Data in the EEPROM Area can only be written when the value of Torque Enable(64) is cleared to ‘0’.

Model Number(0)

This address stores model number of the DYNAMIXEL.

Firmware Version(6)

This address stores firmware version of the DYNAMIXEL.

ID(7)

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 DYNAMIXELs simultaneously.

Note Please avoid using an identical ID for multiple DYNAMIXELs. You may face communication failure or may not be able to detect Dynamixels with an identical ID.

Baud Rate(4)

Baud Rate determines serial communication speed between a controller and DYNAMIXELs.

Value Baud Rate Margin of Error
7 4.5M 0.000%
6 4M 0.000%
5 3M 0.000%
4 2M 0.000%
3 1M 0.000%
2 115,200 0.000%
1(Default) 57,600 0.000%
0 9,600 0.000%

Note Less than 3% of the baud rate error margin will not affect to UART communication.

Return Delay Time(5)

After the DYNAMIXEL receives an Instruction Packet, it delays transmitting the Status Packet for Return Delay Time (9). For instance, if the Return Delay Time(9) 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]

Drive Mode(10)

Drive Mode is availabe from the firmware version 38.

Bit Item Description
Bit 2 ~ 7 N/A Unused, always ‘0’
Bit 1 Master/Slave Setting
(Dual Joint)
Master Mode(0): Operate as a Master Dynamixel
Slave Mode(1): Operate as a Slave Dynamixel
Bit 0 Direction of Rotation Normal Mode(0): CCW(Positive), CW(Negative)
Reverse Mode(1): CCW(Negative), CW(Positive)

Note Setting Reverse mode(‘1’) for Direction of Rotation, DYNAMIXEL will switch rotating direction. Therefore the direction of Position, Velocity, Current, PWM will be affected. This feature can be very useful when configuring symmetrical joint system or wheel system.

Master/Slave configuration (Dual joint) is a method to simultaneously control two Dynamixels like one Dynamixel. Master Dynamixel and Slave Dynamixel must be connected with a sync cable. Slave Dynamixel is directly controlled by the Master Dynamixel’s PWM signal transmitted through the sync cable. Therefore, the Slave Dynamixel’s Goal Position, Goal Velocity, Goal Current and Goal PWM are ignored.

Sync Cable Description
Normal Mode Sync Cable Slave Dynamixel is controlled by the Master Dynamixel’s PWM signal. Slave Dynamixel rotates to the same direction of the Master Dynamixel.
Reverse Mode Sync Cable Slave Dynamixel is controlled by the inverted PWM signal of the Master Dynamixel. Slave Dynamixel rotates to the opposite direction of the Master Dynamixel.

Note In a dual master-slave configuration position information from the slave is ignored and the position of the dual configuration is based on the master in PWM control. When master and slave are not physically connected there could be a slight difference on the driven load. Use the frame shown in the below image to achieve dual configuration.

Operating Mode(11)

Value Operating Mode Description
0 Current Control Mode DYNAMIXEL only controls current(torque) regardless of speed and position. This mode is ideal for a gripper or a system that only uses current(torque) control or a system that has additional velocity/position controllers.
1 Velocity Control Mode This mode controls velocity. This mode is identical to the Wheel Mode(endless) from existing DYNAMIXELs. This mode is ideal for wheel-type robots.
3(Default) Position Control Mode This mode controls position. This mode is identical to the Joint Mode from existing DYNAMIXELs. Operating position range is limited by Max Position Limit(48) and Min Position Limit(52). This mode is ideal for articulated robots that each joint rotates less than 360 degrees.
4 Extended Position Control Mode(Multi-turn) This mode controls position. This mode is identical to the Multi-Turn Mode from existing DYNAMIXELs. 512 turns are supported(-256[rev] ~ 256[rev]). This mode is ideal for multi-turn wrists or conveyer systems or a system that requires an additional reduction gear.
5 Current-based Position Control Mode This mode controls both position and current(torque). Up to 512 turns are supported(-256[rev] ~ 256[rev]). This mode is ideal for a system that requires both position and current control such as articulated robots or grippers.
16 PWM Control Mode (Voltage Control Mode) This mode directly controls PWM output. (Voltage Control Mode)

Note Switching Operating Mode will reset gains(PID, Feedfoward) properly to the selected Operating Mode. The profile generator and limits will also be reset.

  1. Profile Velocity(112), Profile Acceleration(108) : Reset to ‘0’
  2. Goal PWM(100), Goal Current(102) : Reset to PWM Limit(36), Current Limit(38) respectively
  3. Current-based Position Control Mode : Reset to Position Gain(PID) and PWM Limit(36) values.

Changed Position Gain(PID) and PWM Limit(36) values can be read from the Control Table.

Note PWM is the abbreviation for Pulse Width Modulation that modulates PWM Duty to control motors. The PWM Control Mode changes pulse width to control average supply voltage to the motor and this technique is widely used in the motor control field. Therefore, PWM Control Mode uses Goal PWM(100) value to control supply voltage for DYNAMIXEL. PWM Control Mode is similar to the Wheel Mode of DYNAMIXEL AX and RX series.

Secondary(Shadow) ID(12)

Set the Dynamixel’s Secondary ID. Secondary ID(12) is a value to identify each Dynamixel, just like the ID(7). However, unlike ID(7), Secondary ID(12) is not a unique value. Therefore, Dynamixels with the same Secondary ID value form a group. The differences between Secondary ID(12) and ID(7) are as follows :

  1. Secondary ID(12) is not a unique value. i.e., a lot of Dynamixels may have the same Secondary ID value.
  2. ID(7) has a higher priority than Secondary ID(12). i.e., if Secondary ID(12) and ID(7) are the same, ID(7) will be applied first.
  3. The EEPROM area of the Control Table cannot be modified with Secondary ID(12). Only the RAM area can be modified.
  4. If Instruction Packet ID is the same as Secondary ID(12), the Status Packet will not be returned.
  5. If the value of Secondary ID(12) is 253 or higher, the Secondary ID function is deactivated.
Values Description
0 ~ 252 Activate Secondary ID function
253 ~ 255 Deactivate Secondary ID function, Default value ‘255’

The following are examples of operation when there are five Dynamixels with ID (7) set from 1 to 5.

  1. Set all five Dynamixels’ Secondary ID(12) to ‘5’.
  2. Send Write Instruction Packet(ID = 1, LED(65) = 1).
  3. Turn on LED of Dynamixel with ID ‘1’ and return the Status Packet.
  4. Send Write Instruction Packet(ID = 5, LED(65) = 1).
  5. Turn on LED on five Dynamixels. However, Status Packet of Dynamixel with ID ‘5’ will be returned.
  6. Set the Secondary ID(12) of all five Dynamixels to ‘100’.
  7. Send Write Instruction Packet(ID = 100, LED(65) = 0).
  8. Turn off LED on five Dynamixels. However, as there is no Dynamixel with ID ‘100’, Status Packet is not returned.

Protocol Version(13)

Users can select Dynamixel protocol version (1.0 and 2.0). It is recommended to use an identical protocol version for multiple Dynamixels.

Value Protocol Version Compatible Dynamixels
1 1.0 AX Series, DX Series, RX Series, EX Series, MX Series with Firmware below v39
2(default) 2.0 MX-28/64/106 with Firmware v39 or above, X Series, Pro Series

Note The protocol 2.0 is greatly enhanced from the protocol 1.0. Accessing some of the Control Table area might be denied if protocol 1.0 is selected. This manual complies with protocol 2.0. Please refer to the Protocol section of e-Manual for more details about the protocol.

Homing Offset(20)

Users can adjust the Home position by setting Home Offset(20). The Homing Offset value is added to the Present Position(132). Present Position(132) = Actual Position + Homing Offset(20).

Unit Value Range Description
about 0.088° -1,044,479 ~ 1,044,479
(-255 ~ 255[rev])
4,096 resolution

Note In case of the Position Control Mode(Joint Mode) that rotates less than 360 degrees, any invalid Homing Offset(20) values will be ignored(valid range : -1,024 ~ 1,024).

Moving Threshold(24)

This value helps to determine whether the Dynamixel is in motion or not. When the absolute value of Present Velocity(128) is greater than the Moving Threshold(24), Moving(122) is set to ‘1’, otherwise it is cleared to ‘0’.

  Values Description
Unit about 0.229 rpm All velocity related Data uses the same unit
Range 0 ~ 1,023 -

Maximum Temperature Limit(31)

This value limits operating temperature. When the Present Temperature(146) that indicates internal temperature of Dynamixel is greater than the Temperature Limit(31), the Over Heating Error Bit(0x04) and Hardware Error Bit(0x80) in the Hardware Error Status(70) will be set. If Overheating Error Bit(0x04) is configured in the Shutdown(63), Torque Enable(64) is cleared to ‘0’ and Torque will be disabled. For more details, please refer to the Shutdown(63) section.

Unit Value Range Description
About 1° 0 ~ 100 0 ~ 100°

Caution Do not set the temperature lower/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(32, 34)

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(42) is out of the range, Voltage Range Error Bit (Bit0) of Status Packet is returned as ‘1’ and Alarm is triggered as set in the addresses 17 and 18.

PWM Limit(36)

This value indicates maximum PWM output. Goal PWM(100) can’t be configured with any values exceeding PWM Limit(36). PWM Limit(36) is commonly used in all operating mode as an output limit, therefore decreasing PWM output will result in decreasing torque and velocity. For more details, please refer to the Gain section of each operating modes.

Values Description
0(0%) ~ 885(100%) 885 = 100[%] output

Current Limit (38)

This value indicates maximum current(torque) output limit. Goal Current(102) can’t be configured with any values exceeding Current Limit(38). The Current Limit(38) is used in Torque Control Mode and Current-based Position Control Mode, therefore decreasing Current Limit(38) will result in decreasing torque of DYNAMIXEL. For more details, please refer to the Position PID Gain(80 ~ 84).

Unit Value Range
about 3.36[mA] 0 ~ 2,047

Note Current Limit(38) could be differ by each DYNAMIXEL so please check the Control Table.

Acceleration Limit(40)

This value indicates maximum Profile Acceleration(108). Profile Acceleration(108) can’t be configured with any values exceeding Acceleration Limit(40). Profile Acceleration(108) is used in all operating mode except PWM Control Mode in order to generate a target trajectory. For more details, please refer to the Profile Velocity(112).

Unit Value Range
214.577 Rev/min2 0 ~ 32,767

Note Bit information of the Error field in the Status Packet is different from protocol 1.0 and protocol 2.0. This manual complies with protocol 2.0. Please refer to the Protocol section of e-Manual for more details about the protocol.

Velocity Limit(44)

This value indicates maximum velocity of Goal Velocity(104) and Profile Velocity(112). For more details, please refer to the Profile Velocity(112).

Unit Value Range
0.229rpm 0 ~ 1,023

Min/Max Position Limit(48, 52)

These values limit maximum and minimum target positions for Position Control Mode(Joint Mode) within the range of 1 rotation(0 ~ 4,095). Therefore, Goal Position(116) should be configured within the position limit range. These values are not used in Extended Position Control Mode and Current-based Position Control Mode.

Unit Value Range
0.088° 0 ~ 4,095(1 rotation)

Note Max Position Limit(48) and Min Position Limit(52) are only used in Position Control Mode with a single turn.

Shutdown(63)

The Dynamixel can protect itself by detecting dangerous situations that could occur during the operation.
Each Bit is inclusively processed with the ‘OR’ logic, therefore, multiple options can be generated.
For instance, when ‘0x05’ (binary : 00000101) is defined as Shutdown(63), Dynamixel can detect both Input Voltage Error(binary : 00000001) and Overheating Error(binary : 00000100).
If those errors are detected, Torque Enable(64) is cleared to ‘0’ and the motor output becomes 0[%].
REBOOT is the only method to reset Torque Enable(64) to ‘1’(Torque ON) after the shutdown.
The followings are detectable situations.

Bit Item Description
Bit 7 - Unused, Always ‘0’
Bit 6 - Unused, Always ‘0’
Bit 5 Overload Error(default) Detect persistent load that exceeds maximum output
Bit 4 Electrical Shock Error(default) Detect electric shock on the circuit or insufficient power to operate the motor
Bit 3 Motor Encoder Error Detect malfunction of the motor encoder
Bit 2 OverHeating Error(default) Detect internal temperature exceeds the configured operating temperature
Bit 1 - Unused, Always ‘0’
Bit 0 Input Voltage Error Detect input voltage exceeds the configured operating voltage

Note If Shutdown occurs, use below method to reboot Dynamixels.

  1. H/W REBOOT : Turn off the power and turn on again
  2. S/W REBOOT : Transmit REBOOT Instruction (For more details, please refer to the [Reboot] section of Protocol e-Manual.)

If Shutdown occurs, LED will flicker every second.(Firmware v41 or above)

Torque Enable(64)

Controls Torque ON/OFF. Writing ‘1’ to this address will turn on the Torque and all Data in the EEPROM area will be protected.

Value Description
0(Default) Torque OFF(Free-run) and the motor does not generate torque
1 Torque ON and all Data in the EEPROM area will be locked

Note Present Position(132) can be reset when Operating Mode(11) and Torque Enable(64) are updated. For more details, please refer to the Homing Offset(20) and Present Position(132).

LED(65)

Turn on or turn off the LED on Dynamixel.

Bit Description
0(Default) Turn OFF the LED
1 Turn ON the LED

Status Return Level(68)

This value decides how to return Status Packet when Dynamixel receives an Instruction Packet.

Value Responding Instructions Description
0 PING Instruction Status Packet will not be returned for all Instructions
1 PING Instruction
READ Instruction
Status Packet will be returned only for READ Instruction
2 All Instructions Status Packet will be returned for all Instructions

Note If the ID of Instruction Packet is set to Broad Cast 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.

Registered Instruction(69)

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.

Hardware Error Status(70)

This value indicates hardware error status. The Dynamixel can protect itself by detecting dangerous situations that could occur during the operation.
Each Bit is inclusively processed with the ‘OR’ logic, therefore, multiple options can be generated.
For instance, when ‘0x05’ (binary : 00000101) is defined as Shutdown(63), Dynamixel can detect both Input Voltage Error(binary : 00000001) and Overheating Error(binary : 00000100).
If those errors are detected, Torque Enable(64) is cleared to ‘0’ and the motor output becomes 0[%].
REBOOT is the only method to reset Torque Enable(64) to ‘1’(Torque ON) after the shutdown.
The followings are detectable situations.

Bit Item Description
Bit 7 - Unused, Always ‘0’
Bit 6 - Unused, Always ‘0’
Bit 5 Overload Error(default) Detect persistent load that exceeds maximum output
Bit 4 Electrical Shock Error(default) Detect electric shock on the circuit or insufficient power to operate the motor
Bit 3 Motor Encoder Error Detect malfunction of the motor encoder
Bit 2 OverHeating Error(default) Detect internal temperature exceeds the configured operating temperature
Bit 1 - Unused, Always ‘0’
Bit 0 Input Voltage Error Detect input voltage exceeds the configured operating voltage

Note If Shutdown occurs, use below method to reboot Dynamixels.

  1. H/W REBOOT : Turn off the power and turn on again
  2. S/W REBOOT : Transmit REBOOT Instruction (For more details, please refer to the [Reboot] section of Protocol e-Manual.)

If Shutdown occurs, LED will flicker every second.(Firmware v41 or above)

Velocity PI Gain(76, 78)

These values indicate Gains of Velocity Control Mode. Gains of DYNAMIXEL’s internal controller can be calculated from Gains of the Control Table as shown below. The constant in each equations include sampling time. Velocity P Gain of DYNAMIXEL’s internal controller is abbreviated to KVP and that of the Control Table is abbreviated to KVP(TBL).

  Controller Gain Conversion Equations Range Description
Velocity I Gain(76) KVI KVI = KVI(TBL) / 65,536 0 ~ 16,383 I Gain
Velocity P Gain(78) KVP KVP = KVP(TBL) / 128 0 ~ 16,383 P Gain

Below figure is a block diagram describing the velocity controller in Velocity Control Mode. When the instruction transmitted from the user is received by DYNAMIXEL, it takes following steps until driving the horn.

  1. An Instruction from the user is transmitted via DYNAMIXEL bus, then registered to Goal Velocity(104).
  2. Goal Velocity(104) is converted to target velocity trajectory by Profile Acceleration(108).
  3. The target velocity trajectory is stored at Velocity Trajectory(136).
  4. PI controller calculates PWM output for the motor based on the target velocity trajectory.
  5. Goal PWM(100) sets a limit on the calculated PWM output and decides the final PWM value.
  6. The final PWM value is applied to the motor through an Inverter, and the horn of DYNAMIXEL is driven.
  7. Results are stored at Present Position(132), Present Velocity(128), Present PWM(124) and Present Current(126).

Note Ka stands for Anti-windup Gain and ‘β’ is a conversion coefficient of position and velocity that cannot be modified by users. For more details about the PID controller, please refer to the PID Controller at wikipedia.

Position PID Gain(80, 82, 84), Feedforward 1st/2nd Gains(88, 90)

These Gains are used in Position Control Mode and Extended Position Control Mode. Gains of Dynamixel’s internal controller can be calculated from Gains of the Control Table as shown below. The constant in each equations include sampling time. Position P Gain of Dynamixel’s internal controller is abbreviated to KPP and that of the Control Table is abbreviated to KPP(TBL).

  Controller Gain Conversion Equations Range Description
Position D Gain(80) KPD KPD = KPD(TBL) / 16 0 ~ 16,383 D Gain
Position I Gain(82) KPI KPI = KPI(TBL) / 65,536 0 ~ 16,383 I Gain
Position P Gain(84) KPP KPP = KPP(TBL) / 128 0 ~ 16,383 P Gain
Feedforward 2nd Gain(88) KFF2nd KFF2nd(TBL) / 4 0 ~ 16,383 Feedforward Acceleration Gain
Feedforward 1st Gain(90) KFF1st KFF1st(TBL) / 4 0 ~ 16,383 Feedforward Velocity Gain

Below figure is a block diagram describing the position controller in Position Control Mode and Extended Position Control Mode. When the instruction from the user is received by Dynamixel, it takes following steps until driving the horn.

  1. An Instruction from the user is transmitted via Dynamixel bus, then registered to Goal Position(116).
  2. Goal Position(116) is converted to target position trajectory and target velocity trajectory by Profile Velocity(112) and Profile Acceleration(108).
  3. The target position trajectory and target velocity trajectory is stored at Position Trajectory(140) and Velocity Trajectory(136) respectively.
  4. Feedforward and PID controller calculate PWM output for the motor based on target trajectories.
  5. Goal PWM(100) sets a limit on the calculated PWM output and decides the final PWM value.
  6. The final PWM value is applied to the motor through an Inverter, and the horn of Dynamixel is driven.
  7. Results are stored at Present Position(132), Present Velocity(128), Present PWM(124) and Present Current(126).

Note In case of PWM Control Mode, both PID controller and Feedforward controller are deactivated while Goal PWM(100) value is directly controlling the motor through an Inverter. In this manner, users can directly control the supplying voltage to the motor.

Note Ka is an Anti-windup Gain that cannot be modified by users.

Below figure is a block diagram describing the current-based position controller in Current-based Position Control Mode. As Current-based Position Control Mode is quite similar to Position Control Mode, differences will be focused in the following steps. The differences are highlighted with a green marker in the block diagram as well.

  1. Feedforward and PID controller calculates target current based on target trajectory.
  2. Goal Current(102) decides the final target current by setting a limit on the calculated target current.
  3. Current controller calculates PWM output for the motor based on the final target current.
  4. Goal PWM(100) sets a limit on the calculated PWM output and decides the final PWM value.
  5. The final PWM value is applied to the motor through an Inverter, and the horn of DYNAMIXEL is driven.
  6. Results are stored at Present Position(132), Present Velocity(128), Present PWM(124) and Present Current(126).

Note Ka is an Anti-windup Gain that cannot be modified by users. For more details about the PID controller and Feedforward controller, please refer to the PID Controller and Feed Forward.

BUS Watchdog(98)

Bus Watchdog (98) is available from firmware v38. It is a safety device (Fail-safe) that stops the DYNAMIXEL if the communication between the controller and DYNAMIXEL communication (RS485, TTL) is disconnected due to an unspecified error. Communication is defined as all the Instruction Packet in the DYNAMIXEL Protocol.

  Values Description
Unit 20[ms] -
Range 0 Deactivate Bus Watchdog Function, Clear Bus Watchdog Error
Range 1 ~ 127 Activate Bus Watchdog
Range -1 Bus Watchdog Error Status

The Bus Watchdog function monitors the communication interval (time) between the controller and DYNAMIXEL when Torque Enable (64) is ‘1’. If the measured communication interval (time) is larger than Bus Watchdog (98), the DYNAMIXEL will stop. Bus Watchdog (98) will be changed to ‘-1’ (Bus Watchdog Error). If the Bus Watchdog Error screen appears, the Goal Value (Goal PWM(100), Goal Current(102), Goal Velocity(104), Goal Position(116)) will be changed to read-only-access. Therefore, when a new value is written to the Goal Value, a Range Error will be returned via the Status packet. If the value of Bus Watchdog (98) is changed to ‘0’, Bus Watchdog Error will be cleared.

Note For details of Range Error, please refer to the protocol of the e-Manual.

The following are examples of the operation of the Bus Watchdog function.

  1. After setting the operating mode (11) to speed control mode, change the Torque Enable (64) to ‘1’.
  2. If ‘50’ is written in the Goal Velocity (104), the DYNAMIXEL will rotate in CCW direction.
  3. Change the value of Bus Watchdog (98) to ‘100’ (2,000 [ms]). (Activate Bus Watchdog Function)
  4. If no instruction packet is received for 2,000 [ms], the DYNAMIXEL will stop. When it stops, the Profile Acceleration (108) and Profile Velocity (112) are applied as ‘0’.
  5. The value of Bus Watchdog (98) changes to ‘-1’ (Bus Watchdog Error). At this time, the access to the Goal Value will be changed to read-only.
  6. If ‘150’ is written to the Goal Velocity (104), Range Error will be returned via Status Packet.
  7. If the value of Bus Watchdog (98) is changed to ‘0’, Bus Watchdog Error will be cleared.
  8. If “150” is written in the Goal Velocity (104), the DYNAMIXEL will rotate in CCW direction.

Goal PWM(100)

In case of PWM Control Mode, both PID controller and Feedforward controller are deactivated while Goal PWM(100) value is directly controlling the motor through an Inverter. In other control modes, this value is used to limit PWM value. This value cannot exceed PWM Limit(36). Please refer to the Gain section in order to see how Goal PWM(100) affects to different control modes.

Range Description
-PWM Limit(36) ~ PWM Limit(36) Initial Value of PWM Limit(36) : ‘885’

Goal Current (102)

In case of Torque Control Mode, Goal Current(102) can be used to set a target current. This value sets a limit to current in Current-based Position Control mode. This value cannot exceed Current Limit(38).

Unit Value Range
about 3.36[mA] -Current Limit(38) ~ Current Limit(38)

Note Applying high current to the motor for long period of time might damage the motor.

Goal Velocity(104)

In case of Velocity Control Mode, Goal Velocity(104) can be used to set a target velocity. This value cannot exceed Velocity Limit(44). For now, Goal Velocity(104) is used for target velocity, but this value is not used to limit the velocity.

Unit Value Range
0.229 rpm -Velocity Limit(44) ~ Velocity Limit(44)

Note The maximum velocity and maximum torque of DYNAMIXEL is affected by supplying voltage. Therefore, if supplying voltage changes, so does the maximum velocity. This manual complies with recommended supply voltage(12[V]).

Note If Profile Acceleration(108) and Goal Velocity(104) are modified simultaneously, modified Profile Acceleration(108) will be used to process Goal Velocity(104).

Profile Acceleration(108)

The acceleration of Profile can be set with this value. Profile Acceleration(108) can be used in all control modes except Torque Control Mode. Profile Acceleration(108) cannot exceed Acceleration Limit(40). For more details, please refer to the Profile Velocity(112).

Unit Value Range Description
214.577 Rev/min2 0 ~ Acceleration Limit(40) ‘0’ stands for an infinite acceleration

Profile Velocity(112)

The Maximum velocity of Profile can be set with this value. Profile Velocity(112) can be used in all control modes except Torque Control Mode and Velocity Control Mode. Profile Velocity(112) cannot exceed Velocity Limit(44). Velocity Control Mode only uses Profile Acceleration(108) instead of Profile Velocity(112).

Unit Value Range Description
0.229 rpm 0 ~ Velocity Limit(44) ‘0’ stands for an infinite velocity

The Profile is an acceleration/deceleration control method to reduce vibration, noise and load of the motor by controlling dramatically changing velocity and acceleration. It is also called Velocity Profile as it controls acceleration and deceleration based on velocity. DYNAMIXEL provides 4 different types of Profile. The following explains 4 Profiles and how to select them. Profiles are usually selected by a combination of Profile Velocity(112) and Profile Acceleration(108). Triangular and Trapezoidal Profiles exceptionally consider total travel distance(ΔPos, the distance difference between target position and current position) as an additional factor. For convenience, Profile Velocity(112) is abbreviated to VPRFL and Profile Acceleration(108) is abbreviated to VPRFL. ‘X’ stands for “Don’t Care” case.

When given Goal Position(116), Dynamixel’s profile creates target velocity trajectory based on current velocity(initial velocity of the Profile). When Dynamixel receives updated target position from a new Goal Position(116) while it is moving toward the previous Goal Position(116), velocity smoothly varies for the new target velocity trajectory. Maintaining velocity continuity while updating target velocity trajectory is called Velocity Override. For a simple calculation, let’s assume that the initial velocity of the Profile is ‘0’. The following explains how Profile processes Goal Position(116) instruction in Position Control mode, Extended Position Control Mode, Current-based Position Control Mode.

  1. An Instruction from the user is transmitted via Dynamixel bus, then registered to Goal Position(116).
  2. Acceleration time(t1) is calculated from Profile Velocity(112) and Profile Acceleration(108).
  3. Types of Profile is decided based on Profile Velocity(112), Profile Acceleration(108) and total travel distance(ΔPos, the distance difference between target position and current position).
  4. Selected Profile type is stored at Moving Status(123).(Refer to the Moving Status(123))
  5. Dynamixel is driven by the calculated target trajectory from Profile.
  6. Target velocity trajectory and target position trajectory from Profile are stored at Velocity Trajectory(136) and Position Trajectory(140) respectively.
  7. VPRFL_TRI of ③ and Travel time(t3) to reach Goal Position(116) is calculated as below.
Condition Types of Profile
VPRFL(112) = 0 Profile not used
(Step Instruction)
(VPRFL(112) ≠ 0) & (APRF(108) = 0) Rectangular Profile
(VPRFL(112) ≠ 0) & (APRF(108) ≠ 0) & (VPRFL_TRI ≤ VPRFL(112)) Triangular Profile
(VPRFL(112) ≠ 0) & (APRF(108) ≠ 0) & (VPRFL_TRI > VPRFL(112)) Trapezoidal Profile

Note Dynamixel supports Jerk control in order to minimize dramatic change of acceleration. Therefore, actual travel time by the target trajectory of Profile could be longer than t3(t4 of above figure).

Note Velocity Control Mode only uses Profile Acceleration(108). Step and Trapezoidal Profiles are supported. Velocity Override and Jerk control are supported as well. Acceleration time(t1) can be calculated as below equation.
Goal Velocity(104) / Profile Acceleration(108) * t1 = 64

Goal Position(116)

Target position can be set with Goal Position(116). From the front view of Dynamixels, CCW is an increasing direction whereas CW is a decreasing direction. The way to reaching Goal Position(116) is differ by 4 Profiles provided by Dynamixels. Please refer to the Profile Velocity(112) for more details.

Mode Values Description
Position Control Mode Min Position Limit(52) ~ Max Position Limit(48) Initial Value : 0 ~ 4,095
Extended Position Control Mode -1,048,575 ~ 1,048,575 -256[rev] ~ 256[rev]
Current-based Position Control Mode -1,048,575 ~ 1,048,575 -256[rev] ~ 256[rev]
Degree Conversion Constant Description
0.088°/Value 1[rev] : 0 ~ 4,095

Note If Profile Acceleration(108), Profile Velocity(112) and Goal Position(116) are modified simultaneously, Goal Position(116) is processed based on updated Profile Acceleration(108) and Profile Velocity(112).

Realtime Tick(120)

This value indicates Dynamixel’s time.

Unit Value Range Description
1 ms 0 ~ 32,767 The value resets to ‘0’ when it exceeds 32,767

Moving(122)

This value indicates whether Dynamixel is in motion or not. If absolute value of Present Velocity(128) is greater than Moving Threshold(24), Moving(122) is set to ‘1’. Otherwise, it will be cleared to ‘0’. However, this value will always be set to ‘1’ regardless of Present Velocity(128) while Profile is in progress with Goal Position(116) instruction.

Value Description
0 Movement is not detected
1 Movement is detected, or Profile is in progress(Goal Position(116) instruction is being processed)

Moving Status(123)

This value provides additional information about the movement. Following Error Bit(0x08) and In-Position Bit(0x01) only work with Position Control Mode, Extended Position Control Mode, Current-based Position Control Mode.

    Details Description
Bit 7 0x80 - Unused
Bit 6 0x40 - Unused
Bit 5
~
Bit 4
0x30 Profile Type(0x30)
Profile Type(0x20)
Profile Type(0x10)
Profile Type(0x00)
Trapezoidal Velocity Profile
Triangular Velocity Profile
Rectangular Velocity Profile
Profile is not used
Bit 3 0x08 Following Error Dynamixel fails to reach target position trajectory
Bit 2 0x04 - Unused
Bit 1 0x02 Profile Ongoing Profile is in progress with Goal Position(116) instruction
Bit 0 0x01 In-Position Dynamixel is reached to target position

Present PWM(124)

This value indicates present PWM. For more details, please refer to the Goal PWM(100).

Present Load(126)

This value indicates current Current. For more details, please refer to the Goal Current(102).

Present Velocity(128)

This value indicates present Velocity. For more details, please refer to the Goal Velocity(104).

Present Position(132)

This value indicates present Position. For more details, please refer to the Goal Position(116).

Note Present Position(132) represents 4 byte continuous range(-2,147,483,648 ~ 2,147,483,647) when Torque is turned off regardless of Operating Mode(11). However, Present Position(132) will be reset in those cases:

  1. Present Position(132) is reset with the value within 1 rev (0 ~ 4,095) when Operating Mode(11) is changed to Position Control Mode.
  2. Present Position(132) is reset with the value within 1 rev (0 ~ 4,095) when Torque is turned on in Position Control Mode.

Reset Present Position(132) value can be affected by Homing Offset(20).

Velocity Trajectory(136)

This is a target velocity trajectory created by Profile. Operating method can be changed based on control mode. For more details, please refer to the Profile Velocity(112).

  1. Velocity Control Mode : When Profile reaches to the endpoint, Velocity Trajectory(136) becomes equal to Goal Velocity(104).
  2. Position Control Mode, Extended Position Control Mode, Current-based Position Control Mode : Velocity Trajectory is used to create Position Trajectory(140). When Profile reaches to an endpoint, Velocity Trajectory(136) is cleared to ‘0’.

Position Trajectory(140)

This is a target position trajectory created by Profile. This value is only used in Position Control Mode, Extended Position Control Mode and Current-based Position Control Mode. For more details, please refer to the Profile Velocity(112).

Present Input Voltage(144)

This value indicates present voltage that is being supplied. For more details, please refer to the Max/Min Voltage Limit(32, 34).

Present Temperature(146)

This value indicates internal temperature of Dynamixel. For more details, please refer to the Temperature Limit(31).

Indirect Address, Indirect Data

Indirect Address and Indirect Data are useful when accessing two remote addresses in the Control Table as sequential addresses. Sequential addresses increase Instruction Packet efficiency. Addresses that can be defined as Indirect Address is limited to RAM area(Address 64 ~ 661). If specific address is allocated to Indirect Address, Indirect Address inherits features and properties of the Data from the specific Address. Property includes Size(Byte length), value range, and Access property(Read Only, Read/Write). For instance, allocating 65(Address of LED) to Indirect Address 1(168), Indirect Data 1(224) can perform exactly same as LED(65).

Example 1 Allocating Size 1 byte LED(65) to Indirect Data 1(224).

  1. Indirect Address 1(168) : change the value to ‘65’ which is the address of LED.
  2. Set Indirect Data 1(224) to ‘1’ : LED(65) also becomes ‘1’ and LED is turned on.
  3. Set Indirect Data 1(224) to ‘0’ : LED(65) also becomes ‘0’ and LED is turned off.

Example 2 Allocating Size 4 byte Goal Position(116) to Indirect Data 2(225), 4 sequential bytes have to be allocated.

  1. Indirect Address 2(170) : change the value to ‘116’ which is the first address of Goal Position.
  2. Indirect Address 3(172) : change the value to ‘117’ which is the second address of Goal Position.
  3. Indirect Address 4(174) : change the value to ‘118’ which is the third address of Goal Position.
  4. Indirect Address 5(176) : change the value to ‘119’ which is the fourth address of Goal Position.
  5. Set 4 byte value ‘1,024’ to Indirect Data 2 : Goal Position(116) also becomes ‘1024’ and Dynamixel moves.
Indirect Address Range Description
64 ~ 661 EEPROM address can’t be assigned to Indirect Address

Note In order to allocate Data in the Control Table longer than 2[byte] to Indirect Address, all address must be allocated to Indirect Address like the above Example 2.

Note Indirect Address 29 ~ 56 and Indirect Data 29 ~ 56 can only be accessed with Protocol 2.0.

How to Assemble

Optional Frames

Horns

Combination Structures

Maintenance

Horn and Bearing Replacement

The horn is installed on the front wheel gear serration of the DYNAMIXEL whereas the bearing set is installed on the back.

Installing the Horn

Place the thrust horn washer into the actuator before inserting the horn. You must carefully align the horn to the wheel gear serration by aligning dots.

Once alignment is properly done, gently push the center of the horn toward the actuator. Make sure that the horn washer is in place as you tighten the bolt.

Installing the Bearing Set

You may need to remove the bearing set from the previous actuator and reinstall it into the new actuator. The bearing set can also be purchased separately. As bearing set is rotating freely, therefore alignment is not required when assembling to DYNAMIXEL.

Reference

Note Compatibility Guide

Videos

Quick Start

Drawings

Download MX-106T