Configure a pair of different Dynamixels for a tank

I am rebuilding a Turtlebot3 to be a caterpillar (tank) and bought 2 new Dynamixels. I was told they would be compatible, if set to velocity mode.
XL430-W250-T are from the turtlebot
XC430-W240-T are new
Do all the other settings need to match?
Should I run the turtlebot3_setup_motor on the new ones?
I know to give them unique IDs. I was going to set their secondary IDs to operate in sync as pairs, and change the OpenCR to send messages to the secondary IDs.

1 Like

Hi @Meldor, thanks for your question. As far as I’m aware, you will need to have the DYNAMIXELs set to the same Operating Mode (which for TurtleBot3 should be Velocity Control Mode).
The turtlebot3_setup_motor example should set the DYNAMIXELs to Velocity Control Mode but would also change the ID numbers to the same as your existing DYNAMIXELs- it might be easier to use your OpenCR1.0 to change the settings using Dynamixel Wizard 2.0 software as mentioned in your earlier thread here: Configuring Dynamixel with OpenCR

Regarding the specific control recommendations for using the additional DYNAMIXELs, allow me to tag some members from our page who can provide some additional guidance related to TurtleBot3.
@Tech_Support & @willson, are there any suggestions you can share?

1 Like

Hi @Meldor

Do you mean you are combining XC/XL 430 for the tank application?

As both XC and XL430 series are DYNAMIXEL Protocol 2.0 based DYNAMIXEL. I am pretty sure that they are compatible if considering merely “wiring” or “communication” only. But in this case, how do you get them the same velocity as they have different RPM.

#2 As far as I know, you can use the turtlebot3_setup_motor code to make the motor configuration for turtlebot3_tank.

For more details about the setting, see turtlebot3_tank_motor_driver.hby going Example > Turtlebot3 > turtlebot3_friends > turtlebot3_tank.

#3 What’s the main purpose of using Secondary ID?

In ‘velocity mode’ they should have the same RPM.
If I program them in pairs with the secondary ID, sending a single command to the left or right side should get them to operate in sync with each other.
In updating the firmware on one of the old ones, I found that it reset the operating mode from velocity to position control, but did not change the baud rate back to the default. I’m not sure if the ‘setup_motor’ assumes the Dynamixel is at the default settings for the control table, and just setting the parameters that need to be changed.
I bought the XC version because they were out of stock on the XL at the time, and if I change the configuration I want the stronger Dynamixels.
My main concern is whether I should change the rest of the control table of the XC to match the XL servos. I tend to overanalyze things, so maybe I should run setup_motor, then redo the IDs, and worry about it if I have a problem.

1 Like


As far as I know, you do not have to do anything further when doing setup_motor example, as it basically helps the DYNAMIXEL set, automatically, its own configuration corresponding to the TurtleBot3’s original config.

So, go for it.