- I'm using
DynamixelSDK on OpenCM9.04 with the Arduino package (I don't know how to check which version is being loaded)
- I'm using XL430-W250 & XM430-W350 servos in this project
Hello, I'm working on our arm firmware using the DynamixelSDK. I am creating a software reset function as described here:
http://emanual.robotis.com/docs/en/software/dynamixel/dynamixel_sdk/sample_code/cpp_reboot_protocol_2_0/#cpp-reboot-protocol-20
When calling this line:
dxl_comm_result = packetHandler->reboot(portHandler, intServoIDToReset, &dxl_error);
XL430-W250 servos will blink their LED, but then return a dxl_comm_result error of -3001.
If I call the line again after the error it will return a 0 indicating success.
When I call the same line to an XM430-W350 servo on the first call it will return a 0 indicating success.
For XL430-W250 servos, even though it is returning an error on the first SW reboot call, it does reboot. The servo communicates fine even though it has returned an error. I do not have to send the second call with the no-error response. So, I think this may be a bug. The bug causes a problem because it is returning an error to our firmware even though the SW reboot is working.
More information:
- We are sending these SW reboot calls in order to clear voltage/power errors. When a user plugs in the USB cable to the CM9.04 first and then after plugs a power cable to the hub the servos will have an error since the USB initially does not provide enough power.
- If a user plugs in the power cable first, then the USB to the CM9.04 second the servos will not have the error because they were powered on properly first.
- while we can inform users of best practice, having this bug fixed will allow us to create firmware that can catch the error and fix it. Users will make mistakes and the XL430-W250 should be sending a success response when being rebooted.
Thanks!
Matt
DynamixelSDKon OpenCM9.04 with the Arduino package (I don't know how to check which version is being loaded)Hello, I'm working on our arm firmware using the DynamixelSDK. I am creating a software reset function as described here:
http://emanual.robotis.com/docs/en/software/dynamixel/dynamixel_sdk/sample_code/cpp_reboot_protocol_2_0/#cpp-reboot-protocol-20
When calling this line:
dxl_comm_result = packetHandler->reboot(portHandler, intServoIDToReset, &dxl_error);
XL430-W250 servos will blink their LED, but then return a dxl_comm_result error of -3001.
If I call the line again after the error it will return a 0 indicating success.
When I call the same line to an XM430-W350 servo on the first call it will return a 0 indicating success.
For XL430-W250 servos, even though it is returning an error on the first SW reboot call, it does reboot. The servo communicates fine even though it has returned an error. I do not have to send the second call with the no-error response. So, I think this may be a bug. The bug causes a problem because it is returning an error to our firmware even though the SW reboot is working.
More information:
Thanks!
Matt