DYNAMIXEL Protocol 1.0 vs. Protocol 2.0
"How do I know I’m sending the right command to my DYNAMIXEL?"
Many hobby servos and robotic actuators are controlled through one of two signal styles- analog and digital. Analog servos generally use a specified PWM to command the servo to move to a specific position.
DYNAMIXELs are digital servos- digital servos are commanded using a built-in microcontroller that receives and transmits packets of data.
An Instruction Packet is data that is sent to DYNAMIXEL by the user. This packet is used to control the DYNAMIXEL.
A Status Packet is data that is returned from DYNAMIXEL (i.e. sent from the servo to the user). This packet is used to get feedback from your system.
The major difference between these two protocols is the structure of their Instruction and Status Packets:
Protocol 1.0 is used with legacy DYNAMIXEL product lines- the AX-series and MX-series DYNAMIXEL servos operate with Protocol 1.0.
- Protocol 1.0 allows for an instruction set of: Ping, Read, Write, Reg Write, Action, Factory Reset, Reboot, Sync Write, and Bulk Read.
- Packet integrity is verified using a checksum method.
- Protocol 1.0 is convenient due to relatively small packet sizes and simple operation commands for controlled DYNAMIXELs.
- Further information on Protocol 1.0 such as packet structure, checksum usage and more can be found in the ROBOTIS e-Manual page for Protocol 1.0.
Protocol 1.0 Instruction Packet:
Protocol 1.0 Status Packet:
Protocol 2.0 is used with the most recently-released DYNAMIXEL series- the X-series and PRO series utilize Protocol 2.0. In addition, MX-series DYNAMIXELs may undergo firmware upgrade to utilize Protocol 2.0. Protocol 2.0 is compatible with MX-series (2.0 firmware), X-series, and P-series models.
- Protocol 2.0 includes the set of all instructions available in Protocol 1.0 and adds Sync Read and Bulk Write, which allow for more convenient control of multiple DYNAMIXELs.
- The control tables of DYNAMIXELs using Protocol 2.0 are expanded to include PID (proportional- integral- derivative) controls allowing for extremely precise and fine-tuned movements.
- Protocol 2.0 differs from 1.0 in that the checksum packet integrity verification is replaced by a CRC calculator method.
- Protocol 2.0 is ideal for applications requiring fine-tuned movements with high precision, or for applications that make use of multiple DYNAMIXELs receiving commands en masse.
- Further information on Protocol 2.0 such as packet structure, CRC calculation, and more can be found in the ROBOTIS e-Manual page for Protocol 2.0.
Protocol 2.0 Instruction Packet
Protocol 2.0 Status Packet
How does this affect sending commands or creating code for my DYNAMIXEL?
ROBOTIS offers a number of open-source programming resources including libraries for Arduino IDE, a full source-code development kit through the DYNAMIXEL SDK, and more through the official ROBOTIS GitHub.
Depending on your model of DYNAMIXEL, you will need to refer to programming examples or packet handler library resources designed for the same packet protocol as your model (1.0, or 2.0).
Can I use DYNAMXEL X-series with Protocol 1.0?
DYNAMIXEL X-series uses the Protocol 2.0 packet structure by default. However, the firmware of DYNAMIXEL X-series features a setting named “Protocol Type” which can be set to allow the model to use commands in the Protocol 1.0 structure. Remember this if you want to combine product series, or upgrade an older robot!
Can I use DYNAMIXEL MX-series with Protocol 2.0?
DYNAMIXEL MX-series uses Protocol 1.0 by default, however MX-series can be upgraded to the (2.0) versions of its firmware for use with Protocol 2.0. For more information, visit the ROBOTIS e-Manual for your model of DYNAMIXEL MX-series.
Remember: Different models of DYNAMIXELs can accept different packet instructions based on their Protocol. To use models together, make sure they accept the same communication Protocol.
For a complete chart showing models and which Protocol they support, refer to the Protocol Compatibility Table linked here!