Edit on GitHub

Introduction

DYNAMIXEL Shield for Arduino MKR Series(hereafter referred to as “DYNAMIXEL Shield MKR”) is compatible with MKR series form factor Arduino boards such as MKR ZERO, MKR1000 WIFI, MKR WiFi 1010, and Portenta H7.

Arduino libraries(DYNAMIXEL2Arduino, DYNAMIXEL Shield) for DYNAMIXEL Shield MKR is provided to accelerate the development process using DYNAMIXEL on Arduino.

Please refer to DYNAMIXEL Shield Libraries section for available APIs.

WARNING

  1. This product does not contain Arduino MKR Board. Arduino Board should be purchased separately.
  2. One of three DYNAMIXEL headers is assembled on the shield for DYNAMIXEL X series (More headers for AX/MX/X series are included).
  3. Please solder included headers and parts when necessary.
  4. Some Arduino MKR shields may not fully compatible with DYNAMIXEL Shield MKR due to the pin confliction. Please refer to each product datasheet before using with DYNAMIXEL Shield MKR.

Quick Start Guide

Please use the recommended voltage source for the DYNAMIXEL.

Specifications

Item Details
VIN(DXL) Voltage1 3.5 ~ 24 [V]
Operating Temperature -10 ~ +80 [°C]
Connectors2 JST(S3B-EH), Molex(5268-03A)
Battery Connector3(SMW250-02)
Terminal Block(DG350-3.5-02P-14)
Physical Connection TTL Multidrop Bus (5V Level)
Cables
DC Jack Harness (Type A, O.D: 5.5 [mm], I.D: 2.5 [mm])
Convertible cable for XL-320
Dimensions 65 x 25 [mm]
Weight 11 [g]

1 ROBOTIS SMPS 12V 5A PS-10 is recommended as a power supply for 12V DYNAMIXEL.
2 Only one JST connector is assembled by default. Please solder included connectors when necessary.
3 The battery connector is compatible with ROBOTIS batteries LB-010 or LB-020.


DANGER
(Ignoring these warnings may cause serious injury or death)

  • Never place items containing water, flammables/open flames, or solvents near the product.
  • Never place fingers, arms, toes, and other body parts near product during operation.
  • Cease operation and remove power from the product if the product begins to emit strange odors, noises, or smoke.
  • Keep product out of reach of children.
  • Check input polarity before installing or energizing wiring or cables.


CAUTION
(Ignoring these warnings may cause mild injury or damage to the product)

  • Always comply with the product’s offical operating environment specifications including input voltage, current, and operating temperature.
  • Do not insert blades or other sharp objects during product operation.


ATTENTION
(Ignoring these warnings may cause minor injury or damage to the product)

  • Do not disassemble or modify the product.
  • Do not drop the product or apply strong impacts.
  • Do not connect or disconnect DYNAMIXEL cables while power is being supplied.

Supported DYNAMIXEL

DYNAMIXEL Shield MKR only supports TTL based DYNAMIXEL lineups.

DYNAMIXEL Series      
AX AX-12W
AX-12+/12A
AX-18F/18A
   
MX MX-12W
MX-28T/AT
MX-28T/AT(2.0)
MX-64T/AT
MX-64T/AT(2.0)
MX-106T/AT
MX-106T/AT(2.0)
XL XL-320
XL330-M077-T
XL330-M288-T
XL430-W250-T
2XL430-W250-T
 
XC XC330-T288
XC330-T181
XC330-M288
XC330-M181
XC430-W150-T
XC430-W240-T
2XC430-W250-T
XC430-T150BB-T
XC430-T240BB-T
 
XM   XM430-W210-T
XM430-W350-T
XM540-W150-T
XM540-W270-T
XH   XH430-W210-T
XH430-W350-T
XH540-W150-T
XH540-W270-T

Part Lists

The following parts are included in the package.

Layout

DYNAMIXEL Shield MKR Schematics can be downloaded in the link below.

The DYNAMIXEL Shield MKR header pinout is based on the Aruduino MKR boards.

Item Description
DYNAMIXEL TTL Port TTL DYNAMIXEL supported
VIN(DXL) External power input for DYNAMIXEL only. Cannot provide power to the ARduino MKR boards
+5V1 5V from Arduino MKR boards to supply power to DYNAMIXEL
Jumper Cap Power Source Selection between VIN(DXL) and +5V

1 Please be aware that Arduino MKR boards may limit the 5V power source for USB hardware protection.

Arduino MKR board pinout example. Please refer to each product in Arduino Products for more details.

Pin No. Pin Name Description
13 RX Hardware serial port to receive data from DYNAMIXEL
14 TX Hardware serial port to transmit data to DYNAMIXEL
21(A6) TX_EN Flow control of DYNAMIXEL data BUS
- HIGH : Transmit
- LOW : Receive

How to Connect

DYNAMIXEL Shield MKR can be mounted on or below the Arduino MKR boards.
Please check the compatibility when using multiple shields with a single Arduino MKR board.
Arduino MKR boards cannot be powered using the VIN(DXL) power source.

12V DYNAMIXEL X Series

This connection is recommended for most X series DYNAMIXEL with 12V operating voltage (except XL-320, XL330).
The USB connection from PC supplies power and serial communication to the MKR board to upload the Arduino sketch, while 12V SMPS supplies power to connceted DYNAMIXEL.

AX / MX Series DYNAMIXEL

AX and MX series use different type of Molex connector.
In order to use the original AX or MX series cable, solder the included molex connector to empty DYNAMIXEL port.
Or else, use the Robot Cable-X3P convertible.

XL330 using USB power

XL330 can run off of the 5V USB power due to its low operating voltage.
Set the power jumper to +5V side to use 5V power from the Arduino MKR board.

Please be aware that Arduino MKR boards may limit the 5V power source for USB hardware protection.

After uploading the program, 1 cell Lithium battery(3.7V) can be used to power the Arduino MKR board and XL330.

Power Select Jumper

Use VIN(DXL) from external power source(SMPS) Use +5V from Arduino MKR
When using VIN(DXL) from external power source, please be aware of the polarity of terminal block. Additional power source for Arduino MKR board will be required. When using +5V from Arduino MKR, be aware that some Arduino MKR board has a built in fuse that prevents excessive use of 5V power. Please refer to each Arduino MKR board specification.

When supplying power to DYNAMIXEL Shield MKR, take extra care for the polarity of the cable.

DYNAMIXEL Shield Libraries

  1. DYNAMIXEL2Arduino Library : GitHub Repository
  2. DYNAMIXEL Shield Library : GitHub Repository

Features

Install Library

NOTE
Make sure to install the Arduino SAMD Boards manager from Arduino IDE boards manager in order to program Arduino MKR boards.

There are three ways to add libraries to the Arduino IDE.

  1. Using the Library Manager
  2. Importing a .zip Library
  3. Manual installation

Each way is described in detail in the Arduino Official Guide, so please refer to it if necessary.
Below is an example of using the Library Manager from Arduino IDE.

Search for dynamixel shield from the Library Manager and install the latest version.

Click Install all to install the dependent library Dynamixel2Arduino.

If you have successfully installed both libraries, you’ll be able to find several examples of DynamixelShield in the examples.

Library API

DYNAMIXELShield(v0.1.0 or above)

WARNING : In order to use DYNAMIXEL Shield library(v0.1.0 or above), DYNAMIXEL2Arduino library must be installed.

Dynamixel2Arduino Class

Master Class

Dynamixel2Arduino class inherits below public functions from the Master class.

RobotisRemoteController Class

The Remote Controller class can be used with the Arduino MKR boards by enabling SoftwareSerial feature.

Examples

CAN2DYNAMIXEL

CAN2DYNAMIXEL converts CAN based DYNAMIXEL Protocol into DYNAMIXEL Protocol 2.0.

CAN shield board with MCP2515 is required and 107-Arduino-MCP2515 library can be installed via Library Manager of Arduino IDE.

Download

The example is included in the DYNAMIXEL Shield library and can be found at File > Examples > DynamixelShield > advanced > can2dynamixel from Arduino IDE.

Tested Environment

WARNING

  • This example uses 1,000,000 bps. Please configure the Baudrate of DYNAMIXEL accordingly.
  • Do not use a Baudrate higher than 1,000,000 bps as it may cause unstable data transmission.

Connection Diagram

Additional Information

The CAN Standard Protocol 2.0 used in this example is shown as below.

1 Bit 11 Bit 1 Bit 1 Bit 1 Bit 4 Bit 8 Byte 2 Byte 2 Bit 7 Bit 3 Bit
SOF ID RTR IDE r0 DLC Data CRC ACK EOF IFS

NOTE : CAN2DYNAMIXEL does not support Sync or Bulk instructions due to the limited length of Data field.

The Transmit section of IXXAT canAnalyser3 Mini software requires ID (hex) and Data (hex) while other fields are automatically generated as shown below.

RCPWM2DYNAMIXEL

RCPWM2DYNAMIXEL is the example to control DYNAMIXEL using RC controller.
The RC signal sent from the RC controller is translated into PWM signal by the RC receiver, then converted into DYNAMIXEL Protocol 2.0 by the Arduino MKR board.

The example provides a couple safety features such as Soft Start that prevents sudden movement of DYNAMIXEL when the RC receiver is powered, and Fail Safe that returns DYNAMIXEL to certain position when the power of the RC receiver is cut off.

Download

The example is included in the DYNAMIXEL Shield library and can be found from File > Examples > DynamixelShield > advanced > rc_pwm2dynamixel

Tested Environment

NOTE: The maximum number of DYNAMIXEL depends on the number of channel supported by the RC receiver and the Arduino controller.

WARNING: The default baudrate of DYNAMIXEL X series is set to 57600 bps, and the example uses 1000000 bps.
Please match the baudrate of DYNAMIXEL and the examplel code.

Connection Diagram

Wiring

The RC receiver and the DYNAMIXEL Shield MKR can be connected as below.

connection_diagram

Download

FAQ