Edit on GitHub

MX-64

Note Compliance has been replaced with PID Gains.

Note 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)

Note In order to use Protocol 2.0, please update the firmware to V39 or above. (Update firmware using R+ Manager 2.0)

Warning For MX-64(2.0) Protocol, please refer to the MX-64(2.0) Control Table as they are different.

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°
Running Degree 0° ~ 360°
Endless Turn
Weight 135g
Dimensions (W x H x D) 40.2mm x 61.1mm x 41mm
Gear Ratio 200 : 1
Stall Torque 5.5Nm @ 11.1V, 3.9A
6.0Nm @ 12V, 4.1A
7.3Nm @ 14.8V, 5.2A
No Load Speed 58rpm @ 11.1V
63rpm @ 12V
78rpm @ 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-64T/MX-64AT: Half Duplex Asynchronous Serial Communication
MX-64R/MX-64AR: RS485 Asynchronous Serial Communication
(8bit,1stop, No Parity)
Physical Connection MX-64T/MX-64AT: TTL Level Multidrop BUS
MX-64R/MX-64AR: RS485 Multidrop BUS
ID 0 ~ 253
Feedback Position, Temperature, Load, Input Voltage, etc
Material Full Metal Gear
MX-64AR/MX-64AT: Metal(Front), Engineering Plastic(Middle, Back)
MX-64R/MX-64T: Engineering Plastic(Front, 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 1.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 DYNAMIXEL is turned on (Volatile). On the other hand, modified data in the EEPROM Area keeps their values even when the DYNAMIXEL is turned off (Non-Volatile). Data in the EEPROM Area can only be changed or modified when the value of Torque Enable(24) is ‘0’ and Dynamixel is in idle state.

Size

The Size of data is 1 or 2 bytes depend on their usage. Please check the size of data when updating the data with an Instruction Packet. 2 bytes data 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 310
2 1 Firmware Version Firmware Version R -
3 1 ID DYNAMIXEL ID RW 1
4 1 Baud Rate Communication Speed RW 34
5 1 Return Delay Time Response Delay Time RW 250
6 2 CW Angle Limit Clockwise Angle Limit RW 0
8 2 CCW Angle Limit Counter-Clockwise Angle Limit RW 4095
11 1 Temperature Limit Maximum Internal Temperature Limit RW 80
12 1 Min Voltage Limit Minimum Input Voltage Limit RW 60
13 1 Max Voltage Limit Maximum Input Voltage Limit RW 240
14 2 Max Torque Maximun Torque RW 1023
16 1 Status Return Level Select Types of Status Return RW 2
17 1 Alarm LED LED for Alarm RW 36
18 1 Shutdown Shutdown Error Information RW 36
20 2 Multi Turn Offset Adjust Position with Offset RW 0
22 1 Resolution Divider Divider for Position Resolution RW 1

Control Table of RAM Area

Address Size(Byte) Data Name Description Access Initial Value
24 1 Torque Enable Motor Torque On/Off RW 0
25 1 LED Status LED On/Off RW 0
26 1 D Gain Derivative Gain RW 0
27 1 I Gain Integral Gain RW 0
28 1 P Gain Proportional Gain RW 32
30 2 Goal Position Target Position RW -
32 2 Moving Speed Moving Speed(Moving Velocity) RW -
34 2 Torque Limit Torque Limit(Goal Torque) RW ADD 14&15
36 2 Present Position Present Position R -
38 2 Present Speed Present Speed R -
40 2 Present Load Present Load R -
42 1 Present Voltage Present Voltage R -
43 1 Present Temperature Present Temperature R -
44 1 Registered If Instruction is registered R 0
46 1 Moving Movement Status R 0
47 1 Lock Locking EEPROM RW 0
48 2 Punch Minimum Current Threshold RW 0
68 2 Current Consuming Current RW 0
70 1 Torque Ctrl Mode Enable Torque Control Mode On/Off RW 0
71 2 Goal Torque Goal Torque RW 0
73 1 Goal Acceleration Goal Acceleration RW 0

Control Table Description

Model Number (0)

This address stores model number of the DYNAMIXEL.

Firmware Version (2)

This address stores firmware version of the 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 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(bps) Margin of Error
1 1M 0.000%
3 500,000 0.000%
4 400,000 0.000%
7 250,000 0.000%
9 200,000 0.000%
16 115200 -2.124%
34(Default) 57600 0.794%
103 19200 -0.160%
207 9600 -0.160%

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

For BPS over 250 values :

Value Baud Rate Margin of Error
250 2,250,000 0.000%
251 2,500,000 0.000%
252 3,000,000 0.000%

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]

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

Operation Type CW / CCW
Wheel Mode both are 0
Joint Mode neither are 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 joint mode control over multiple rotations (Position range : -28,672 ~ 28,672)

Temperature Limit (11)

Unit Value Range
About 1°C 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 (12, 13)

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.

Max Torque (14)

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 (Address 34 and 35) uses the value as the initial value.

Status Return Level (16)

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.

Alarm LED(17), Shutdown(18)

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 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 the command is given beyond the range of usage
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. If errors occur, in case of Alarm LED, the LED blinks; in case of Alarm Shutdown, the motor output becomes 0 % by resetting the value of Torque Limit(34) to 0.

Multi Turn Offset (20)

Adjusts offset position. This offset value is added to the Present Position(36). Initial value is 0 and the range is from -24,576 to 24,576. Dynamixel with a Present position of 2,048 with an offset of 1,024 will return an adjusted Present position of 3,072.

Note This offset feature is only available in multi-turn mode.

Resolution Divider (22)

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 will be ignored in other modes.

Torque Enable (24)

Value Description
0 Turn off the torque(Free run state)
1 Turn on the torque and lock EEPROM area

LED (25)

Turn on or turn off the LED on Dynamixel.

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

PID Gains (26, 27, 28)

MX series will use the PID controller as a main control method. 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

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

Goal Position (30)

It is a position value of destination. 0 to 4,095 (0xFFF) is available. The unit is 0.088°. 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.

The picture above is the front view of Dynamixel

In multi-turn mode Dynamixel has a range from -28,672 to 28,672 (can turn up to 7 revolutions in either CW or CCW direction). When resolution divider is set to a different value revolutions can increase.

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

Moving Speed (32)

Torque Limit (34)

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 (Address 14, 15) 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 (36)

It is the current position value of Dynamixel. The range of the value is 0~4095 (0xFFF), and the unit is 0.088 degree.

The picture above is the front view of Dynamixel.

In multi-turn mode, the 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.

Present Speed (38)

Is the current 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 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.

Present Load (40)

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 (42)

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

Present Temperature (43)

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 (44)

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.

Moving (46)

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

Lock (47)

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

Punch (48)

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

Current (68)

At an idle state without current flow, this value is 2,048(0x800). When positive current flows, this value becomes larger than 2,048(0x800) while negative current flow returns a value smaller than 2,048(0x800). The following is current flow calculation formula.

I = ( 4.5mA ) * (CURRENT – 2048 ) in amps unit (A). For example, 68 gives a value of 2148, which corresponds to 450mA of current flow.

Torque Control Mode Enable (70)

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

When Torque Control Mode Enable is 1, DYNAMIXEL behaves like the followings

Goal Torque (71)

You can use 0 ~ 2,047 (0x7FF) and the unit is 4.5mA (Torque is directly proportional to the current value). If you use a value between 0 ~ 1,023, torque is applied to the CCW direction, and setting it to 0 will stops. If you use a value between 1,024 ~ 2,047, torque is applied to the CW direction, and setting it to 1,024 will stops. That means, 10th bit becomes the CW/CCW direction bit, which controls rotational direction. Goal Torque cannot be bigger than Torque Limit(34,35).

Goal Acceleration (73)

This is Goal Acceleration value. It can be used from 0~254(0XFE) and the unit is approximately 8.583° / sec2. 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 2,180° / sec2. 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.

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-64T Download MX-64R