Connect and control Robotis Dynamixel Servos to the EZ-B v4. This open-source plugin converts the Virtual Servo ports on the EZ-B v4 (v0-v99) to control Robotis Dynamixel Servos.

+ How To Add This Control To Your Project (Click to Expand)
  1. Make sure you have the latest version of ARC installed.
  2. Select the Get button in this page to download the archive file.
  3. Double click the downloaded archive file to execute installer.
  4. The installer will add this control to ARC.
  5. Load ARC and press the Project -> Add Control button from the menu.
  6. Choose the Servo category tab.
  7. Press the Dynamixel icon to add the control to your project.


Connect and control Robotis Dynamixel Servos to any EZB, including arduino and Robotis controllers. This open-source plugin converts the Virtual servo ports with any EZ-B (v0-v99) to control Robotis Dynamixel Servos. The servos supported are XL-320, AX-12, and XL430 models. Dynamixel Servos are very different than regular hobby PWM servos. Firstly, they are considered much more professional due to their design which is specific for the use in robotics. Each Dynamixel servo contains a microprocessor. The microprocessor is told what position to move the servo into over TTL at the configured baud rate. 

EZB Cable Accessory
For Ezrobot or arduino users, this plugin requires a cable accessory to easily connect your servo to the EZ-B,
arduino or IoTiny. You can find the cable accessory in EZ-Robot's store by clicking here. If you desire to READ servo positions, the cable will need to be modified. There are instructions below for connecting the servo to READ positioning.
User-inserted image

Wiring For Read Positioning
While we recommend using the Dynamixel servo Cable, you can optionally manually wire the servo yourself to any ezb controller using this diagram. If you wish to read servo data with bi-directional communication, you must connect TX and RX ports together. On the Ezrobot ezb, it’s port D5 and D6 (UART #1) together. On the EZ-B, D5 is TX and D6 is RX. This means if you connect D5 to D6, the EZ-B will be able to read the servo positions. You may also select UART 0.

User-inserted image

There are three options for connecting the Dynamixel servos. The default option for controllers with hardware uart, such as the EZ-B v4 or Arduino Mega (not IoTiny) is UART 1 (port D5). The second option is UART #0 for the Robotis open cm 9.04 or open cr. The third option is low speed serial of any digital port for both arduino and IoTiny. To reference the pins of the EZ-B, consult the tutorial for the EZ-B by clicking here.

*Note: we highly recommend using Hardware UART on the EZ-B v4, open cr, open cm 9.04, Arduino Mega, or any controller with hardware UART only. Do not use software UART on these controllers. Only use software UART when using a controller that does not support hardware uart, such as Arduino Uno or oTiny. Also, a controller with a hardware UART is necessary when reading servo positions. Read Electrical Wiring further down in this document for bi-directional communication with EZ-B v4 for reading servo positions.

Most Dynamixel servo documentation states the operating voltage in the manual. Check the documentation for your dynamixel servo model to ensure your power source is sufficient. If you experience unusual behavior of Dynamixel servos, the first common issue is insufficient power. 

Servo ID
The Dynamixel Servos each have a unique ID. Because they are chained together through one cable, each servo must be given a unique ID. Servos with the same ID will respond to the same commands, and therefore mirror their behaviour. New Dynamixel Servos come pre-configured with the ID of 01. servo V0 relates to dynamixel ID:0, V1 is dynamixel ID:1, v2 is dynamixel ID:2, and so on...

Using this configuration utility, you can assign new ID's to servos. You may also test the servo to ensure the ID was successful.

Servo LEDs
The LEDs on the dynamixel servo can be controlled using the EZ-Script ControlCommand(). View the Cheat Sheet when editing a script to see the available ControlCommand syntax for the Dynamixel Plugin.

EZ-Script Commands
There are a number of EZ-Script commands added with this control. The commands are as follows...


Returns the temp of the specified servo

Returns the direction of load on the specified servo

Returns the load of the specified servo

Returns a ping response if the servo exists. Otherwise, returns false

Step by Step Instructions
Once you have the servo wired, and sufficient power is provided, you can use any control in EZ-Builder that uses servos. This means it will work with Auto Position, Camera, WiiMote, Joystick, and more. In this example, we'll show you how to move a dynamixel servo with a generic servo control. Before following these steps, ensure you have this plugin installed.

Step 1
Load EZ-Builder

User-inserted image

Step 2

Connect to your EZ-B v4 or IoTiny controller

User-inserted image

Step 3

Add the control by selecting the Project tab and Add Control

User-inserted image

Step 4

Navigate to the servo tab and select Dynamixel. If the plugin has been successfully installed, you will see the Dynamixel plugin in the list.

User-inserted image

Step 5

The Dyamixel control will be added to your project. Press the Config gear icon to load the configuration screen.

User-inserted image

Step 6

Enter the baudrate that matches your servo configuration. The servos have a baud rate that can be specified, or a default baudrate shipped from factory. If you need to change the baudrate of the servo, use the Dyanmixel utility. You cannot change the baudrate of the servo in ez-builder. This value is the baud rate that the EZ-B will use to communicate with the dynamixel servo. This must match the baudrate of the servo.

User-inserted image

Step 6a

Specify what port the servo is connected to on the controller. It is important to follow this recommendation. There are blue question boxes in the plugin (and throughout the EZ-Builder software) to assist you robot development. It is recommended to use the blue question marks and read the content to understand what options do.

User-inserted image

Step 7

Each dynamixel servo will have a unique ID. Enable each ID for the servos by checking the respective box. When an ID is checked, the EZ-Builder software will use the Vx (virtual servos) corresponding with that ID. For example, if you enable Dynamixel servo ID #2, the EZ-Builder V2 servo will control it. Also, specify the protocol version of the servo. Different dynamixel models will use one of the two protocols. Consult the datasheet of the dynamixel servo to know what protocol it uses -or- contact Robotis for more information on using their product. To get full resolution of the servo, also ensure you have entered the MAX resolution for that servo model. Each model has different resolutions, or it can be configured using the Dyanmixel utilities.

User-inserted image

Step 8

After you have enabled your servos, press Save

User-inserted image

Step 9

Now we will show you an example of how the servo can be moved. We will do this by using a generic horizontal servo control. Press Project -> Add Control to return to the add control menu. Navigate to servo and select Horizontal Servo. Remember, any control in EZ-Builder that uses servos can now control dynamixel servos by the respective Vx (virtual) servo ID.

User-inserted image

Step 10

Press the GEAR icon to configure the horizontal servo control.

User-inserted image

Step 11

To configure this control to use a virtual servo, select the servo to bring up the port dialog. This applies to all controls in EZ-Builder that use servos.

User-inserted image

Step 12

Select the Virtual servo ID for your dynamixel servo from the list and press Close.

User-inserted image

Step 13

Now use the sliders to specify the Min and Max position that you wish this servo to move and press Close.

User-inserted image


You can now control the dynamixel servo with the horizontal servo control. To find out more about servos, consult the learn section of this website for activities on using your ez-robot product.

Related Content

live hack
DJ's Third Hack Night

DJ's Third Hack Night

We're going to play with EZ-Builder software, build Perry's robot eyes, make Dynamixel servo cables, demonstrate how to...
live hack
DJ's 4Th Hack Event (Arduino, Bioloid, Lewansoul, And More)

DJ's 4Th Hack Event (Arduino, Bioloid, Lewansoul, And More)

In the last event, some people asked me to demonstrate how to use the LewanSoul Serial Servos. Also, we'll program the...
live hack
Dj's 5Th Live Hack Session

Dj's 5Th Live Hack Session

In this 5th live robot hacking event, I will demonstrate how to program an Arduino and connect it to EZ-Builder via USB...
Dynamixel With Ezbpi Server

Dynamixel With Ezbpi Server

I am trying to control my Dynamixel AX-12a with the EZBPi, but when I try to connect EZ-Builder it disconnects shortly...
live hack
DJ's 9Th Live Hack - Raspberry Pi + Dynamixel... Together For Ever!

DJ's 9Th Live Hack - Raspberry Pi + Dynamixel... Together...

This is a short live hack where I will demonstrate how to... 1) Install EZ-Builder on Raspberry Pi 2) Install EZBPi...
live hack
Hacking Robotis Opencm 9.04 With Bioloid

Hacking Robotis Opencm 9.04 With Bioloid

I will be hacking the Robotis OpenCM 9.04 controller with EZ-Builder using a Bioloid. We'll install the Arduino OpenCM...
live hack
The Lattepanda Robot Hack

The Lattepanda Robot Hack

I'm hacking the lattepanda to control Robotis Dynamixel servos and use a USB camera for machine vision. This will be a...
Leap Motion Combine With Ez-Builder To Control In Space

Leap Motion Combine With Ez-Builder To Control In Space

I'm trying to use LEAP Montion on EZ-builder but I'm still not successful and I posted this question in the hope that...

Using Dynamixel Servos With EZ-Builder

Hey, I was tossing it in my head for a while...but I did not ask this, because there is a solution already, and I chose to build my robot using a...
Hey there!

You have to program the dynamixel for the specified baud rate. It's not "Variable" as in it magically detects it. The dynamixel will need to be configured for the baudrate. There's a tool from robotis that does that. Otherwise, an EZ-B v4 can do it because it has variable baud rate. The opencm should also be able to adjust teh baudrate as well.
out of the box the AX12 Baudrate is set to 1000000 bps.
#41   — Edited
Well now.  The baud rate options for the AX12s (using Dynamixel Wizard) don't exactly match the options for the Tiny...however, using 115200 for the Tiny and 111111 for the Dynamixel did work.  Woohoo!   (Although now I wish I had gotten the EZB.). Now, one more question...I have been assuming that I can still daisy chain my dynamixels with the that a correct assumption?  It looked like it worked with the OpenCM demo.

And Thanks!  (I had only looked and the Roboplus Manager program...not the Dynamixel so I did not see how I could change the baud rate.  Also, the Dynamixel Wizard requires a different part to connect and I had to dig around to figure out if I had one.  :-)   )
Yeah - you can daisy chain them. They each need their own ID.
Great!  Thanks so much!
Hi DJ,

I wanted to let you know I got the OpenCM9 to work with my AX12As using something similar to the  AX/MX power hub that is equipped with a connector that is the same size as the connectors on the OpenCM9.  Then you need a specific cable to connect the power hub to the AX12.  At any rate - it is working like a champ!  Now I am going to go out and do your tutorials for learning EZ Builder.  I also plan to build a small robot to practice with the IoTiny now that I have found a baud rate on the AX12 that seems to work.    

I am so pleased to have something new to learn while I am cooped up. You do good work!  Stay well.  Vicki