XL-320? More information please!

Hi there,

I recently purchased a XL-320 but I’m really unsure of how I’m supposed to get started. There’s a bunch of videos out there that say I can just operate the XL-320 by sending out commands via the TX line of the Arduino (Leonardo or Due) but my motor isn’t responding. Please assist!!

Hi @shiroifuyuki, thanks for your question and welcome to the Community page. Let me share some information about DYNAMIXEL and XL-320 that should help you get started.

DYNAMIXELs use asynchronous serial communication- this means that the XL-320 sends and receives signals over the same data line. If it’s only connected to a TX pin, your Arduino won’t be able to receive any feedback or signals from the XL-320.

While XL-320 uses “TTL” transistor-level communication, because it is asynchronous you will need a communication circuit to provide the appropriate TX/RX switching. The online e-Manual (emanual.robotis.com) for the XL-320 shares the needed communication circuit here: https://emanual.robotis.com/docs/en/dxl/x/xl320/#ttl-communication

ROBOTIS also manufactures Arduino shields that provide the needed communication circuits here- DYNAMIXEL Shield (for Arduino Uno & “1.0” pinout) and DYNAMIXEL Shield for Arduino MKR Series.

Once you have the physical connection to your Arduino taken care of with the appropriate communication circuit, I would recommend downloading our Dynamixel2Arduino and DynamixelShield libraries.

If you are using one of our shields, you can use the DynamixelShield libraries and start with those examples. If you use your own communication circuit, it’s best to use the libraries and examples from Dynamixel2Arduino.

Some more YouTube videos showing using DYNAMIXEL with Arduino can be found through the ROBOTIS Customer Support YouTube channel here in this playlist.

Hopefully this information is of assistance- please let me know if you have other questions.

HI @RobotisCommunity,

Thank you very much for responding! I’m aware that connecting only the TX pin means I only have one way communication. I’m just wondering if there’s any examples or explanations doing it that way? I’ve also seen the videos. I’m just worried that the videos that work for the AX series won’t work with the XL series. There do seem to be some differences between the two after all…

P.S. Will buying the shield guarantee that I’ll get a response from the motor?

Nancy Wu

Hi Nancy,

I can add some additional information:

Unfortunately I don’t believe ROBOTIS produces any videos showing direct connection of the DYNAMIXEL via the TX line- if this is something you’d be interested in, the team can definitely plan for some similar content.

There are some videos around where users have operated DYNAMIXELs in a similar way: https://youtu.be/JQSY8jlgW90
However, you will want to make sure you are using programming resources created for “Protocol 2.0” DYNAMIXELs. Some of the videos and third-party examples for DYNAMIXEL AX-12A are designed for “Protocol 1.0” which use an earlier packet structure. To communicate with the XL-320, you will want to use the “Protocol 2.0” packet structure for commands.

The ROBOTIS Dynamixel2Arduino and DynamixelShield libraries (“PacketHandler”) take care of the packet structure by defining which will be used early in the example.

Using the Shield should guarantee you have the right communication circuit, however depending on your Arduino board you may be limited by the capabilities of the board. For example, due to the limited UART connection on Arduino Uno, a separate software serial connection is required to read the feedback through a serial monitor using the LN-101 serial-UART converter.

well, I am working with XL-320 motors and I want to command them using arduino mega plus the dynamixelshield and I would like to know how could I command them in a synchronous way.
in other word, moving at the same time with the same speed.
is there any function that could do that for me ?
PS the sync_read_write_raw example is not working with XL 320.

PS sync_read_write_raw example is an advanced example in the dynamixelshield library.
and it is said that this example ensure the synchronization of tow dynamixel ???
we need more information please…


For the DYNAMIXEL XL-320, I would recommend getting familiar first with the basic examples for the DYNAMIXEL Shield (such as position_mode and maybe velocity_mode under “basic”)- have you had the opportunity to try other example codes?

Also, it looks like the sync_read_write_raw example uses input from the Serial Monitor, which you will need to have connected using LN-101 or another method:

This topic is different enough it might be good to make a separate Topic post also.