Trouble with Dynamixel Wizard 2.0

Hi,
I am using a dynamixel mx64at with 2 boards, the OpenCr, and a simple Arduino Uno wifi rev 2 with dìthe proper dynamixel shield. I implemented the PID. In order to do it, I would like to test the tuning of values with Dynamixel Wizard 2.0 ( so I can see also the profile of velocity and acceleration). My dynamixel is not found, not scanned and I don’t understand the reason. The result is “Connection failed” for every BaudRate.
What I can tell u is that sometimes, dynamixel wizard is able to scan it. For example, during this morning I scanned it only once! And only with the Open CR.
Both boards work well with the dynamixel but if I run the scan sketch they don’t find it. (I don’t understand also why I can’t read clearly in the serial monitor if I am using the Arduino, and only if I run the scan sketch…I have no problems with all the others)

Hello @DjangoTango, thanks for your questions! I can share some links that should assist:

  1. For the OpenCR1.0, to use this as an interface for ROBOTIS software it is required to upload a specific example code “usb_to_dxl”. The first half of our tutorial video here (0-1:10) shows how to upload the usb_to_dxl example code from Arduino to your OpenCR1.0.
  1. For the Arduino Uno, you may require a separate serial connection back to your computer due to the hardware limitation of the Uno’s UART which can only communicate between the Arduino Uno board and DYNAMIXEL, or between the Uno board and your PC USB port, but not both at the same time (this is why the DYNAMIXEL Shield for Uno includes the switch between “DYNAMIXEL” and “upload”). Our tutorial video here shows how you can use the DYNAMIXEL Shield for Arduino Uno with the ROBOTIS LN-101 UART-USB adapter to read data from a separate serial port on Arduino.

For more information on the DYNAMIXEL Shield for Arduino Uno, and its communication, I highly recommend reviewing our online e-Manual page for the DYNAMIXEL Shield section on serial communication here: DYNAMIXEL Shield

  1. After the above, please ensure when you are using DYNAMIXEL Wizard 2.0 that you select the correct baud rate and port for your connection device. If you are unsure which port to use, you can check Device Manager in Windows and review the options under “Ports: COM & LPT”
    Another post has more details on this topic here: How to Find the ROBOTIS U2D2 Connection in Windows (Troubleshooting / Driver Tutorial) - Quick Start - ROBOTIS

Let me know if this information helps or whether you have any additional questions!

Thank you Andrew , I didn’t try with arduino uno because I have no what I need. Anyway I just knew about the iter of OpenCR. When I turn off and then turn on nothing happens. I tried to upload the code j_current_based_position and the result is
Succeeded to init : 57600
[TxRxResult] There is no status packet!
Failed to ping
[DynamixelDriver] Failed to get the Tool
Failed to change current based position mode

Hello @DjangoTango, thank you for your response. For the DYNAMIXEL MX-series, I would recommend starting with an example such as “read_write” under which can be found under File>Preferences>OpenCR1.0>07. DYNAMIXEL SDK> protocol1.0> read_write.

I would not recommend starting with examples from DYNAMIXEL Workbench before becoming more familiar with available settings for your model of DYNAMIXEL. The j_current_based_position example is used with models that offer Current-based Position Control Mode, which is not available by default on MX-64 (but may be unlocked later with firmware upgrade).

For more information on matching examples to your model of DYNAMIXEL I might recommend our FAQ section here as well as this video from our YouTube channel.

Let me know if this helps or if you have additional questions!

Hi @Jonathon thank you for the video. It’s very interesting and I appreciate it and will be inspirated. Anyway, considering that I am not a master, I just used the same board and with the same dynamixel. The protocol was just updated to 2. I was able to use by means of Dynamixel wizard. The output of read_write is that there is no a status packet. What is the problem? Honestly I don’t understand even more because this fact was happened after this action: 1. For the OpenCR1.0, to use this as an interface for ROBOTIS software it is required to upload a specific example code “usb_to_dxl”. The first half of our tutorial video here (0-1:10) shows how to upload the usb_to_dxl example code from Arduino to your OpenCR1.0.
Can you help me, please?

Hello @DjangoTango, thank you for your response- allow me to advise below:

  1. The usb_to_dxl example is only used in order to allow the OpenCR1.0 board to be used as a connection to DYNAMIXEL Wizard 2.0 software. While using DYNAMIXEL Wizard 2.0, I recommend confirming the ID# and Baud Rate settings of your MX-64AT for your reference while programming/using Arduino examples later.
    NOTE: If you have not specifically edited your ID# and baud rate, these will be set to the default values for that servo. You can find the default values in the ROBOTIS e-Manual for the MX-64AT (2.0) here under the “initial value” column: MX-64T/R/AT/AR(2.0)

  2. If you have updated your MX-series servo to Protocol 2.0, you will need to use examples written for Protocol 2.0. The example I recommended before is for Protocol 1.0, so I would not expect that to work after you had updated the servo.

  3. For an MX-64AT which has been updated to Protocol 2.0, you will need to use the Arduino example for OpenCR1.0 which reference “Protocol 2.0”.

  4. With OpenCR1.0, one compatible Arduino example should be under available in Arduino IDE under “File> Examples> OpenCR> 0.7DynamixelSDK> protocol2.0>read_write”.
    NOTE: When using this example, you will need to check and ensure the ID# defined in the line #define DXL_ID 1 is edited to match the ID# of your servo, if your servo is using any different ID#.
    NOTE: You will also need to check that the Baud Rate defined in the line #define BAUDRATE 57600 is edited to match your servo.
    This is the reason I recommend noting your ID# and baud rate using DYNAMIXEL Wizard 2.0 earlier.

    After changing both of these, you should be able to upload and observe the example running.

Please let me know if this works. Allow me to tag our member @Yogurt_Man who may be able to make some further recommendations as well.

@DjangoTango

Hi, did you check your ID?

I tested my OpenCR Board with MX-64(2.0), and I found do issue in the example (OpenCR > 08.DynamixelWorkbench > j_Current_Based_Position)

And what my result is the following, that display the current mode is properly set from the default setting after performing the Firmware Recovery.

Seeing your serial monitor result,

Succeeded to init : 57600
[TxRxResult] There is no status packet!
Failed to ping
[DynamixelDriver] Failed to get the Tool
Failed to change current based position mode

It seems the controller fail to detect your DYNAMIXEL.

So you should check your DYNAMIXEL is normal now.

If you set it at different ID, you will fail to scan it.

Perform the Firmware Recovery and try the example again. (Make sure to set it as “2.0”)

It may be possible that your board is malfunctioning if this does not send data via data pin.

  • you are supplying 12V to DYNAMIXEL ?

Thank you both @Jonathon @Yogurt_Man . I always supplied it at 12 V. It failed again. Thank You anyway! I will ask you other questions for sure.

Hi @Jonathon and @Yogurt_Man . I bought more dynamixel mx64 at and mx 106. Using the openCr as a controller I’m trying only to update the protocol. I just did it for another dynamixel and all worked well. Right now, dynamixel wizard 2.0 and R+ manager aren’t able to find any dynamixel, even if I attach the dynamixel just paired in the past. I don’t know where can be the solution. The charger is 12 Volt output, The cable is good because it runs properly the usb_dxl standard code.
After the empty scanning, I tried to do a firmware recovery. When I arrive to the point where I have to turn off, wait and turn on the dynamixel, nothing happens.
Can you help me in some way please?

1 Like

@DjangoTango

  1. Make sure the default protocol for MX series comes with Protocol 1.0

  2. Make sure all ID is set to ‘1’ as default. If you scan multiple DYNAMIXEL at once, overlapping IDs is possibly the root cause. In this case, you need to scan it one by one.

Hi @Yogurt_Man , thank you, I did it. The dynamixel ihas 1 ID and 1.0 protocol. It works properly with arduino uno. Tts led turns on well with the opencr but it doesn’t give any output. Indeed it is not found using dynamixel wizard 2.0 even if I scan all protocol and all ID. If I run Find_dynamixel then 0 dynamixel for every BaudRate was found. Furthermore, if I run
write_ax_mx from dynamixelShield (because it is still of protocol1.0) the output was Error: Torque off failed
Error: Set operating mode failed
Error: Torque on failed once! other times no result can be seen in the serial monitor. Note that the Open Cr works well! I have no idea

@DjangoTango

I tested the usb_to_dxl code, and it seems working fine.

Test Environment

  • 1 X MX-28 (Protocol 1.0, 57600 bps, ID 1)
  • OpenCR 1.0 (usb_to_dxl uploaded)
  • 12V SMPS
  • Wizard 2.0 scan

It means, the given example code has nothing to do with the error you are going through.

Check out your DYNAMIXEL has no defection. – Perform Firmware Recovery for one DYNAMIXEL and scan again by DYNAMIXEL Wizard 2.0

Thanks,

Hey @Yogurt_Man , usb_to_dxl code works fine for me too, indeed the led turned on always. Today suddenly Find_dynamixel found my dynamixel mx64at2.0 but wizard 2.0 no. Later it didn’t find more. Then, I tried with a new dynamixel, a mx1061.0, but the find_dynamixel code didn’t find it. Is there some problem with my openCr? How can I find the problem in that case?
…and how can I perform a firmware recovery if I can’t find the dynamixel?
Thank you really

1 Like

Have you checked your cable is playing up??

@DjangoTango

What LED are you referring to? If the LED of DYNAMIXEL is referred, this is only LED when powering up, but it has nothing to do with your OpenCR defection.

If I run Find_dynamixel then 0 dynamixel for every BaudRate was found. Furthermore, if I run
write_ax_mx from dynamixelShield (because it is still of protocol1.0) the output was Error: Torque off failed
Error: Set operating mode failed

  • Make sure the OpenCR 1.0 should examples of DYNAMIXEL2Arduino library, not DynamixelShield. Otherwise, you will keep failing scanning DYNAMIXEL

usb_to_dxl code works fine for me too, indeed the led turned on always. Today suddenly Find_dynamixel found my dynamixel mx64at2.0 but wizard 2.0 no. Later it didn’t find more. Then, I tried with a new dynamixel, a mx1061.0, but the find_dynamixel code didn’t find it.

  • The symptom is very strange for me. All of sudden, you can find DYNAMIXEL, but some other time it fails. As @Out_of_the_BOTS suggests checking DYNAMIXEL cable would be worthy of trying.
    And change the port where your DYNAMIXEL is currently connected to other port and scan. * connect one DYNAMIXEL ONLY

  • Make sure that if you reset the firmware by uploading new code, the previous code will be gone. Reupload the usb_to_dxl code then you should use DYNAMIXEL Wizard 2.0.

Is there some problem with my openCr? How can I find the problem in that case?
…and how can I perform a firmware recovery if I can’t find the dynamixel?

  1. Upload Example > OpenCR > etc > usb_to_dxl.
    Then just perform Firmware Recovery. You will see the port as below and do what instruction says.

image

If fails, nothing happen. In this case, I can not verify the issue. You may want to send the products and ask ROBOTIS to investigate

Other DYNAMIXEL aside from new purchased units works with OpenCR 1.0? Let me know. I would like to know the OpenCR itself has not issue.

Thank You for the reply. I checked all and I guess that the OpenCR has some problem because:

  • the board doesn’t scan any dynamixel with Dynamixel2Arduino library;
  • The dynamixel wizard found , with OpenCr, 0 dynamixel
  • with the firmware recovery nothing happens.

All of this was made to have the protocol 2 in my new mx106, in order to connect it to a mkr shield linked to a portenta h7. Can you confirm that it could be a nice solution? I ask you because, using the same library, Dynamixel2arduino or the DynamixelShield, and connecting a dynamixel mx106 on the dedicated ttl port (the build it up) I can’t scan or use the servo. Some tips please?

Furthermore, I switched OpenCr with OpenCm904 and the Expansion board. In this case the scan code works well and I am able to find my dynamixel. This shall confirm a defect of Opencr (i really don’t know the problem). By the way I would like to update to protocol 2 the mx106, but with the openCM904, the dynamixel wizard doesn’t find again the dynamixel. Have I to use only R+manager with this new board? Can I update it by code?

I thank you like always