Dynamixel Tutorial – XL 430 introduction

This entry was posted in Robotics tutorials and tagged , , on by .

The DYNAMIXEL X series is a new range of inexpensive high performance servo motors. The XL series has the same mechanical structure as the XM430 and XH430, and it’s compatible with the latter.

These servo motors directly embark their network card which allows the communication with the other servos motors as well as with the controller. This makes it easy to connect multiple motors and communicate with each one.

Here is a table which explains the reference number of the servomotors.

Table explaining the reference number of the servomotors

Necessary material

To use the XL430 servomotors, you will need:

*It is possible to use the OpenCR 1.0 board, instead of the OpenCM9.04 and OpenCM 485 combination (assembly not described in this tutorial).

Necessary material for this tutorial

Dynamixel motors configuration

Straight out of the factory, the motors all have the same ID: 1. If you wish to use several motors, you will need to assign to each one of them a different ID. You will have the possibility to adjust and consult numerous others parameters, but ID assignment is essential.

Assembly

For this stage, the OpenCM 9.04 board is not necessary.

The wiring should be realised according to the pictures below, namely:

  • Connect the power supply to the OpenCM 485 (on the jack plug (1) with the SMPS charger, or on the connector (3) with the LBS-10 battery)
  • Connect the OpenCM 485 to the first XL430 servo with the robotics cable (convertible) supplied with the U2D2 Dynamixel connector
  • Connect the XL430 servos to each other with their cables (optional)
  • Connect the last servo of the string to the U2D2 connector with the cable supplied with the servo
  • Connect the U2D2 connector to the computer via the USB cable supplied

Wiring of the OpenCM9.04 and the Dynamixel servos

Wiring of the OpenCM9.04 and the Dynamixel servos

Setup

Download and install the Roboplus software, proposed by Robotis.

Launch the R+ Launcher application, then the R+ Manager 2.0 which will permit to configure the motors. In the next menu, select Dynamixel X and click the center at the bottom center to confirm.

Click “Update and test”, then click “Next”. In the next stage, select the dongle port (in our example, it is the COM7) and launch the scan.

Roboplus interface screen 1

Select the baud rate (by default the motors are in 57600bps). If some motors are find, they will be displayed.

Click “Next” to access the last stage, being the motors management:

Roboplus screen

You will have to modify the box named “ID” (address 7) to modify the motor’s ID and thus avoid conflicts on the network.

Numerous other motors parameters can be consulted and modified. You can find each data on this page.

In order to learn how to use your motors, we recommend you to browse the different registers.

Programming

Assembly :

For this stage, the U2D2 connector is not necessary.

Start by welding the pins below the CM9.04 so you can connect it on the CM 485 board. You will need to pay attention to the orientation of the CM9.04 before connecting it, it’s indicated on the CM 485.

Wiring of the OpenCM 9.04 and OpenCM 485

Then, realise the following connections:

  • Connect the power supply to the OpenCM 485 (on the jack plug (1) with the SMPS charger, or on the connector (3) with the LBS-10 battery)
  • Connect the OpenCM 485 to the first XL430 servo with the robotics cable (convertible) supplied with the U2D2 Dynamixel connector
  • Connect the XL430 servos to each other with their cables (optional)
  • Connect the last servo of the string to the U2D2 connector with the cable supplied with the servo
  • Connect the OpenCM 9.04 board to the computer via the USB cable supplied

Dynamixel servomotrs wiring

Programming with Arduino

If it is your first time programming Dynamixel servomotors with Arduino, you will need to download the Arduino IDE and add the OpenCM9.04 in the board manager, following the procedure described in this page (go to the “8.3.1.5-Porting the OpenCM9.04 board to Arduino IDE” section).

To ensure the good installation of the software and hardware, you can use this code to switch the LEDs of the OpenCM 485 board on. Once the software uploaded, click one of the buttons of the OpenCM 485 to switch the LEDs on.

Sometimes you may not be able to upload the program. In this case, switch off the electrical circuit and reconnect the power supply while pushing the user button of the OpenCM9.04 board.

As mentioned previously, the consultation of the registers and functions during the configuration phase will allow to know the various possible actions on the motors (temperature recovery, position, speed, give a position, or a speed, etc..)

This example code is used to move a servomotor from a position “A” to a position “B”. If this code does not work, remember to check that the ID in the code is the same as the one of your motor.

We use the library “DynamixelWorkbench.h” which was installed during the stage of adding the board to the Arduino environment. Here is a table of the basic functions, to have all the functions you can refer to this library.

Function/Functionality table

Additional resources: