Edit on GitHub

Introduction

RH-P12-RN

Specifications

Item Specifications
MCU ST CORTEX-M4 (STM32F405 @ 168Mhz, 32bit)
Position Sensor Contactless Absolute Encoder (12bit, 360°)
Maker : ams(www.ams.com), Part No : AS5045
Motor Coreless
Baud Rate 9,600 bps ~ 10.5 Mbps
Control Algorithm PID Control
Degree of Precision 0.088°
Operating Mode Current Control Mode
Current based Position Control Mode
Weight 500g
Stroke 0 ~ 109mm
Gear Ratio 1181 : 1
Maximum Gripping Force 170N
Recommended Payload 5kg
Operating Temperature -5°C ~ 55°C
Nominal Voltage 24V
Command Signal Digital Packet
Protocol Type RS485 Asynchronous Serial Communication
(8bit, 1stop, No Parity)
Physical Connection RS485 Multidrop BUS
ID 0 ~ 252
Feedback Position, Velocity, Current, Temperature, Input Voltage, etc
Material Full Metal Gear, Metal Body
Standby Current 30mA
Peak Current 3.33A

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 35073
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 Speed RW 1
9 1 Return Delay Time Response Delay Time RW 250
11 1 Operating Mode Operating Mode RW 5
17 4 Moving Threshold Velocity Threshold for Movement Detection RW 10
21 1 Temperature Limit Maximum Internal Temperature Limit RW 80
22 2 Max Voltage Limit Maximum Input Voltage Limit RW 400
24 2 Min Voltage Limit Minimum Input Voltage Limit RW 150
26 4 Acceleration Limit Maximum Accleration Limit RW 255
30 2 Current Limit Maximum Current Limit RW 820
32 4 Velocity Limit Maximum Velocity Limit RW 100
36 4 Max Position Limit Maximum Position Limit RW 1150
40 4 Min Position Limit Minimum Position Limit RW 0
44 1 External Port Mode 1 External Port Mode 1 RW 0
45 1 External Port Mode 2 External Port Mode 2 RW 0
46 1 External Port Mode 3 External Port Mode 3 RW 0
47 1 External Port Mode 4 External Port Mode 4 RW 0
48 1 Shutdown Shutdown Error Information RW 48
49 2 Indirect Address 1 Indirect Address 1 RW 634
51 2 Indirect Address 2 Indirect Address 2 RW 635
53 2 Indirect Address 3 Indirect Address 3 RW 636
2 Indirect Address N Indirect Address N RW
559 2 Indirect Address 256 Indirect Address 256 RW 889

Control Table of RAM Area

Address Size
(Byte)
Data Name Description Access Initial
Value
562 1 Torque Enable Motor Torque On/Off RW 0
563 1 LED Red Red LED Intensity Value RW 0
564 1 LED Green Green LED Intensity Value RW 0
565 1 LED Blue Blue LED Intensity Value RW 0
590 2 Position D Gain D Gain of Position RW -
592 2 Position I Gain I Gain of Position RW -
594 2 Position P Gain P Gain of Position RW -
596 4 Goal Position Target Position Value RW -
600 4 Goal Velocity Target Velocity Value RW 0
604 2 Goal Current Target Current Value RW 0
606 4 Goal Acceleration Target Acceleration Value RW 0
610 1 Moving Movement Status R -
611 4 Present Position Present Position Value R -
615 4 Present Velocity Present Velocity Value R -
621 2 Present Current Present Current Value R -
623 2 Present Input Voltage Present Input Voltage R -
625 1 Present Temperature Present Internal Temperature R -
626 2 External Port Data 1 External Port Data 1 R/RW 0
628 2 External Port Data 2 External Port Data 2 R/RW 0
630 2 External Port Data 3 External Port Data 3 R/RW 0
632 2 External Port Data 4 External Port Data 4 R/RW 0
634 1 Indirect Data 1 Indirect Data 1 RW 0
635 1 Indirect Data 2 Indirect Data 2 RW 0
636 1 Indirect Data 3 Indirect Data 3 RW 0
1 Indirect Data N Indirect Data N RW 0
889 1 Indirect Data 256 Indirect Data 256 RW 0
890 1 Registered Instruction Check Reception of Instruction R 0
891 1 Status Return Level Select Types of Status Return RW 2
892 1 Hardware Error Status Hardware Error Status R 0

Control Table Description

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

Model Number(0)

This address stores model number of the RH-P12-RN.

Model Name Model Number
RH-P12-RN 35073 (0x8901)

Firmware Version(6)

This address stores firmware version of the RH-P12-RN.

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

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

Value Baud Rate
8 10.5M
7 4.5M
6 4M
5 3M
4 2M
3 1M
2 115,200
1(Default) 57,600
0 9,600

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

Return Delay Time(9)

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]

Operating Mode(11)

Value Operating Mode Description
0 Current Control Mode This mode only controls Current regardless of speed and position.
1 ~ 4 Reserved -
5(Default) Current based Position Control Mode This mode controls both Position and Current.

Moving Threshold(17)

This value helps to determine whether the Dynamixel is in motion or not.
If Present Velocity(615) is bigger than Moving Threshold(17) value, Moving(610) is set to ‘1’. Otherwise Moving(610) is cleared to ‘0’.
This value determines whether Dynamixel is in motion or not.

Value Range
0 ~ 2,147,483,647

Temperature Limit(21)

This value limits operating temperature.
When the Present Temperature(625) that indicates internal temperature of Dynamixel is greater than the Temperature Limit(21), the Over Heating Error Bit(Bit 2) in the Hardware Error Status(892) will be set.
If Overheating Error Bit(Bit 2) is configured in the Shutdown(48) when Over Heating Error occurs, Torque Enable(562) is cleared to ‘0’ and Torque will be disabled.
For more details, please refer to the Shutdown(48) 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 for 20 minutes to cool the temperature before reuse. Keep using the product with high temperature can cause severe damage to Dynamixel.

Min/Max Voltage Limit(22, 24)

These values are maximum and minimum operating voltages.
When current input voltage acquired from Present Input Voltage(623) exceeds the range of Max Voltage Limit(36) and Min Voltage Limit(40), Input Voltage Error Bit(Bit 0) in the Hardware Error Status(892) will be set to ‘1’.
If Input Voltage Error Bit(Bit 0) is configured in the Shutdown(48) when Input Voltage Error occurs, Torque Enable(562) is cleared to ‘0’ and Torque will be disabled.
For more details, please refer to the Shutdown(48) section.

Unit Value Range Description
About 0.1V 0 ~ 400 0 ~ 40.0V

Acceleration Limit(26)

This data indicates maximum value of Goal Acceleration(606).
Goal Acceleration(606) can’t be configured with any values exceeding the Acceleration Limit(26).

Attempting to write an exceeding value will result transmitting Data Limit Error(0x06) in the Error field of the Status Packet.
Goal Acceleration(606) is used in all operating mode except Current Control Mode in order to generate a target trajectory.

Unit Value Range
214.577 Rev/min2 0 ~ 2,147,483,647

Current Limit(30)

This value indicates maximum current limit. Goal Current(604) can’t be configured with any values exceeding [Current Limit(30)].
Attempting to write an exceeding value will fail and result in receiving a Limit Error Bit from the Status Packet.

Unit Value Range
About 4.02 mA 0 ~ 820

Velocity Limit(32)

This value indicates velocity limit.
The Goal Velocity(600) can’t exceed this value.
Attempting to write an exceeding value will fail and result in receiving a Limit Error Bit from the Status Packet.

Unit Value Range
0.114 RPM 0 ~ 2,147,483,647

Min/Max Position Limit(36, 40)

These values limit maximum and minimum target positions.
The Goal Position(596) can’t exceed these values.
Attempting to write an exceeding value will fail and result in receiving a Limit Error Bit from the Status Packet.

Max Position(Close) Min Position(Open)
1,150 0

External Port Mode, External Port Data

External ports that can be used for various purposes are provided.
The property of each port is configured by the External Port Mode (44, 45, 46, 47) and data of external port is controlled by the External Port Data(626, 628, 630, 632).

External Port Mode Mode Description
0(default) AI(Analogue Input) Converts External Port signal to 12[bit] digital value
1 DO_PP(Digital Output Push-Pull) Use External Port as a digital output port(3.3V level)
2 DI_PU(Digital Input Pull-Up) Use External Port as a digital input port
Floating connection will be considered as ‘1’
3 DI_PD(Digital Input Pull-Down) Use External Port as a digital input port
Floating connection will be considered as ‘0’
External Port Mode Access Details Electrical Characteristics
Common - - 0 ~ 3.3[V], 0 ~ 5[mA]
VESD(HBM) : 2[kV]
0(AI) Read Converts External Port signal to digital value
External Data = signal x (4,095 / 3.3)
Resolution : 12[bit] (0 ~ 4,095)
1(DO_PP) Write 0 : Set External Port output to 0[V]
1 : Set External Port output to 3.3[V]
Output High level(VOH) : 2.4 [V] (min)
Output Low level(VOL) : 0.5 [V] (max)
2(DI_PU)
3 (DI_PD)
Read 0: External Port input is 0[V]
1 : External Port input is 3.3[V]
Input High level(VIH) : 2.3 [V] (min)
Input Low level(VIL) : 1.0 [V] (max)
Pull-Up/Down : 40 [kΩ] (typ)

※ VESD(HBM) : ESD(Electrostatic Discharge) Voltage(human body model)

The External Port is not electrically insulated, therefore, abide by the electrical specifications.
If the electrical specification is exceeded or there is a problem with the signal connection, special caution is required because DYNAMIXEL can be damaged.

  • Be careful not to cause electric shock by static electricity (ESD), short circuit, open circuit.
  • Be careful not to let water or dust get into the External Port connector.
  • If you are not using the External Port, remove the cable.
  • To connect or disconnect the External Port, proceed with power off.
  • Do not connect the GNDext pin of External Port directly to the GND pin of DYNAMIXEL connector. Noise from power may affect on the External Port.

External expansion port location and pin function

Remove bolts and cover plate to reveal External Port connector.

Pin 1 Pin 2 Pin 3 Pin 4 Pin 5 Pin 6
GND 3.3V PORT1 PORT2 PORT3 PORT4

Shutdown(48)

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(48), Dynamixel can detect both Input Voltage Error(binary : 00000001) and Overheating Error(binary : 00000100). If those errors are detected, Torque Enable(562) is cleared to ‘0’ and the motor output becomes 0[%]. In order to reuse Dynamixel Pro in shutdown status, REBOOT has to be done. 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 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 [Protocol] section of e-Manual.)

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 562 ~ 892). 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, if address 563(LED Red) is allocated to Indirect Address 1(49), Indirect Data 1(634) will have the exactly same value of LED Red(563).

Example 1

Allocating 1 byte LED(563) to Indirect Data 1(634).

  1. Indirect Address 1(49) : change the value to ‘563’ which is the address of LED Red.
  2. Set Indirect Data 1(634) to ‘1’ : LED Red(563) also becomes ‘1’ and Red LED will be turned on.
  3. Set Indirect Data 1(634) to ‘0’ : LED Red(563) also becomes ‘0’ and Red LED will be turned off.

Example 2

Allocating Size 4 byte Goal Position(596) to Indirect Data 2(635), 4 sequential bytes have to be allocated.

  1. Indirect Address 2(51) : change the value to ‘596’ which is the first address of Goal Position.
  2. Indirect Address 3(53) : change the value to ‘597’ which is the second address of Goal Position.
  3. Indirect Address 4(55) : change the value to ‘598’ which is the third address of Goal Position.
  4. Indirect Address 5(57) : change the value to ‘599’ which is the fourth address of Goal Position.
  5. Set 4 byte value 305,419,896(0x12345678) to Indirect Data 2 : Goal Position(596) also becomes 305,419,896(0x12345678) as below.
Indirect Data Address Goal Position Address Saved HEX Value
635 596 0x78
636 597 0x56
637 598 0x34
638 599 0x12

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.

Torque Enable(562)

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

RGB LED(563)

Controls the RGB LED on Dynamixel PRO.

Address Color Range
563 Red 0 ~ 255
564 Green 0 ~ 255
565 Blue 0 ~ 255

Position PID Gain(594, 592, 590)

These gains are used for Current-based Position Control Mode. The range of value is 0 ~ 32,767.
Below diagram illustrates position controller and current controller for Current-based Position Control Mode.
KPD, KPI and KPP stands for Position D Gain, Position I Gain and Position P Gain respectively.
When the instruction from the user is received by the gripper, it takes following steps until operating grippers.

  1. An Instruction from the user is transferred to the gripper, then registered to Goal Position(596).
  2. Goal Position(596) is converted to Target Position Trajectory and Target Velocity Trajectory by Goal Velocity(600) and Goal Acceleration(606).
  3. The PID controller calculates Target Current based on the Target Trajectory.
  4. Goal Current(604) sets a limit on the calculated Target Current to decide final Target Current.
  5. Current controller decides PWM output to be applied to the motor based on the final Target Current.
  6. The final PWM output is delivered to the motor through an Inverter, and the gripper is driven.
  7. Results are stored at Present Position(611), Present Velocity(615) and Present Current(621).

NOTE : KPA stands for Anti-windup Gain which cannot be modified by users. For more details about the PID controller, please refer to the PID Controller at wikipedia.

Goal Position(596)

This value indicates the position to move.
The range of value is between Min Position Limit(40) and Max Position Limit(36) with initial value of 0 ~ 1,150(0x47E) respectively.

Model Goal Position = 0 Goal Position = 740
RH-P12-RN

Goal Velocity(600)

Goal Velocity is only used for Current-based Position Control mode to set the maximum speed of Profile.
If Goal Velocity(600) is set to ‘0’, Profile is disabled and use the maximum RPM of motor.

Unit Value Range
0.114 rpm -Velocity Limit(32) ~ Velocity Limit(32)

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

NOTE : Please check the maximum rpm of the Dynamixel. The motor cannot exceed the maximum rpm with the higher Moving Speed value.

Goal Current(604)

Goal Current is used for other purposes according to Operating Mode(11).

Operating Mode Goal Current
0 (Current Control Mode) Goal Current is used as Target Current value
5 (Current-based Position Control Mode) Goal Current is used as Maximum Current value

Also, Goal Current(604) cannot exceed Current Limit(30).

Unit Value Range
about 4.02 mA -Current Limit(30) ~ Current Limit(30)

Goal Acceleration(606)

Goal Acceleration is only used for Current-based Position Control mode to set the acceleration of Profile.
If Goal Velocity(600) is set to ‘0’, Profile is disabled and Goal Acceleration(606) is not applied.

Unit Value Range
214.577 Rev/min2 0 ~ Acceleration Limit(26)

Moving(610)

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

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

Present Position(611)

This value indicates present Position.

Model Goal Position = 0 Goal Position = 740
RH-P12-RN

Present Velocity(615)

This value indicates present Velocity. It is a velocity to a target direction. -1,023 ~ 1,023 (0x3FF) can be used, and the conversion unit is about 0.114rpm. For more details, please refer to the Goal Velocity(600).

Present Current(621)

This value indicates present Current. The unit of this value is about 4.02mA.

Present Input Voltage(623)

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

Present Temperature(625)

This value indicates present internal Temperature. For more details, please refer to the Temperature Limit(21).

Registered Instruction(890)

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.

Status Return Level(891)

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.

Hardware Error Status(892)

This value indicates hardware error status. For more details, please refer to the Shutdown(48).

How to Assemble

Option Frame Assembly

Reference

Connector Information

Item RS-485 External Port
Pinout 1 GND
2 VDD
3 DATA+
4 DATA-
1 GND
2 VDD
3 PORT 1
4 PORT 2
5 PORT 3
6 PORT 4
Diagram
Housing JST EHR-04
MOLEX 51021-0600
PCB Header
JST B4B-EH-A

MOLEX 53047-0610
Crimp Terminal JST SHE-001T-P0.6 MOLEX 50079-8100
Wire Gauge 21 AWG 21 AWG

Drawings

Download RH-P12-RN(PDF).zip
Download RH-P12-RN(STP).zip