User’s Manual 2004-04-02
Closer to Real,
Dynamixel
DX-116
Download from Www.Somanuals.com. All Manuals Search And Download.
DYNAMIXEL
DX-116
1. Dynamixel DX-116
1-1. Overview & Characteristics of DX-116
Dynamixel DX-116
The Dynamixel is a smart actuator which incorporates a precision servo
motor and a control unit with networking functionality, all in a single unit.
Despite its compact size, it can produce high torque and has been
manufactured using high quality materials to provide the necessary strength
and structural resilience. It can also detect and act upon internal conditions
such as temperature and over-current .
The Dynamixel has many advantages over similar products:-
Control position and speed with fine angular resolution (1024 divisions)
Control the degree of elastic force in position control.
Precise Control
Compliance Driving
Feedback
Feedback for angular position, speed and load size.
Alarm System
Not only does the Dynamixel warn of a deviation from the user defined
ranges (e.g. internal temperatures, torques, voltages etc), but it also
automatically deals with the problems as they occur.
Communication
Daisy chain connection with support for communication speeds of up to
1MBPS.
High Efficiency Motor
Distributed Control
Dynamixel uses the RE–MAX Series Coreless DC Motors from Swiss Maxon
Motor which boasts high output torque and excellent acceleration.
The main processor requires very few resources to control multiple
Dynamixels since the movement schedule requires only a single command
packet.
High Quality Enclosure
The high quality plastic body ensures structural integrity under all
operational conditions
2
English Translation by: Tribotix Pty Ltd
Download from Www.Somanuals.com. All Manuals Search And Download.
DYNAMIXEL
DX-116
Metal Gears
Axis Bearing
All the gear sets are made of metal to ensure extreme durability.
A bearing is used on the final axis to ensure there is no loss of efficiency
during heavily loaded conditions.
Status LED
A LED indicates error status.
3
English Translation by: Tribotix Pty Ltd
Download from Www.Somanuals.com. All Manuals Search And Download.
DYNAMIXEL
DX-116
1-2. Main Specification
Holding Torque
Reduction ratio
Speed
31.5kg·cm (18V) ~ 21 kg·cm (12V)
1/140
0.084sec/60° (18V) ~ 0.125sec/60° (12V)
Resolution
0.35°
Operating Angle
Voltage
300°
12V~18V (Recommended voltage: 14~15V)
Max. Current
Operating Temp.
Weight
1200mA
-5℃ ~ +85℃
66g
Command Signal
Protocol Type
Link (Physical)
ID
Digital Packet
Half duplex Asynchronous Serial Communication (8bit,1stop,No Parity)
RS 485 Multi Drop (daisy chain configuration)
254 ID (0~253)
Communication Speed 7343bps ~ 1 Mbps
Feedback
Material
Motor
Position, Temperature, Load, Input Voltage, etc.
Full Metal Gear, Engineering Plastic Body
Swiss MAXON Motor RE-MAX (best level)
4
English Translation by: Tribotix Pty Ltd
Download from Www.Somanuals.com. All Manuals Search And Download.
DYNAMIXEL
DX-116
2. Installation of Dynamixel
2-1. Mechanical Parts Assembly
Mechanical Parts of Dynamixel are assembled as follows:
Horn
Nut(8EA)
Screw for Horn
Screw for mount(8EA)
The 8 sets of Nuts & Screws are only used when a Dynamixel is mounted to
other equipment.
2-2. Connector Assembly
Assemble the connectors as shown below. Attach the wires to the terminals
using the correct crimping tool. If you do not have access to an appropriate
crimper, solder the terminals to the wires to ensure that they do not become
loose during operation.
5
English Translation by: Tribotix Pty Ltd
Download from Www.Somanuals.com. All Manuals Search And Download.
DYNAMIXEL
DX-116
2-3. Wiring of Dynamixel
Pin Assignment
Pin assignments of the connectors are as follows:-
Pin 1: GND
Pin 2: +12V~18V
Pin 1
Pin 4
3
2
1
2
3
4
Pin 3: D+ (RS485 Signal)
Pin 4: D- (RS485 Signal)
Wire Link
Connect the same pin numbers as shown below.
Main
Controller
Main Controller
PC LIMK
The Main Controller must support RS485 to control the Dynamixel. A proprietary
Controller may be utilised but the Cycloid-M2 board is recommended.
A PC can be used to control the Dynamixel via the Cycloid-M2 Board.
RS485
Level
RS232
Level
Cycloid-M2
PC
Dynamixels
Stand Alone
The Cycloid-M2 Board can be directly mounted on the robots.
6
English Translation by: Tribotix Pty Ltd
Download from Www.Somanuals.com. All Manuals Search And Download.
DYNAMIXEL
DX-116
Cycloid-M2 Board on Robot
Please refer to the Cycloid-M2 Board manual for more details.
Connection to UART To control the Dynamixel, the main Controller needs to convert the signals to
RS485. The recommended schematic configuration is as follows:-
Signal DIRECTION485 determines the data direction as follows:-
If DIRECTION485 is High: the signal TxD is output as D+,D-
If DIRECTION485 is Low: signal D+,D- is input as RxD
7
English Translation by: Tribotix Pty Ltd
Download from Www.Somanuals.com. All Manuals Search And Download.
DYNAMIXEL
DX-116
RS485
A multi-dropped RS485 (IEEE485) network is established from the main
controller. Data Packets are then issued through this single portal.
Main
Controller
[RS485 Multi Drop Link]
Please note that caution should be applied when connecting the Dynamixel units to ensure that the pin
assignments are correct. Always check the current consumption. The standby current consumption of a
Dynamixel unit should be less than 50mA.
Connection Status
Inspection
When power is first applied the Dynamixel LED will blink twice to confirm its
healthy status.
If the above operation was not successful, then check the connector pin
assignment and the voltage/current limit of the power supply.
8
English Translation by: Tribotix Pty Ltd
Download from Www.Somanuals.com. All Manuals Search And Download.
DYNAMIXEL
DX-116
3. Communication Protocol
3-1. Communication Overview
Packet
The Main Controller communicates with the Dynamixel by sending and receiving
data packets. There are two types of packets, the Instruction Packet (Main
Controller to Dynamixel) and the Status Packet (Dynamixel to Main Controller)
Instruction Packet
Main
Controller
Status Packet
Communication
For the system connection below, if the main controller sends an instruction
packet with the ID set to N, only the Dynamixel with this ID value will return its
respective status packet and perform the required instruction.
Instruction Packet(ID=N)
Main
Controller
ID=0
ID=1
ID=N
Status Packet(ID=N)
Unique ID
Communication problems will arise if multiple Dynamixel's have the same ID
value. This will cause multiple packets to be sent simultaneously resulting in
packet collisions. It is imperative that ID values are unique within each data
network.
Protocol
The Asynchronous Serial Communication word consists of 8 bits, 1 Stop bit and
no parity.
9
English Translation by: Tribotix Pty Ltd
Download from Www.Somanuals.com. All Manuals Search And Download.
DYNAMIXEL
DX-116
3-2. Instruction Packet
The structure of the Instruction Packet is as follows:
Instruction Packet
OXFF 0XFF ID LENGTH INSTRUCTION PARAMETER1 …PARAMETER N CHECK
SUM
The packet byte definitions are as follows:-
0XFF 0XFF
ID
Two 0XFF bytes indicate the start of an incoming packet.
Unique ID of a Dynamixel. The ID can range from 0X00 to 0XFD (254 IDs are
available)
Broadcasting ID
ID 0XFE is the Broadcast ID which is assigned to all of the connected
Dynamixel’s. Status packets will not be returned with a broadcasting ID.
LENGTH
The length of the Status Packet. The value is “Parameter number (N) + 2”
The instruction for the Dynamixel to perform.
INSTRUCTION
PARAMETER0…N
CHECK SUM
Used if there is additional information to be sent other than the Instruction.
The calculation method for the ‘Check Sum’ is as follows:
Check Sum = ~( ID + Length + Instruction + Parameter1 + … Parameter N )
If the calculated value is bigger than 255, the lower byte becomes the checksum.
~ represents the Not or complement operation
3-3. Status Packet
The Status Packet is the response packet from the Dynamixel to the Main
Controller after receiving an instruction packet. The structure of Status Packet
is as follows:-
10
English Translation by: Tribotix Pty Ltd
Download from Www.Somanuals.com. All Manuals Search And Download.
DYNAMIXEL
DX-116
OXFF 0XFF ID LENGTH ERROR PARAMETER1 PARAMETER2…PARAMETER N
CHECK SUM
The meaning of each byte within the packet is as follows:-
Two 0XFF bytes indicate the start of a packet
0XFF 0XFF
ID
ID of the Dynamixel which is returning the packet.
LENGTH
ERROR
The length of the Status Packet. The value is “Parameter number (N) + 2”.
Dynamixel communication error flags. The meaning of each bit is as follows:
Bit
Name
0
Details
-
Bit 7
Instruction Set to 1 if an undefined instruction is given without
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Error
the reg_write instruction.
Overload
Error
Set to 1 if the specified torque can't control the
load.
Checksum
Error
Set to 1 if the checksum of the intruction packet is
incorrect
Range Error Set to 1 if the intruction is out of the usage range
Set as 1 if the internal temperature of Dynamixel is
out of the operative range as set in the control
table.
Overheating
Error
Set as 1 if the Goal Position is set outside of the
Angle Limit
Bit 1
Bit 0
range between CW Angle Limit and CCW Angle
Error
Limit.
Input Voltage Set to 1 if the voltage is out of the operative range
Error
set in the control table
PARAMETER0…N
Used when additional information is required.
CHECK SUM
Calculation method of ‘Check Sum’is as follows:
Check Sum = ~( ID + Length + Instruction + Parameter1 + … Parameter N )
If the calculated value is bigger than 255, the lower byte becomes the checksum.
~ represents the Not or complement operation
11
English Translation by: Tribotix Pty Ltd
Download from Www.Somanuals.com. All Manuals Search And Download.
DYNAMIXEL
DX-116
3-4. Control
Table
Address
0(0X00)
Item
Model Number(L)
Access
RD
Initial Value
116(0x74)
0(0x00)
?
1(0X01)
Model Number(H)
Version of Firmware
ID
RD
2(0X02)
RD
3(0X03)
RD,WR
RD,WR
RD,WR
RD,WR
RD,WR
RD,WR
RD,WR
-
1(0x01)
34(0x22)
80(0x50)
0(0x00)
0(0x00)
255(0xFF)
3(0x03)
0(0x00)
100(0x64)
60(0X3C)
190(0xBE)
255(0XFF)
3(0x03)
2(0x02)
4(0x04)
4(0x04)
0(0x00)
?
4(0X04)
Baud Rate
5(0X05)
Return Delay Time
CW Angle Limit(L)
CW Angle Limit(H)
CCW Angle Limit(L)
CCW Angle Limit(H)
(Reserved)
6(0X06)
7(0X07)
8(0X08)
9(0X09)
10(0x0A)
11(0X0B)
12(0X0C)
13(0X0D)
14(0X0E)
15(0X0F)
16(0X10)
17(0X11)
18(0X12)
19(0X13)
20(0X14)
21(0X15)
22(0X16)
23(0X17)
24(0X18)
25(0X19)
26(0X1A)
27(0X1B)
28(0X1C)
29(0X1D)
30(0X1E)
31(0X1F)
32(0X20)
33(0X21)
34(0X22)
35(0X23)
36(0X24)
37(0X25)
38(0X26)
39(0X27)
40(0X28)
41(0X29)
42(0X2A)
43(0X2B)
44(0X2C)
45(0X2D)
46[0x2E)
47[0x2F)
48[0x30)
49[0x31)
the Highest Limit Temperature
the Lowest Limit Voltage
the Highest Limit Voltage
Max Torque(L)
RD,WR
RD,WR
RD,WR
RD,WR
RD,WR
RD,WR
RD,WR
RD,WR
RD,WR
RD
EEPROM
Area
Max Torque(H)
Status Return Level
Alarm LED
Alarm Shutdown
(Reserved)
Down Calibration(L)
Down Calibration(H)
Up Calibration(L)
Up Calibration(H)
Torque Enable
RD
?
RD
?
RD
?
RD,WR
RD,WR
RD,WR
RD,WR
RD,WR
RD,WR
RD,WR
RD,WR
RD,WR
RD,WR
RD,WR
RD,WR
RD
0(0x00)
0(0x00)
0(0x00)
0(0x00)
32(0x20)
32(0x20)
[Addr36]value
[Addr37]value
0
LED
CW Compliance Margin
CCW Compliance Margin
CW Compliance Slope
CCW Compliance Slope
Goal Position(L)
Goal Position(H)
Moving Speed(L)
Moving Speed(H)
Torque Limit(L)
0
[Ad d r14] va lu e
[Ad d r15] va lu e
?
Torque Limit(H)
Present Position(L)
Present Position(H)
Present Speed(L)
Present Speed(H)
Present Load(L)
Present Load(H)
Present Voltage
Present Temperature
Registered Instruction
(Reserved)
RAM
Area
RD
?
RD
?
RD
?
RD
?
RD
?
RD
?
RD
?
RD,WR
-
0(0x00)
0(0x00)
0(0x00)
0(0x00)
32(0x20)
0(0x00)
Moving
RD
Lock
RD,WR
RD,WR
RD,WR
Punch(L)
Punch(H)
12
English Translation by: Tribotix Pty Ltd
Download from Www.Somanuals.com. All Manuals Search And Download.
DYNAMIXEL
DX-116
Control Table
The Control Table consists of data for conditions and movement of the
Dynamixel. By writing the values in the control table, you can move the
Dynamixel and detect the condition of the Dynamixel.
RAM and EEPROM
The data values for the RAM Area will be set to the default initial values on
power on. The data values for the EEPROM Area are non-volatile and will be
available next power on.
Initial Value
The Initial Value column of the control table shows the Factory Default Values
for the case of EEPROM Area Data. For the RAM Area Data, the initial value
column gives the power on data values.
Please note the following meanings for data assigned to each address in the
control table.
Address 0x00,0x01
Address 0x02
Model Number. In the case of the DX-116, the value is 0X0074(116).
Firmware Version.
Address 0x03
ID. Unique ID number to identify the Dynamixel. Different ID’s are required to
be assigned to “linked” Dynamixels.
Address 0x04
Baud Rate. Determines the Communication Speed. The Calculation method is:-
Speed(BPS) = 2000000/(Address4+1)
Data Value as per Major Baud Rate
Address4
BPS Set
1000000.0
500000.0
400000.0
250000.0
200000.0
117647.1
57142.9
19230.8
9615.4
Target BPS
1000000.0
500000.0
400000.0
250000.0
200000.0
Error
1
3
4
7
9
16
34
103
207
0.000%
0.000%
0.000%
0.000%
0.000%
115200.0 - 2.124%
57600.0 0.794%
19200.0 - 0.160%
9600.0 - 0.160%
Note
A maximum Baud Rate error of 3% is within the UART communication tolerance.
Address 0x05
Return Delay Time. The time taken after sending the Instruction Packet, to
13
English Translation by: Tribotix Pty Ltd
Download from Www.Somanuals.com. All Manuals Search And Download.
DYNAMIXEL
DX-116
receive the requested Status Packet. The delay time is given by 2uSec *
Address5 value.
Address 0x06,0x07,0x08,0x09
Operating Angle Limit. Set the operating angle to restrict the Dynamixel’s angular range. The Goal
Position needs to be within the range of:-
CW Angle Limit <= Goal Position <= CCW Angle Limit
An Angle Limit Error will occur if this relationship is not satisfied.
Address 0x0B
the Highest Limit Temperature. The upper limit of the Dynamixel’s operative
temperature. If the Dynamixel’s internal temperature is higher than this value,
an Over Heating Error Bit (Bit 2 of the Status Packet) will be set. An alarm will
be set in Address 17,18. The values are in Degrees Celsius.
Address 0x0C,0x0D the Lowest (Highest) Limit Voltage. Setting the operative upper and lower limits
of the Dynamixel’s voltages.
If the present voltage (Address42) is out of the specified range, a Voltage Range
Error bit will be set in the Status Packet and an alarm executed will be set in
Address’s 17,18. The values are 10 times the actual voltages. For example, if
the Address 12 value is 80, then the lower voltage limit is set to 8V.
Address 0x0E,0x0F, 0x22,0x23
Max Torque. The max torque output for the Dynamixel. When it is set to ‘0’,
the Dynamixel enters a Torque Free Run condition. The Max Torque (Torque
Limit) is assigned to EEPROM (Address 0X0E,0x0F) and RAM (Address
0x22,0x23) and a power on condition will copy EEPROM values to RAM. The
torque of a Dynamixel is limited by (Address0x22,0x23) of RAM.
Address 0X10
Status Return Level. To determine whether the Dynamixel will return the Status
Packet after the transmission of an Instruction Packet.
Address16
Return of Status Packet
Do not respond to any instruction
Respond only to READ_DATA instructions
Respond to all instructions
0
1
2
In the case of an instruction which uses the Broadcast ID (0XFE), regardless of
the Address 0x10 value, the Status Packet will not be returned.
14
English Translation by: Tribotix Pty Ltd
Download from Www.Somanuals.com. All Manuals Search And Download.
DYNAMIXEL
DX-116
Address 0X11
Alarm LED. When an Error occurs, if the corresponding Bit is set to 1, then the
LED blinks.
Bit
Function
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
0
If set to 1, LED blinks when Instruction Error occurs
If set to 1, LED blinks when Overload Error occurs
If set to 1, LED blinks when Checksum Error occurs
If set to 1, LED blinks when Range Error occurs
If set to 1, LED blinks when Overheating Error occurs
If set to 1, LED blinks when Angle Limit Error occurs
If set to 1, LED blinks when Input Voltage Error occurs
This function operates as the logical “OR”ing of all set bits. For example,
when the register is set to 0X05, the LED will blink when a Voltage Error
occurs or when an Overheating Error occurs. Upon returning to a normal
condition from an error state, the LED stops blinking after 2 seconds.
Address 0X12
Alarm Shutdown. When an Error occurs, if the corresponding Bit is set to a 1,
then the Dynamixel will shut down (Torque off).
Bit
Function
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
0
If set to 1, torque off when Instruction Error occurs
If set to 1, torque off when Overload Error occurs
If set to 1, torque off when Checksum Error occurs
If set to 1, torque off when Range Error occurs
If set to 1, torque off when Overheating Error occurs
If set to 1, torque off when Angle Limit Error occurs
If set to 1, torque off when Input Voltage Error occurs
This function operates as the logical “OR”ing of all set bits. However, unlike
the Alarm LED, after returning to a normal condition, it maintains a torque off
status. To remove this restriction, Torque Enable (Address0X18) is required to
be set to 1.
Address 0x14~0x17 Calibration. Data used for compensating for the differences between Robotis
products. Users cannot change this area.
15
English Translation by: Tribotix Pty Ltd
Download from Www.Somanuals.com. All Manuals Search And Download.
DYNAMIXEL
DX-116
From Address 0x18 in the RAM area.
Address 0x18
Address 0x19
Torque Enable. When power is first applied the Dynamixel enters the Torque
Free Run condition. To allow torque to be applied Address 0x18 must be set to 1.
(Torque Enabled Condition)
LED is on when set to 1 and LED is off if set to 0.
Address 0x1A~0x1D Compliance Margin and Slope. The Dynamixel controls Compliance by setting the
Margin and Slope. If used well Compliance will absorb the shocks. The following
graph demonstrates the use of Compliance values (length of A,B,C & D) relative
to Position Error and applied torque.
Goal Position
CW
E
E
CW
CCW
X axis:Position Error
CCW
Y axis:Output Torque
A
B
C
D
A : CCW Compliance Slope(Address0x1D)
B : CCW Compliance Margin(Address0x1B)
C : CW Compliance Margin(Address0x1A)
D : CW Compliance Slope (Address0x1C)
E : Punch(Address0x30)
Address 0X1E,0x1F
Goal Position. Requested Angular Position for the Dynamixel to move to. If this
is set to 0x3ff, then the goal position will be 300°.
16
English Translation by: Tribotix Pty Ltd
Download from Www.Somanuals.com. All Manuals Search And Download.
DYNAMIXEL
DX-116
150°
(Goal Position = 0x1ff)
300°
(Goal Position = 0x3ff)
0°
(Goal Position = 0)
330~360°
Invalid Angle
Address 0x20,0x21
Moving Speed. The angular speed to move to the Goal Position. If set to the
maximum values of 0x3ff, it moves at 70RPM.
Address 0x24,0x25
Address 0x26,0x27
Address 0x28,0x29
Present Position. Current position of the Dynamixel.
Present Speed. Current Speed of the Dynamixel.
Present Load. Load size on the Dynamixel in action. Bit 10 is the direction of the
load.
BIT
15~11
0
10
9
8
7
6
5
4
3
2
1
0
Value
Load Direction
Load Value
Load Direction = 0 : CCW Load, Load Direction = 1: CW Load
Address 0x2A
Present Voltage. The voltage applied to the Dynamixel. The value is 10 times the
actual voltage. For example, 10V is read as 100(0x64).
Address 0x2B
Address 0x2C
Present Temperature. Current internal Dynamixel temperature (Degrees Celsius).
Registered Instruction. Set to 1 when a REG_WRITE instruction is made. After an
Action instruction and an action it is reset to 0.
Address 0x2E
Moving. Set to 1 when the Dynamixel moves by its own power.
17
English Translation by: Tribotix Pty Ltd
Download from Www.Somanuals.com. All Manuals Search And Download.
DYNAMIXEL
DX-116
Address 0x2F
Address 0x30,0x31
Range
Lock. If set to 1, only Address 0x18 ~ Address 0x23 can be written to. Other
areas are not permitted. Once locked, it can only be unlocked by powering down.
Punch. Minimum current being supplied to the motor during an action. The
minimum value is 0x20 and the maximum value as 0x3ff.
Each Register has an operative range. Write instructions made outside of these
ranges will return an error. The following table summarises the data range for
each register. 16 bit data registers are indicated as (L) and (H), two bytes. Each
byte of a two byte register can be written to independently.
Write
Address
Le n g t h
(bytes)
Writing Item
Min
Max
3(0X03)
4(0X04)
ID
1
1
1
2
2
1
1
1
2
1
1
1
1
1
1
1
1
1
1
2
2
2
1
1
2
0
253(0xfd)
254(0xfe)
254(0xfe)
1023(0x3ff)
1023(0x3ff)
150(0x96)
250(0xfa)
250(0xfa)
1023(0x3ff)
2
Baud Rate
0
5(0X05)
Return Delay Time
CW Angle Limit
0
6(0X06)
0
8(0X08)
CCW Angle Limit
the Highest Limit Temperature
the Lowest Limit Voltage
the Highest Limit Voltage
Max Torque
0
11(0X0B)
12(0X0C)
13(0X0D)
14(0X0E)
16(0X10)
17(0X11)
18(0X12)
19(0X13)
24(0X18)
25(0X19)
26(0X1A)
27(0X1B)
28(0X1C)
29(0X1D)
30(0X1E)
32(0X20)
34(0X22)
44(0X2C)
47(0X2F)
48(0X30)
0
50(0x32)
50(0x32)
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
Status Return Level
Alarm LED
127(0x7f)
127(0x7f)
1
Alarm Shutdown
(Reserved)
Torque Enable
1
1
LED
254(0xfe)
254(0xfe)
254(0xfe)
254(0xfe)
1023(0x3ff)
1023(0x3ff)
1023(0x3ff)
1
CW Compliance Margin
CCW Compliance Margin
CW Compliance Slope
CCW Compliance Slope
Goal Position
Moving Speed
Torque Limit
Registered Instruction
Lock
1
1023(0x3ff)
Punch
[Control Table Data Range and Length for Writing]
18
English Translation by: Tribotix Pty Ltd
Download from Www.Somanuals.com. All Manuals Search And Download.
DYNAMIXEL
DX-116
4. Instruction Set and Examples
The following Instructions are available.
Instruction
Number of
Value
Parameter
Function
Name
No action. Used to obtain a Dynamixel
Status Packet.
PING
0x01
0x02
0x03
0x04
0
2
READ_DATA Read the values in the Control Table.
WRITE_DATA Write the values to the Control Table.
Similar to WRITE_DATA, but stay in
2 ~
2 ~
2
REG_WRITE
ACTION
RESET
standby mode until the write upon the
action instruction.
Start the action registered by REG_WRITE 0x05
Change the values of the Dynamixel in the
control table back to the Factory Default
Values.
0x06
0
4-1. WRITE_DATA
Function
Write data into the control table of the Dynamixel
N+3 (Writing Data is N)
0X03
Length
Instruction
Parameter1
Parameter2
Parameter3
Parameter N+1
Start Address of the Area to write Data
1st Data to write
2nd Data to write
Nth Data to write
Example 1
Set ID of connected Dynamixel as 1
Write 1 into the Address 3 of the Control Table. The ID is transmitted using
19
English Translation by: Tribotix Pty Ltd
Download from Www.Somanuals.com. All Manuals Search And Download.
DYNAMIXEL
DX-116
Broadcasting ID (0xFE).
Instruction Packet : 0XFF 0XFF 0XFE 0X04 0X03 0X03 0X01 0XF6`
ID LENGTH INSTRUCTION PARAMETERS CHECKSUM
Because it was transmitted by Broadcast ID(0XFE), no return status packet.
4-2. READ_DATA
Function
Read data from the Control Table of Dynamixel.
Length
0X04
Instruction
Parameter1
Parameter2
0X02
Starting Address of Data to Read
length of Data to Read
Example 2
Read the internal temperature of the Dynamixel with ID=1.
Read 1 byte from the Address 0x2B values of the Control Table.
Instruction Packet : 0XFF 0XFF 0X01 0X04 0X02 0X2B 0X01 0XCC`
ID LENGTH INSTRUCTION PARAMETERS .. CHECKSUM
The returned Status Packet will be as follows.
Status Packet : 0XFF 0XFF 0X01 0X03 0X00 0X20 0XDB
ID LENGTH ERROR PARAMETER1 CHECKSUM
The value read is 0x20.The current Dynamixel’s internal temperature is
approximately 32℃ (0X20).
4-3. REG_WRITE and ACTION
REG_WRITE
20
English Translation by: Tribotix Pty Ltd
Download from Www.Somanuals.com. All Manuals Search And Download.
DYNAMIXEL
DX-116
Function
REG_WRITE instruction is similar to the WRITE_DATA instruction, but the
execution timing is different. When the Instruction Packet is received the values
are saved into the Buffer and the Write instruction is under a standby status.
The Registered Instruction register (Address 0x2C) is set to 1. After an Action
Instruction Packet is received the registered Write instruction is executed.
Length
N+3 (The number of Write Data bytes is N)
0X04
Instruction
Parameter1
Parameter2
Parameter3
Parameter N+1
Start Address for Write Data
1st Data to Write
2nd Data to Write
Nth Data to Write
ACTION
Function
Length
Execute the WRITE instruction written by REG_WRITE
0X02
0X05
NONE
Instruction
Parameter
The ACTION instruction is useful when multiple Dynamixels needs to move
simultaneously. When controlling multiple units, slight time delays occur
between the 1st unit to receive an instruction and the last one. The Dynamixel
approach fixes this problem through the use of the ACTION instruction.
Broadcasting
When sending ACTION instructions to move more than two Dynamixel units, the
Broadcast ID (0XFE) should be utilised.
4-4. PING
Function
Used to request a specific Dynamixel status packet or to check the existence of
a Dynamixel with a particular ID
Length
0X02
0X01
NONE
Instruction
Parameter
21
English Translation by: Tribotix Pty Ltd
Download from Www.Somanuals.com. All Manuals Search And Download.
DYNAMIXEL
DX-116
Example 3
To obtain the status packet of a Dynamixel with ID=1
Instruction Packet : 0XFF 0XFF 0X01 0X02 0X01 0XFB`
ID LENGTH INSTRUCTION CHECKSUM
The returned Status Packet is as follow;
Status Packet : 0XFF 0XFF 0X01 0X02 0X00 0XFC
ID LENGTH ERROR CHECKSUM
4-5. RESET
Function
Restore the condition of the Control Table of the Dynamixel back to the Factory
Default values.
0X02
Length
Instruction
Parameter
0X06
NONE
Example 4
Reset Dynamixe with ID=0
Instruction Packet : 0XFF 0XFF 0X00 0X02 0X06 0XF7`
ID LENGTH INSTRUCTION CHECKSUM
The returned Status Packet is as follows;
Status Packet : 0XFF 0XFF 0X00 0X02 0X00 0XFD
ID LENGTH ERROR CHECKSUM
Please note that after a RESET instruction, the ID of the Dynamixel is changed
to 1.
22
English Translation by: Tribotix Pty Ltd
Download from Www.Somanuals.com. All Manuals Search And Download.
DYNAMIXEL
DX-116
5. Example
Used to explain through example with the assumption that the Dynamixel has
been Reset (ID = 1, Baudrate = 57142BPS)
Example 5
Read the Model Number and Firmware Version of a Dynamixel with ID=1
Instruction Packet
Communication
Instruction = READ_DATA,
Address = 0x00, Length = 0x03
->[Dynamixel]:FF FF 01 04 02 00 03 F5 (LEN:008)
<-[Dynamixel]:FF FF 01 05 00 74 00 08 7D (LEN:009)
Status Packet Result Model Number = 116(0x74), Firmware Version = 0x08
Example 6
Change ID number of Dynamixel from 1 to 0.
Instruction Packet
Communication
Instruction = WRITE_DATA, Address = 0x03, DATA = 0x00
->[Dynamixel]:FF FF 01 04 03 03 00 F4 (LEN:008)
<-[Dynamixel]:FF FF 01 02 00 FC (LEN:006)
Status Packet Result NO ERROR
Example 7
Change Baud Rate of Dynamixel to 1M bps.
Instruction Packet
Communication
Instruction = WRITE_DATA, Address = 0x04, DATA = 0x01
->[Dynamixel]:FF FF 00 04 03 04 01 F3 (LEN:008)
<-[Dynamixel]:FF FF 00 02 00 FD (LEN:006)
Status Packet Result NO ERROR
Example 8
Reset Return Delay Time of Dynamixel with ID=0 to 4us.
A Return Delay Time Value of 1 corresponds to 2us.
Instruction Packet
Communication
Instruction = WRITE_DATA, Address = 0x05, DATA = 0x02
->[Dynamixel]:FF FF 00 04 03 05 02 F1 (LEN:008)
<-[Dynamixel]:FF FF 00 02 00 FD (LEN:006)
Status Packet Result NO ERROR
23
English Translation by: Tribotix Pty Ltd
Download from Www.Somanuals.com. All Manuals Search And Download.
DYNAMIXEL
DX-116
The best approach is to set the Return Delay Time to the minimum value the
Main Controller will allow.
Example 9
Limit the the operative angles of a Dynamixel with ID=0 to 0~150°.
If CCW Angle Limit is 0x3ff, it is 300°, therefore the values for 150°is 0x1ff.
Instruction Packet
Communication
Instruction = WRITE_DATA, Address = 0x08, DATA = 0xff, 0x01
->[Dynamixel]:FF FF 00 05 03 08 FF 01 EF (LEN:009)
<-[Dynamixel]:FF FF 00 02 00 FD (LEN:006)
Status Packet Result NO ERROR
Example 10
Reset the upper limit temperature of the Dynamixel with ID=1 to 80°.
Instruction Packet
Communication
Instruction = WRITE_DATA, Address = 0x0B, DATA = 0x50
->[Dynamixel]:FF FF 00 04 03 0B 50 9D (LEN:008)
<-[Dynamixel]:FF FF 00 02 00 FD (LEN:006)
Status Packet Result NO ERROR
Example 11
Set the operative voltage of a Dynamixel with ID=0 to 10V ~ 17V.
10V is expressed as 100(0x64) and 17V as 170(0xAA).
Instruction Packet
Communication
Instruction = WRITE_DATA, Address = 0x0C, DATA = 0x64, 0xAA
->[Dynamixel]:FF FF 00 05 03 0C 64 AA DD (LEN:009)
<-[Dynamixel]:FF FF 00 02 00 FD (LEN:006)
Status Packet Result NO ERROR
Example 12
Make the Dynamixel with ID=0 perform only 50% of the maximum torque.
Set the max torque values within the EEPROM area to 50% (0x1ff) of the
maximum value (0x3ff)
24
English Translation by: Tribotix Pty Ltd
Download from Www.Somanuals.com. All Manuals Search And Download.
DYNAMIXEL
DX-116
Instruction Packet
Communication
Instruction = WRITE_DATA, Address = 0x0E, DATA = 0xff, 0x01
->[Dynamixel]:FF FF 00 05 03 0E FF 01 E9 (LEN:009)
<-[Dynamixel]:FF FF 00 02 00 FD (LEN:006)
Status Packet Result NO ERROR
After a power off and on, you can check the effect of the changes in max torque.
Example 13
Stop the Dynamixel with ID=0 from returning a Status Packet.
Instruction = WRITE_DATA, Address = 0x10, DATA = 0x00
Instruction Packet
Communication
->[Dynamixel]:FF FF 00 04 03 10 00 E8 (LEN:008)
<-[Dynamixel]:FF FF 00 02 00 FD (LEN:006)
Status Packet Result NO ERROR
The Status Packet will not be returned for the next instruction.
Example 14
If temperature values are higher than those defined operative temperatures, set
the alarm to make the Dynamixel blink and then shut down the Dynamixel
(Torque off).
Overheating Error is Bit 2, therefore set the alarm value to 0x04.
Instruction Packet
Communication
Instruction = WRITE_DATA, Address = 0x11, DATA = 0x04, 0x04
->[Dynamixel]:FF FF 00 05 03 11 04 04 DE (LEN:009)
<-[Dynamixel]:FF FF 00 02 00 FD (LEN:006)
Status Packet Result NO ERROR
Example 15
Turn on the LED of the Dynamixel with ID=0 and enable the torque.
Instruction Packet
Communication
Instruction = WRITE_DATA, Address = 0x18, DATA = 0x01, 0x01
->[Dynamixel]:FF FF 00 05 03 18 01 01 DD (LEN:009)
<-[Dynamixel]:FF FF 00 02 00 FD (LEN:006)
Status Packet Result NO ERROR
Physical confirmation of an enabled torque can be obtained by attempting to
rotate the motor with your hand.
25
English Translation by: Tribotix Pty Ltd
Download from Www.Somanuals.com. All Manuals Search And Download.
DYNAMIXEL
DX-116
Example 16
Set the Dynamixel with ID=0 to have a Compliance Margin = 1 and Compliance
Slope=0x40
The following graph shows the Angle Error and Torque Output.
CW
Goal Position
CCW
CW
X:Angle Error
CCW
If the position is slightly deviated from the goal position, the motor will generate
a high torque to try to adjust its position to that of the goal position. The true
control method is different due to the inertia. The condition provided in the
above example can be shown in the graph below:-
CW
Goal Position
CCW
CW
Angle(Position)
Output Torque
CCW
A
B
C
D
A : CCW Compliance Slope(Address0x1D) = 0x40(Approximately 18.8°)
B : CCW Compliance Margin(Address0x1B) = 0x01 (Approximately 0.29°)
C : CW Compliance Margin(Address0x01A) = 0x01(Approximately 0.29°)
D : CW Compliance Slope(Address0x1C) = 0x40 (Approximately 18.8°)
Instruction Packet
Communication
Instruction = WRITE_DATA, Address = 0x1A, DATA = 0x01, 0x01, 0x40, 0x40
->[Dynamixel]:FF FF 00 07 03 1A 01 01 40 40 59 (LEN:011)
<-[Dynamixel]:FF FF 00 02 00 FD (LEN:006)
Status Packet Result NO ERROR
The effect of a Compliance Slope changes at the boundary of 2n (n is positive
26
English Translation by: Tribotix Pty Ltd
Download from Www.Somanuals.com. All Manuals Search And Download.
DYNAMIXEL
DX-116
number), that is, the effect of the values of Compliance between 0x11 and 0x20
are the same.
Example 17
Position Dynamixel with ID=0 at Position 180°after moving it at the speed of
35RPM.
Set Address 0x1E(Goal Position) = 0x200, Address 0x20(Moving Speed) =
0x200
Instruction Packet
Communication
Instruction = WRITE_DATA, Address = 0x1E, DATA = 0x00, 0x02, 0x00, 0x02
->[Dynamixel]:FF FF 00 07 03 1E 00 02 00 02 D3 (LEN:011)
<-[Dynamixel]:FF FF 00 02 00 FD (LEN:006)
Status Packet Result NO ERROR
Example 18
Set the position of a Dynamixel (ID=0) to an angular Position of 0°and another
Dynamixel (ID=1) to an angular Position of 300°. Make sure both Dynamixels
start at the same time.
If you use WRITE_DATA instruction, two Dynamixel can not start at the same
time, therefore use REG_WRITE and ACTION.
Instruction Packet
Communication
ID=0, Instruction = REG_WRITE, Address = 0x1E, DATA = 0x00, 0x00
ID=1, Instruction = REG_WRITE, Address = 0x1E, DATA = 0xff, 0x03
ID=0xfe(Broadcasting ID), Instruction = ACTION,
->[Dynamixel]:FF FF 00 05 04 1E 00 00 D8 (LEN:009)
<-[Dynamixel]:FF FF 00 02 00 FD (LEN:006)
->[Dynamixel]:FF FF 01 05 04 1E FF 03 D5 (LEN:009)
<-[Dynamixel]:FF FF 01 02 00 FC (LEN:006)
->[Dynamixel]:FF FF FE 02 05 FA (LEN:006)
<-[Dynamixel]:
//No return packet against broadcasting ID
Status Packet Result NO ERROR
Example 19
Prevent the Dynamixel with ID=0 from changing values other than within the
range between Address 0x18 and Address 0x23.
Set Address 0x2F(Lock) to 1.
27
English Translation by: Tribotix Pty Ltd
Download from Www.Somanuals.com. All Manuals Search And Download.
DYNAMIXEL
DX-116
Instruction Packet
Communication
Instruction = WRITE_DATA, Address = 0x2F, DATA = 0x01
->[Dynamixel]:FF FF 00 04 03 2F 01 C8 (LEN:008)
<-[Dynamixel]:FF FF 00 02 00 FD (LEN:006)
Status Packet Result
NO ERROR
If Locked, it can only be unlocked by removing power.
If trying to access other data areas whilst locked, an error will be returned.
->[Dynamixel]:FF FF 00 05 03 30 40 00 87 (LEN:009)
<-[Dynamixel]:FF FF 00 02 08 F5 (LEN:006)
Range Error
Example 20
Set the minimum punch (output) in the Dynamixel with ID=0 to 0x40.
Instruction Packet
Communication
Instruction = WRITE_DATA, Address = 0x30, DATA = 0x40, 0x00
->[Dynamixel]:FF FF 00 05 03 30 40 00 87 (LEN:009)
<-[Dynamixel]:FF FF 00 02 00 FD (LEN:006)
Status Packet Result NO ERROR
28
English Translation by: Tribotix Pty Ltd
Download from Www.Somanuals.com. All Manuals Search And Download.
DYNAMIXEL
DX-116
Appendix
RS485 Direction
The Main Controller sets the RS485 communication direction to be an input at all
times other than when specifically sending an instruction packet.
RS485 Direction Output Duration
Instruction Packet
Status Packet
Return Delay Time
Return Delay Time
The Default Value is 160us and can be changed via the Control Table at Address
0x05. The Main Controller needs to change the RS485 communication direction
after sending an instruction packet within the Return Delay time range.
485 Direction
The CPU normally indicates the UART_STATUS and the bit definitions within the
register have the following meanings:-
TXD_BUFFER_READY_BIT : Transmission DATA can be loaded into the Buffer.
Note that the SERIAL TX BUFFER is not necessarily completely empty.
TXD_SHIFT_REGISTER_EMPTY_BIT : Set when a Transmission byte has
completed its transmission.
The TXD_BUFFER_READY_BIT is used when a byte is to be transmitted via the
serial communication channel and an example is as follows:-
TxDByte(byte bData)
{
while(!TXD_BUFFER_READY_BIT); //wait until data can be loaded.
SerialTxDBuffer = bData;
//data load to TxD buffer
}
When
changing
the
RS485
Direction,
check
the
29
English Translation by: Tribotix Pty Ltd
Download from Www.Somanuals.com. All Manuals Search And Download.
DYNAMIXEL
DX-116
TXD_SHIFT_REGISTER_EMPTY_BIT.
An example program to send an Instruction packet:-
LINE 1
PORT_485_DIRECTION = TX_DIRECTION;
TxDByte(0xff);
LINE 2
LINE 3
LINE 4
LINE 5
LINE 6
LINE 7
LINE 8
LINE 9
LINE 10
TxDByte(0xff);
TxDByte(bID);
TxDByte(bLength);
TxDByte(bInstruction);
TxDByte(Parameter0); TxDByte(Parameter1); …
DisableInterrupt(); // interrupt should be disabled
TxDByte(Checksum); //last TxD
while(!TXD_SHIFT_REGISTER_EMPTY_BIT); //Wait till last data bit has been
sent
LINE 11
LINE 12
PORT_485_DIRECTION = RX_DIRECTION; //485 direction changed to RXD
EnableInterrupt(); // enable interrupt again
Please note the important lines (LINE 8 to LINE12).
Line 8 is necessary since an interrupt here may cause a delay longer than the
return delay time and corruption to the front of the status packet may occur
Byte to Byte Time
The delay time between bytes when sending the instruction packet. If the delay
time is over 100ms, then recognise it as a communication problem and wait for
header(0xff 0xff) of the packet again.
0xFF
0xFF
ID
Length
Byte To Byte Time
30
English Translation by: Tribotix Pty Ltd
Download from Www.Somanuals.com. All Manuals Search And Download.
DYNAMIXEL
DX-116
C Language Example
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <dos.h>
#include <mem.h>
#define MCS80
#include "..\..\base.h"
#include "..\lib188es.c"
#define RS485_DIRECTION_BIT 0x2000
#define RS485_TXD (SET_PORT1(RS485_DIRECTION_BIT))
#define RS485_RXD (RESET_PORT1(RS485_DIRECTION_BIT))
#define BROADCASTING_ID
#define MEMORY_SPARE
0xfe
10
Definition area
#define ADDRESS_TORQUE_ENABLE
#define ADDRESS_OPERATING_MODE
#define ADDRESS_ID
20
19
3
#define ADDRESS_GOAL_POSITION
26
#define INST_PING
#define INST_READ
#define INST_WRITE
#define INST_SET_SCHEDULE
#define INST_DO_SCHEDULE
#define INST_RESET
0x01
0x02
0x03
0x04
0x05
0x06
#define DIGITAL_MODE
0
//Global variable number
byte gbpInterruptRxBuffer[256+MEMORY_SPARE]; //485 RxD Data Buffer
byte gbRxBufferReadPointer,gbRxBufferWritePointer; //Pointers for access the gbpInterruptRxBuffer
void static interrupt far Serial0Interrupt(void);
void PrintBuffer(byte *bpPrintBuffer, byte bLength);
byte TxPacket(byte *bpTxBuffer, byte bID, byte bInstruction, byte *bpParameter, byte bParameterLength);
byte RxPacket(byte *bpRxBuffer);
Major
Function
void main(void)
{
byte bID,bPacketLength;
byte bpTxBuffer[20+MEMORY_SPARE];
byte bpRxBuffer[256+MEMORY_SPARE];
byte bpParameter[256+MEMORY_SPARE];
CLI; //Disable Interrupt
//PortInitialize();
InitPort(OUT, PDATA1, 0xe000); //Set Out(Port30,31:LED,Port29:485Direction)
InitPort(IN, PDATA1, 0x0004); //Set In(Port2:Push SW)
InitPort(NORMAL_USE, PDATA1, 0x00c0); //
RS485_RXD;
//Set 485 Direction Select Port to 0
//UartInitialize();
CPU dependent Initialize
outpw(SP0BAUD,5); //.2MBPS = 16MHz/16/5
outpw(SP1BAUD,17); //57600
outpw(SP0STS,0);
outpw(SP1STS,0);
//InterruptInitialize();
31
English Translation by: Tribotix Pty Ltd
Download from Www.Somanuals.com. All Manuals Search And Download.
DYNAMIXEL
DX-116
SetInterrupt(INUM_SERIAL0,Serial0Interrupt,INT_ENABLE|INT_RX, 7/*Priority*/);
//Memory Initialize
gbRxBufferReadPointer = gbRxBufferWritePointer = 0;
STI; //Interrupt Enable
/*
*
*
Example For Driving Dynamixel DX-116
*
*/
TxDString("\r\n\n Dynamixel Driving Sample Program");
//Set ID to 3
bpParameter[0] = ADDRESS_ID;
bpParameter[1] = 3;
bPacketLength = TxPacket(bpTxBuffer, BROADCASTING_ID, INST_WRITE, bpParameter, 2/*Length of Parameter*/);
bID = 3;
TxDString("\r\n ->[Dynamixel]: "); PrintBuffer(bpTxBuffer,bPacketLength);
bPacketLength = RxPacket(bpRxBuffer);
TxDString("\r\n <-[Dynamixel]: "); PrintBuffer(bpRxBuffer,bPacketLength);
//Set Motor Torque Enable
bpParameter[0] = ADDRESS_TORQUE_ENABLE;
bpParameter[1] = 1;
bPacketLength = TxPacket(bpTxBuffer, bID, INST_WRITE, bpParameter, 2/*Length of Parameter*/);
TxDString("\r\n ->[Dynamixel]: "); PrintBuffer(bpTxBuffer,bPacketLength);
bPacketLength = RxPacket(bpRxBuffer);
TxDString("\r\n <-[Dynamixel]: "); PrintBuffer(bpRxBuffer,bPacketLength);
//Move to Position 0x0100 <-> 0x300
while(1)
{
bpParameter[0] = ADDRESS_GOAL_POSITION;
bpParameter[1] = 0x00; bpParameter[2] = 0x01;
bPacketLength = TxPacket(bpTxBuffer, bID, INST_WRITE, bpParameter, 3/*Length of Parameter*/);
TxDString("\r\n ->[Dynamixel]: "); PrintBuffer(bpTxBuffer,bPacketLength);
bPacketLength = RxPacket(bpRxBuffer);
TxDString("\r\n <-[Dynamixel]: "); PrintBuffer(bpRxBuffer,bPacketLength);
MiliSec(1000);
bpParameter[0] = ADDRESS_GOAL_POSITION;
bpParameter[1] = 0x00; bpParameter[2] = 0x03;
bPacketLength = TxPacket(bpTxBuffer, bID, INST_WRITE, bpParameter, 3/*Length of Parameter*/);
TxDString("\r\n ->[Dynamixel]: "); PrintBuffer(bpTxBuffer,bPacketLength);
bPacketLength = RxPacket(bpRxBuffer);
TxDString("\r\n <-[Dynamixel]: "); PrintBuffer(bpRxBuffer,bPacketLength);
MiliSec(1000);
}
//while(1);
}
void static interrupt far Serial0Interrupt(void)
//Serial RxD Interrupt routine
{
STI; //Enable Interrupt
gbpInterruptRxBuffer[gbRxBufferWritePointer++] = RXD_DATA0; //Reading Arrival Data
outpw(EOI, 0x14); //End of Interrupt
}
byte RxPacket(byte *bpRxBuffer)
{
32
English Translation by: Tribotix Pty Ltd
Download from Www.Somanuals.com. All Manuals Search And Download.
DYNAMIXEL
DX-116
#define RX_TIMEOUT_COUNT2
10000L //10mSec
#define RX_TIMEOUT_COUNT1 (RX_TIMEOUT_COUNT2*10L) //1Sec
unsigned long ulCounter;
byte bCount;
ulCounter = 0;
while(gbRxBufferReadPointer == gbRxBufferWritePointer)
{
if(ulCounter++ > RX_TIMEOUT_COUNT1)
{
return 0;
}
}
bCount = 0;
for(bCount = 0; bCount < 254; bCount++) //Maximum Data Length Limit : 255
{
ulCounter = 0;
while(gbRxBufferReadPointer == gbRxBufferWritePointer)
{
if(ulCounter++ > RX_TIMEOUT_COUNT2)
{
return bCount;
}
}
bpRxBuffer[bCount] = gbpInterruptRxBuffer[gbRxBufferReadPointer++];
}
return bCount;
}
byte TxPacket(byte *bpTxBuffer, byte bID, byte bInstruction, byte *bpParameter, byte bParameterLength)
{
byte bCount,bCheckSum,bPacketLength;
bpTxBuffer[0] = 0xff;
bpTxBuffer[1] = 0xff;
bpTxBuffer[2] = bID;
bpTxBuffer[3] = bParameterLength+2; //Length(Paramter,Instruction,Checksum)
bpTxBuffer[4] = bInstruction;
for(bCount = 0; bCount < bParameterLength; bCount++)
{
bpTxBuffer[bCount+5] = bpParameter[bCount];
}
bCheckSum = 0;
bPacketLength = bParameterLength+4+2;
for(bCount = 2; bCount < bPacketLength-1; bCount++) //except 0xff,checksum
{
bCheckSum += bpTxBuffer[bCount];
}
bpTxBuffer[bCount] = ~bCheckSum; //Writing Checksum with Bit Inversion
Should wait until last data bit transmission is
completed.
RS485_TXD; //Change 485 Direction to Transmission
for(bCount = 0; bCount < bPacketLength; bCount++)
{
Note.: ‘Shift register empty’ is differ from ‘Tx
Ready’. Tx Ready just means you can load the
data to CPU UART TxD Register. There can be
several Tx Buffering registers as what kind of
CPU
TxD80(bpTxBuffer[bCount]);
}
while(!TXD_FINISH0); //Wait until TXD Shift register empty
RS485_RXD;
return(bPacketLength);
}
void PrintBuffer(byte *bpPrintBuffer, byte bLength)
{
byte bCount;
for(bCount = 0; bCount < bLength; bCount++)
33
English Translation by: Tribotix Pty Ltd
Download from Www.Somanuals.com. All Manuals Search And Download.
DYNAMIXEL
DX-116
{
TxD8Hex(bpPrintBuffer[bCount]);
TxD8(' ');
}
}
Result
Set ID to 3
Motor Torque Enable
0xFE is BROADCAST_ID, so Dynamixel does not return status packet.(First 2 Instruction Packet)
34
English Translation by: Tribotix Pty Ltd
Download from Www.Somanuals.com. All Manuals Search And Download.
DYNAMIXEL
DX-116
Connector
Company Name : Molex
Pin Number: 4
Model Number
Molex Part Number
Old Part Number
5267-04
Male
22-03-5045
50-37-5043
Female
5264-04
Temperature range : -40°C to +105°C
Contact Insertion Force-max : 14.7N (3.30 lb)
Contact Retention Force-min : 14.7N (3.30 lb)
Female Connector
Male Connector
Pin No.1
35
English Translation by: Tribotix Pty Ltd
Download from Www.Somanuals.com. All Manuals Search And Download.
DYNAMIXEL
DX-116
Dimension
Motor Curve(No reduction gear state)
36
English Translation by: Tribotix Pty Ltd
Download from Www.Somanuals.com. All Manuals Search And Download.
DYNAMIXEL
DX-116
Optional Frame Application Example
OF116H
OF116S
OF116B
Body to Body Mount
37
English Translation by: Tribotix Pty Ltd
Download from Www.Somanuals.com. All Manuals Search And Download.
DYNAMIXEL
DX-116
Full Option frame
23Axis frame full Set
15Axis frame full set
Helmet and hands plastic is not included in frame set
Cycloid M2 Board
- The Custom-Built Controller for Dynamixel
- Optional Part : Blue-tooth module, RS232 UART, and 6-button blue-tooth
remocon.
- Can be adapted multi-axis robot directly.
86
48
38
English Translation by: Tribotix Pty Ltd
Download from Www.Somanuals.com. All Manuals Search And Download.
DYNAMIXEL
DX-116
Application Example
CYCLOIDⅡ
39
English Translation by: Tribotix Pty Ltd
Download from Www.Somanuals.com. All Manuals Search And Download.
|