ROBOTIS-GIT / emanual

Welcome to the ROBOTIS e-Manual ! The e-Manual page rendered from this repository is available for everyone. Just simply click the provided link below :)
http://emanual.robotis.com/
MIT License
154 stars 175 forks source link

Please document actual servo reboot response sequences #1698

Open JamesNewton opened 2 months ago

JamesNewton commented 2 months ago

Through experimentation, I've found that XC-330 servos follow this sequence:

  1. After receiving the reboot command, they
  2. Reply instantly with the status packet as described in https://emanual.robotis.com/docs/en/dxl/protocol2/#reboot-0x08
  3. They then refuse to reply for about 0.4 seconds while rebooting.

This period of unresponsiveness is undocumented, and may differ between servo models. The Arduino code appears to wait for 3 full seconds before attempting to talk to the servo again; is that because some servos really take that long to restart? The XL-320 servos appear to squirt garbage out on the bus while rebooting and do not respond to the reboot request at all.

Most critically, nothing at all explains the need to pause communications while the servos reboot. A simple line like "Servos will then reboot and will not respond during this time" would have saved me hours. If you can document the behavior of the different servo models, that would be excellent but some basic understanding that the reboot is not instant, despite the reply being instant, would be very helpful.