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:
- 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.
- 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
- 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)
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 @Andrew 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:
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)
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.
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”.
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 1is 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 57600is 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.
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 ?