POST No. 2407435
Dynamixel found on DynamixelWizard but not on arduino IDE
2019-06-05 02:24:48 mmaisonneuve3


I have an issue with my XL-320 servos connected to the open CM 9.04 board. In fact I am using on of the example programs Model-scan on arduino to find the dynamixels and it returns 0. 

When I update the firmware on the boardand then use dynamixel wizard, I find the motors. However, when after using the arduino program even the dynamixel wizard doesn't find the motors anymore.

Could you help me please ?


2019-06-05 02:24:48
2019-06-05 06:19:47 Kurt Eckhardt

Again normal caveats that @willson can answer a lot better than I can.

But sounds like two things here.

a) If you program the OpenCM9.04 with an Arduino program, it.  Then afterwards it can not talk to the servos using Dynamixel Manager.  At this point you would need to reprogram the OpenCM 9.04 with the default firmware.  I typically use the R+ Manager Version 2 to do this.  You would then maybe to go into the update/test portion of the program and configure to use the right buss and baud rates.

b)  Which Arduino example app are you using?  Is it a DynamixelSDK or DynamixelWorkbench example?   I am assuming work bench a_Model_Scan ?

I believe that it is currently by default configured to use the OpenCM RS485 expansion board.

#include <DynamixelWorkbench.h>

#if defined(__OPENCM904__)
  #define DEVICE_NAME "3" //Dynamixel on Serial3(USART3)  <-OpenCM 485EXP
#elif defined(__OPENCR__)
  #define DEVICE_NAME ""

#define BAUDRATE  1000000

To use the built in Servo connectors, you need to change the line: #define DEVICE_NAME "3" //Dynamixel on Serial3(USART3)  <-OpenCM 485EXP

To: #define DEVICE_NAME "1"

I believe the BAUDRATE is correct for XL320.  So hopefully just that one change should allow you to see the servos

2019-06-05 09:30:42 willson
Thank you for answering on this, Kurt!
I think we should append more information on eManual about Arduino sketch vs default firmware.
Have a great day :)
2019-06-05 09:30:42
2019-06-05 06:19:47
웹에디터 시작 웹 에디터 끝