Firmware Transfer Failed on new motor

Issue:

Everything was working fine with my new motor until I tried doing a firmware update from v47 to v48. That was when I first encountered a “Firmware Transfer Failed” error. After that failure I was no longer able to detect my brand new motor in DynamixelWizard2.

I’ve tried doing Firmware Recovery, and it does recognize the device (the motor LED lights up) but after reaching 100% progress bar it then errors with the same error:

Screenshot 2024-05-21 at 10.45.09 PM

Somehow, my controller board + motor combo is not allowing firmware updates, and my brand new motor cannot be recognized. What should I do here? Thank you.


DYNAMIXEL Servo:

XL430-W250-T


DYNAMIXEL Controller:

Waveshare Serial Bus Servo Driver Board


Software Interface:

DynamixelWizard2.0 on MacOS

Unfortunately for this task, sometimes I had to repeat the update procedure several times before it is successful.

I am doing the Firmware Recovery procedure, and I’ve tried it 5 times already on my bricked motor and it still keeps saying “Firmware Transfer Failed”. Is there a way to debug this in greater depth? I’m following the instructions exactly as provided (powering off and powering on).

I’m thinking it may be a problem with my controller board, but then again I am able to detect and control the motor using it. I just can’t update the firmware. Do I need some special bandwidth or setting to update/recover firmware…?

Your suspicion about it being the controller board may be right. Others have mentioned similar issues interfacing with DYNAMIXEL servos when using that waveshare serial board.

If possible I would recommend trying the firmware update using the official U2D2 or OpenRB-150 adapters.

The thing is that controller board works just fine when I use it to scan a new motor, turn on LED lights, test torque, etc… is there something special about firmware updates?

Let’s say I buy one of those official adapters. Will that be able to recover the firmware on the bricked motor I have, or do I have no choice but to send it in for repairs?

Also, if there is an error log or additional debugging info with the Firmware Transfer Failed issue, that would be awesome.

Another thing I thought of: is it possible the USB-C cable I used to connect my waveshare controller board to my MacOS is not high-bandwidth enough?

Do you guys list the hardware requirements needed to update firmware over the wire?

For example, do I need to set my motor to have a sufficient baud rate before attempting firmware updates?

  1. There isn’t anything extra special about firmware updates/restoration other than the fact that it’s a fairly large amount of data that needs to be transferred without any information loss.
  2. There’s no way for me to guarantee that there isn’t something wrong with the servo itself causing this issue, but if nothing is wrong with the servo itself using the official adapter will work.
  3. There’s no additional debug info for the firmware transfer available to the user unfortunately.
  4. I suppose that the USB-C cable could also be the cause of the issue, although even a pretty low-spec USB-C cable should be more than capable of the required transmission rate.
  5. We don’t list the specific hardware requirements for firmware updates publicly.
  6. The firmware update process puts the connected DYNAMIXEL into bootloader mode with the proper serial communication settings to facilitate the transfer.
1 Like

Did you make any progress on this? I’m facing exactly the same issue - same servo, same controller, same update.

Tried to update firmware and it fails with “firmware transfer failed”
Tried recovery which also fails.
LED stays solid red.
Turn power on and off, LED now off completely and servo can’t be detected by dynamixel.

This was a brand new motor, is there a way of sending it for repairs/refund etc.

If you bought your DXL in the USA. The RMA process is listed here

https://www.robotis.us/shipping-returns-warranty/

I made no progress on this and will go through with the RMA process. I think I will just no longer use the Waveshare board to update firmware on the DXL motors. I’m pretty sure it’s not meeting some communication bandwidth or other firmware update requirement (that’s not public).

I would hold off the RMA process for now until you get the U2D2 and try to fix your DXLs one more time, before actually going through the RMA process.

Just curious, is that a requirement for the RMA process? Buying the U2D2 would cost me time and money, and it’s not guaranteed to fix the problem. I also don’t really need updated firmware… I clicked the update button out of curiosity but I really didn’t need to… :smiley:

No it is not a requirement to buy a U2D2 before the RMA process, it is just that the RMA process requires time and money too to send your DXL back to ROBOTIS for repair. And eventually you are going to need to update your DXL firmware properly in the future somehow :grinning:

1 Like

Ah, does the RMA warranty not cover the costs of repairing the motor in this case?

You better read the details of the RMA procedure. Repairs are not always free depending on Robotis inspection of the problems.

I have exactly the same issue on the same configuration:


DYNAMIXEL Servo:

XL430-W250-T


DYNAMIXEL Controller:
Waveshare Serial Bus Servo Driver Board


Software Interface:
DynamixelWizard2.0 on MacOS


@jzxchiang @nlhnwng
Did anyone find a solution for this? Does using the U2D2 as controller works?

I have the same configuration as you and the same problem. I just bought a U2D2 to try to fix it.

Same configuration here, and was experiencing the same problem. After purchasing the U2D2, I connected the JST from the Waveshare driver to the end of the chain of the servo (for power, but it also required the data to work properly), and then connected the other JST to the U2D2 TTL. Using DynamixelWizard2.0 on MacOS, I was able to use the Firmware Recovery, but had to use firware version V46. After that, it successfully updated, and I was able to make subsequent updates to get it on the latest version. Best of luck everyone!