ROBOTIS e-Manual v1.31.30

[MX-64AT] [MX-64AR]
※ Control Table’s Compliance replaced by PID.
※ The control table’s order for PID has changed to DIP from this version onwards. Please make reference of this change.
※ Although the MX-64AT (TTL) and MX-64AR (RS-485) differ in communications protocols both have the same features and perform equally. (TTL uses 3-pin connectors while RS-485 uses 4)
In order to use Protocol 2.0, please update the firmware to V39 or above. (Update firmware using R+ Manager 2.0, Youtube) For MX-64 (2.0) Protocol, please refer to the MX-64 (2.0) Control table as they are different. |
POSITION SENSOR : Contactless absolute encoder (12BIT,360 DEGREE)
MOTOR : Maxon
BAUD RATE : 8000 bps ~ 4.5 Mbps
CONTROL ALGORITHM : PID CONTROL
Resolution : 0.088°
Gear Reduction Ratio : 200 : 1
6.0N.m (at 12V, 4.1A)
7.3N.m (at 14.8V, 5.2A)
58rpm (at 11.1V)
63rpm (at 12V)
78rpm (at 14.8V)
MX-64T / MX-64AT (Half duplex Asynchronous Serial Communication (8bit,1stop, No Parity))
MX-64R / MX-64AR (RS485 Asynchronous Serial Communication (8bit,1stop, No Parity))
MX-64T / MX-64AT (TTL Level Multi Drop Bus)
MX-64R / MX-64AR (RS485 Multi Drop Bus)
MX-64R / MX-64T (Engineering Plastic Body(Front, Middle, Back))
![]() |
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. |
Precautions when connecting to power supply! - For the stable power supply, we recommend using ROBOTIS controller or SMPS2Dynamixel. - Connect your DYNAMIXEL to power supply while it’s off and turn on/off with the power switch. |
Control Table consists of data regarding the current status and operation, which exists inside of Dynamixel. The user can control Dynamixel by changing data of Control Table via Instruction Packet.
EEPROM and RAM
Data in RAM area is reset to the initial value whenever the power is turned on while data in EEPROM area is kept once the value is set even if the power is turned off.
Note : Two's complement rule is followed to find the negative value in multi turn mode. For more information, please refer to the following link (Two's complement link). |
Address
It represents the location of data. To read from or write data to Control Table, the user should assign the correct address in the Instruction Packet.
Access
Dynamixel has two kinds of data: Read-only data, which is mainly used for sensing, and Read-and-Write data, which is used for driving.
Initial Value
In case of data in the EEPROM Area, the initial values on the right side of the below Control Table are the factory default settings. In case of data in the RAM Area, the initial values on the right side of the above Control Tables are the ones when the power is turned on.
Highest/Lowest Byte
In the Control table, some data share the same name, but they are attached with (L) or (H) at the end of each name to distinguish the address. This data requires 16bit, but it is divided into 8bit each for the addresses (low) and (high). These two addresses should be written with one Instruction Packet at the same time.
Area |
Address (Hexadecimal) |
Name |
Description |
Access |
Initial Value (Hexadecimal) |
E E P R O M |
0 (0X00) |
Lowest byte of model number |
R |
54 (0X36) |
|
1 (0X01) |
Highest byte of model number |
R |
1 (0X01) |
||
2 (0X02) |
Information on the version of firmware |
R |
- |
||
3 (0X03) |
ID of Dynamixel |
RW |
1 (0X01) |
||
4 (0X04) |
Baud Rate of Dynamixel |
RW |
34 (0X22) |
||
5 (0X05) |
Return Delay Time |
RW |
250 (0XFA) |
||
6 (0X06) |
Lowest byte of clockwise Angle Limit |
RW |
0 (0X00) |
||
7 (0X07) |
Highest byte of clockwise Angle Limit |
RW |
0 (0X00) |
||
8 (0X08) |
Lowest byte of counterclockwise Angle Limit |
RW |
255 (0XFF) |
||
9 (0X09) |
Highest byte of counterclockwise Angle Limit |
RW |
15 (0X0F) |
||
11 (0X0B) |
Internal Limit Temperature |
RW |
80 (0X50) |
||
12 (0X0C) |
Lowest Limit Voltage |
RW |
60 (0X3C) |
||
13 (0X0D) |
Highest Limit Voltage |
RW |
160 (0XA0) |
||
14 (0X0E) |
Lowest byte of Max. Torque |
RW |
255 (0XFF) |
||
15 (0X0F) |
Highest byte of Max. Torque |
RW |
3 (0X03) |
||
16 (0X10) |
Status Return Level |
RW |
2 (0X02) |
||
17 (0X11) |
LED for Alarm |
RW |
36 (0X24) |
||
18 (0X12) |
Shutdown for Alarm |
RW |
36 (0X24) |
||
20 (0X14) |
multi-turn offset least significant byte (LSB) |
RW |
0 (0X00) |
||
21 (0X15) |
multi-turn offset most significant byte (MSB) |
RW |
0 (0X00) |
||
22 (0X16) |
Resolution divider |
RW |
1 (0X01) |
||
R A M |
24 (0X18) |
Torque On/Off |
RW |
0 (0X00) |
|
25 (0X19) |
LED On/Off |
RW |
0 (0X00) |
||
26 (0X1A) |
Derivative Gain |
RW |
0 (0X00) |
||
27 (0X1B) |
Integral Gain |
RW |
0 (0X00) |
||
28 (0X1C) |
Proportional Gain |
RW |
32 (0X20) |
||
30 (0X1E) |
Lowest byte of Goal Position |
RW |
- |
||
31 (0X1F) |
Highest byte of Goal Position |
RW |
- |
||
32 (0X20) |
Lowest byte of Moving Speed (Moving Velocity) |
RW |
- |
||
33 (0X21) |
Highest byte of Moving Speed (Moving Velocity) |
RW |
- |
||
34 (0X22) |
Lowest byte of Torque Limit (Goal Torque) |
RW |
ADD14 |
||
35 (0X23) |
Highest byte of Torque Limit (Goal Torque) |
RW |
ADD15 |
||
36 (0X24) |
Lowest byte of Current Position (Present Velocity) |
R |
- |
||
37 (0X25) |
Highest byte of Current Position (Present Velocity) |
R |
- |
||
38 (0X26) |
Lowest byte of Current Speed |
R |
- |
||
39 (0X27) |
Highest byte of Current Speed |
R |
- |
||
40 (0X28) |
Lowest byte of Current Load |
R |
- |
||
41 (0X29) |
Highest byte of Current Load |
R |
- |
||
42 (0X2A) |
Current Voltage |
R |
- |
||
43 (0X2B) |
Current Temperature |
R |
- |
||
44 (0X2C) |
Means if Instruction is registered |
R |
0 (0X00) |
||
46 (0X2E) |
Means if there is any movement |
R |
0 (0X00) |
||
47 (0X2F) |
Locking EEPROM |
RW |
0 (0X00) |
||
48 (0X30) |
Lowest byte of Punch |
RW |
0 (0X00) |
||
49 (0X31) |
Highest byte of Punch |
RW |
0 (0X00) |
||
68 (0X44) |
Lowest byte of Consuming Current |
RW |
0 (0X00) |
||
69 (0X45) |
Highest byte of Consuming Current |
RW |
0 (0X00) |
||
70 (0X46) |
Torque control mode on/off |
RW |
0 (0X00) |
||
71 (0X47) |
Lowest byte of goal torque value |
RW |
0 (0X00) |
||
72 (0X48) |
Highest byte of goal torque value |
RW |
0 (0X00) |
||
73 (0X49) |
Goal Acceleration |
RW |
0 (0X00) |
It represents the Model Number.
It represents the firmware version.
It is a unique number to identify Dynamixel.
The
range from 0 to 252 (0xFC) can be used, and, especially, 254(0xFE)
is used as the Broadcast ID.
If the Broadcast ID is used to transmit Instruction Packet, we can
command to all Dynamixels.
Please be cautious not to have the same IDs for the connected dynamixels. You may face communication issues or may not be able to search when IDs overlap. |
It is the baud rate to communicate with controller. It is available in between 0~254(0XFE).
If the data value is in between 0~249 :
Baudrate(BPS) = 2000000 / (Data + 1)
Data |
Set BPS |
Target BPS |
Tolerance |
1 |
1000000.0 |
1000000.0 |
0.000 % |
3 |
500000.0 |
500000.0 |
0.000 % |
4 |
400000.0 |
400000.0 |
0.000 % |
7 |
250000.0 |
250000.0 |
0.000 % |
9 |
200000.0 |
200000.0 |
0.000 % |
16 |
117647.1 |
115200.0 |
-2.124 % |
34 |
57142.9 |
57600.0 |
0.794 % |
103 |
19230.8 |
19200.0 |
-0.160 % |
207 |
9615.4 |
9600.0 |
-0.160 % |
If the date value is over the 250 :
Data |
Set BPS |
Target BPS |
Tolerance |
250 |
2250000.0 |
2250000.0 |
0.000 % |
251 |
2500000.0 |
2500000.0 |
0.000 % |
252 |
3000000.0 |
3000000.0 |
0.000 % |
Note : Maximum Baud Rate error of 3% is within the tolerance of UART communication. |
It is the delay time per data value that takes from the transmission of Instruction Packet until the return of Status Packet.
0 to 254 (0xFE) can be used, and the delay time per data value is 2 usec.
That is to say, if the data value is 10, 20 usec is delayed. The initial value is 250 (0xFA) (i.e., 0.5 msec).
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).
The following two modes can be set pursuant to the value of CW and CCW.
Operation Type |
CW / CCW |
Wheel Mode |
both are 0 |
Joint Mode |
neither at 0 |
Multi-turn Mode |
both are 4095 |
The wheel mode can be used to wheel-type operation robots since motors of the robots spin infinitely.
The joint mode can be used to multi-joints robot since the robots can be controlled with specific angles.
Multi-turn mode allows joints have range of controllable position values from -28672 to 28672.
Adjusts position (zeroing). This value gets included in Present Position (36).
Present position + multi-turn offset.
Initial value is 0 and range is from -24576 to 24576
A Dynamixel with a position of 2048 with an applied offset of 1024 outputs a Present position of 3072.

Note: This feature is only applied in multi-turn mode and ignored in other modes. |
It allows the user to change Dynamixel’s resolution.
The default Resolution Divider Value is set as 1. (1 ~ 4 available)
When resolution is lowered, revolutions (in both directions) can be increased (up to 28 turns in each direction).
Present Position = Real Position / Resolution Divider
For example, a Real Position of 2048 with a Resolution Divider set as 2 will yield a Present Position value of 1024 (2048/2 = 1024). A Dynamixel with Resolution Divider set as 2 will have a resolution 2048 for a single revolution.
The Present Position can be obtained while Multi-turn Offset and Resolution Divider are taken into account.
Present position = (Real Position / Resolution Divider) + Multi-turn Offset
For example, a Dynamixel with a Real Position of 2048 with a Resolution Divider set as 4 and Multi-turn Offset as 1024 will yield a Present Position of 1535 ((2048/4) + 1024 = 1535).

Note: This feature is only applied in multi-turn mode and ignored in other modes. |
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. Using the product when the temperature is high may and can cause damage. |
The Lowest (Highest) Limit Voltage
It is the operation range of voltage.
50 to 160 (0x32 ~ 0xA0) can be used. The unit is 0.1V.
For example, if the value is 80, it is 8V.
If Present Voltage (Address42) 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.
It is the torque value of maximum output. 0 to 1023 (0x3FF) can be used, and the unit is about 0.1%.
For example, Data 1023 (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 (Addresses 34 and 35) uses the value as the initial value.
It decides how to return Status Packet. There are three ways like the below table.
Value |
Return of Status Packet |
0 |
No return against all commands (Except PING Command) |
1 |
Return only for the READ command |
2 |
Return for all commands |
When Instruction Packet is Broadcast ID, Status Packet is not returned regardless of Status Return Level. |
DYNAMIXEL can protect itself by detecting errors occur during the operation. The errors can be set are as the table below.
Bit |
Name |
Contents |
Bit 7 |
0 |
- |
Bit 6 |
Instruction Error |
When undefined Instruction is transmitted or the Action command is delivered without the reg_write command |
Bit 5 |
Overload Error |
When the current load cannot be controlled with the set maximum torque |
Bit 4 |
CheckSum Error |
When the Checksum of the transmitted Instruction Packet is invalid |
Bit 3 |
Range Error |
When out-of-range value for target address is detected in the packet |
Bit 2 |
Overheating Error |
When the internal temperature is out of the range of operating temperature set in the Control Table |
Bit 1 |
Angle Limit Error |
When Goal Position is written with the value that is not between CW Angle Limit and CCW Angle Limit |
Bit 0 |
Input Voltage Error |
When the applied voltage is out of the range of operating voltage set in the Control Table |
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 Overheating Error can be detected.
When Alarm LED occurs, the LED blinks and when Alarm Shutdown occurs, the motor output becomes 0 % by making the value of Torque Limit (Address 34, 35) as 0.
Value |
Meaning |
0 |
Keeps Torque from generating by interrupting the power of motor. |
1 |
Generates Torque by impressing the power to the motor. |
Bit |
Meaning |
0 |
Turn OFF the LED |
1 |
Turn ON the LED |
MX series will use the PID controller as a main control method.
P gain refers to the value of proportional band.
I gain refers to the value of integral action.
D Gain refers to the value of derivative action.
Gains values are in between 0~254.


※ 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. ※ Explanation for PID required. For the brief explanation about general PID, please refer to the website(link) below. http://en.wikipedia.org/wiki/PID_controller 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. |
It is a position value of destination.
0 to 4095 (0xFFF) is available. The unit is 0.088 degree.
If Goal Position is out of the range, Angle Limit Error Bit (Bit1) of Status Packet is returned as ‘1’ and Alarm is triggered as set in Alarm LED/Shutdown.

Joint
Mode, Multi-Turn mode
It is a moving speed to Goal Position.
0~1023 (0X3FF) can be used, and the unit is about 0.114rpm.
If it is set to 0, it means the maximum rpm of the motor is used without
controlling the speed.
If it is 1023, it is about 117.07rpm.
For example, if it is set to 300, it is about 34.33 rpm.
Wheel
Mode
It is a moving speed to Goal direction.
0~2047 (0X7FF) can be used, and the unit is about 0.114rpm.
If a value in the range of 0~1023 is used, it is stopped by setting
to 0 while rotating to CCW direction.
If a value in the range of 1024~2047 is used, it is stopped by setting
to 1024 while rotating to CW direction.
That is, the 10th bit becomes the direction bit to control the direction.
Note: This mode allows to check max rpm. Any values set higher than max rpm will not take effect. |
It is the value of the maximum torque limit.
0 to 1023 (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 is used as the initial
value.
Notes: 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. |
It is the current position value of Dynamixel.
The range of the value is 0~4095 (0xFFF), and the unit is 0.088 degree.

In multi-turn mode range is from -28672 to 28672 with unit values dependent on Resolution Divider (0.088 * Resolution Divider)
Note: in multi-turn mode Present position depends on resolution divider and multi-turn offset For more information turn to the section on Multi Turn offset and Resolution Divider |
Is the current moving speed.
0~2047 (0x000~0X7FF) can be used.
If a value is in the rage of 0~1023 then the motor rotates to the CCW direction.
If a value is in the rage of 1024~2047 then the motor rotates to the CW direction.
The 10th bit becomes the direction bit to control the direction; 0 and 1024 are equal.
The value unit is about 0.11rpm.
For example, if it is set to 300 then the motor is moving to the CCW direction at a rate of about 34.33rpm.
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~1023, it means the load works to the CCW direction.
If the value is 1024~2047, it means the load works to the CW direction.
That is, the 10th bit becomes the direction bit to control the direction, and 1024 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.

Notes: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 current voltage supplied.
This value is 10 times larger than the actual voltage. For example, when 10V is supplied, the data value is 100 (0x64)
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℃.
Value |
Meaning |
0 |
There are no commands transmitted by REG_WRITE |
1 |
There are commands transmitted by REG_WRITE. |
| Notes: If ACTION command is executed, the value is changed into 0. |
Value |
Meaning |
0 |
Goal position command execution is completed. |
1 |
Goal position command execution is in progress. |
Value |
Meaning |
0 |
EEPROM area can be modified. |
1 |
EEPROM area cannot be modified. |
| Caution: If Lock is set to 1, the power must be turned off and then turned on again to change into 0. |
Current to drive motor is at minimum.
Can choose vales from 0x00 to 0x3FF.
Value at 2048(0x800) when current is consumption is idle.
Values higher than 2048(0x800) during positive current flow
Values lower than 2048(0x800) during negative current flow
The following is a method to calculate current flow
I = ( 4.5mA ) * (CURRENT – 2048 ) in amps unit (A).
For example, 68 gives a value of 2148, which corresponds to 450mA of current flow.

Value |
Meaning |
0 |
Turn off the torque mode. Executes Joint mode or Wheel mode. |
1 |
Turn on the torque mode. Cannot control the position or moving speed but only Torque. |
These are the goal torque value
You can use 0 ~ 2047 (0x7FF), and the unit is 4.5mA.
(torque is directly proportional to the current value.)
If you use from 0~1023, torque is on toward CCW, and when you set it to 0, it stops.
If you use from 1024~2047, torque is on toward CW, and when you set it to 1024, it stops.
That means, 10th bit becomes the direction bit, which controls direction.
Goal Torque cannot be bigger than Torque Limit(34,35)
This is Goal Acceleration value.
It can be used from 0~254(0XFE), and the unit is approximately 8.583 Degree / sec^2.
When it is set to 0, there is no control over acceleration and moves with the maximum acceleration of the motor.
When the goal speead is set to 0, there is no control over acceleration and moves with the maximum acceleration of the motor.
When it is set to 254, it becomes 2180 Degree / sec^2
For example, the current speed of Dynamixel is 0, and Goal acceleration is 10,
The speed of Dynamixel after 1 second will be 14.3 RPM.
The types of MX-64 option frame are as follows.




The types of MX-64 Horn are as follows.


Ref: place careful attention when aligning the horn of the RX-64 to prevent misalignment. |
The horn is installed on the front wheel gear serration of the DYNAMIXEL whereas the bearing set is installed on the back.

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

The following example shows the combination structure of option frames and horns.

| Frame Compatibility Guide(LINK) |
HOW TO REPLACE GEARS