I have an Interbotix Robotic Arm - WidowX 250 Mobile Robot Arm 6DOF.
This has 7 x XM430-W350-T Servos and 2 x XL430-W250-T Servos.
I was updating the firmware (using Dynamixel Wizard 2.0) of each dynamixel following the proper procedure by connecting one dynamixel at a time and disconnecting power before connecting/disconnecting the dynamixels.
Connection setup: U2D2 (3-pin connection) and Power Hub with the official 12V power adapter that came with the robotic arm.
I was able to update the firmware of all of them except the last one, the XL430-W250-T servo.
During the firmware update, an error was shown “Failed to reboot dynamixel” and since then I haven’t been able to detect this particular servo on any baud rate or ID or protocol (did a full scan using DW2.0). I rechecked the operation of U2D2 and the power hub with other servos and they seem to work fine.
Looking forward to some help as I am in the middle of an experimental study that requires me to make this work ASAP.
I would really appreciate any kind of help.
Did the LED on the problem XL430 stay ON all the time? If it did this meant a hardware failure that end users cannot fix on our own. Normally the LED should flash on briefly at power on and then turn itself OFF.
Also have you tried a different 3-wire cable or a different 3-pin connector on the problem DXL itself?
No, the LED wasn’t on all the time. It only flashes once when I rotate the output shaft. I am not sure about the flashing during powering up. I came home from my lab (it’s midnight here) but I can check that in 6-7 hours and get back with the update. But as far as I remember, it looks the same as other servos when I connect and disconnect power/connection cables.
And yes, I have tried different 3-pin cables with JST connectors. I have a few spare cables and I tested 3 different cables on good and bad servo. All of them work with good servos but not with this one.
I personally am inclined to think the issue = “reboot error during firmware upgrade”. Could it be that the motor lost connection during upgrade somehow? If so, how could I recover it?
It looks like that you had been very thorough and I don’t have any other ideas to offer. @Jonathon may have more ideas. Probably time to try to get a hold of another XL-430 to get going with your project for now.
Thanks @roboteer for your effort.
Update on your earlier question:
I just checked and can confirm the light on the servo turns on for around 1 second and turns off when connected to power.
That is a good sign. Can you keep trying to do firmware recovery a few more times? Windows OS still recognizes the COM port right?
I am using Linux and Windows both but can’t go through the firmware recovery. Yes, COM port is recognized on both devices.
I am stuck at the following stage:
Okay. I realized something. I went to the Packet option and sent out a broadcast ping (on ID 254) and received a no-error pingback from ID 9 - which was the ID of this servo.
But when I send the ping on ID-9, I get no response.
Is this crazy or am I crazy?
Edit: updated the photo
When this message pops up, can you unplug power to this Dynamixel at the power hub by unplugging its 3 pin cable. Do not turn power off by the big switch. Then wait for a couple seconds Lastly plug the 3-pin cable back into the power hub. At that time, DYNAMIXEL WIZARD should start the recovery process on its own. The key idea is that U2D2 should be operating normally during all this and just reset power to the Dxl only. In the past I needed to do this process 2-3 times sometimes to “wake up” the DXL.
@roboteer So basically I reach this screen, do the reconnection of DXL and if it doesn’t work - I start the firmware recovery process again, correct? Or do I just keep reconnecting the DXL?
Sorry for the confusion
You will need to restart the firmware recovery process each time.
@roboteer I got it. I tried it at least 5 times right now just the way you described it. Did not work.
However, if you saw my packet ping response above, the motor seems to be responding in some way.
When I receive the ping-back, the following packet structure is received
So I checked the structure by each frame and the data seems to be very consistent with a good servo.
Now I tried to send the reboot/factory reset frames a few times. For some time I got no response. But suddenly, during one of these desperate attempts, it rebooted. And now its working and getting detected as well.
However, the firmware won’t update now. Normal firmware update just gets stuck at the installation screen as follows: Dynamixel Init Failed
I am glad that you got some success finally. Can you just use the servo just as it is for now. Just to get your project going. Then come back to update the firmware later. If you are using Windows you should be able to update firmware via the Manager Tool too.
@roboteer thank you so much for your help. You are correct. I will proceed as it is for now.
I will close this thread. Maybe someone else can use packet instructions directly to fix - if that works as a general solution.
Hopefully, someone else can throw some light on the cause of this issue in the meantime.