PDA

View Full Version : Robotis OpenCM9.04 need help.



ErikVH
11-14-2014, 11:13 AM
I have bought 1 OpenCM9.04-B board and 2 Dynamixel AX-12W actuators.

Whit the Robotis_OpenCm software I can blink a led and send USB hello message but I can't get any info from my servo ?

a_getModelNumber answer = 0
Tried all dxl.begin(x) with x = 1, 3, 4, 7, 9, 16, 34, 103, 207 in "a_getModelNumber module"

There is external power to the servo.

Even tested "Dynamixel 2.0 Baudrate -> 0: 9600, 1: 57600, 2: 115200, 3: 1Mbps " found in the a_getModelnumber ?

What can I do More ?

Erik

jwatte
11-14-2014, 11:03 PM
The AX series uses the old-style Dynamixel control library.

Which "devnum" do you use when creating the Dynamixel object? Try both 1 and 3 (I forget which one is right.)

Do you have a logic analyzer or oscilloscope? Do you see the TTL signal on the bus?

Do the servos properly power on? Do you see a blink on the LED when you apply power?
Btw: How do you apply power to the servos? The OpenCM board itself will not properly power the servos; you need some kind of hub or power injection.

Finally: Do you have a USB2AX or USB2Dynamixel? One of those is likely needed for more-involved development with the Dynamixel servos. You should be able to find the servos on the bus from a PC using that device.

tician
11-15-2014, 12:41 AM
IIRC, USART1 is the on-board 5V half-duplex TTL connectors and USART3 is a raw, 3.3V, full-duplex USART for external boards like the RS-485 and buck-converter carrier board from Robotis. It is possible to power the servos through the CM904 (two +V and two -V pins on the header), but not recommended with anything more powerful than XL servos since there are not heavy-duty traces between the power pins and the dynamixel headers.

What version of the IDE are you using?
Which sketch are you using?
Is the power supply 12V and rated at least 2A?
Did you assign different IDs to the two servos before you hooked them both up to the CM904?

ErikVH
11-15-2014, 04:25 AM
Hi,

I come from old style PIC world (18F...) first time Arduino-like system, don't know old-style Dynamixel control library how to use it Where can I learn this.

Tried this to determine baud rate, how to find-out All Id's and the correct baud rate ?

/* Dynamixel Basic Example
*/


/* Serial device defines for dxl bus */
#define DXL_BUS_SERIAL1 1 //Dynamixel on Serial1(USART1) <-OpenCM9.04


/* Dynamixel ID defines */
#define ID_NUM 1
/* Control table defines */
#define GOAL_POSITION 30


Dynamixel Dxl(DXL_BUS_SERIAL1);
int bps[] = {1, 3, 4, 7, 9, 16, 34, 103, 207};


byte i;


void setup() {
pinMode(BOARD_LED_PIN, OUTPUT);
SerialUSB.begin();
delay(1000);
SerialUSB.println(" START WAIT ...");
delay(3000);


for ( i=0; i<=8; i++){
Dxl.begin(bps[i]);
delay(1000);
toggleLED();
SerialUSB.println( Dxl.ping(ID_NUM));
if(Dxl.getResult() == COMM_RXSUCCESS){
SerialUSB.print(bps[i]);
SerialUSB.println(" bps = OK");
break;
}
else {
SerialUSB.print(bps[i]);
SerialUSB.println(" Failed");
}
}
if (BOARD_LED_PIN){
delay(1000);
toggleLED();
}
}


void loop() {
Dxl.ledOff(ID_NUM);//All Dynamixel LED off
delay(1000);
Dxl.ledOn(ID_NUM);
}

Power to the servos applied directly to the servo don't know this the right method when I connect the power to the servo his led blinks but the power led from the OpenCM boards goes also on ? Has long I don't try to move the servos does it need 12V ?

I try to find an oscilloscope to see TTL signal.


Don't have USB2AX or 2Dynamixel can I find them in Europe ?

I am using Robotis OpenCM v1.02 has IDE

Only have one servo connected

Hope this helps to clarify my problem.

Regards
Erik

jwatte
11-15-2014, 11:22 PM
Yes, if you provide power to the servos through the power wire, that will also power the OpenCM 9.04 board. USB is not necessary in that case (except for communication and programming if you need it.)

Using the Dynamixel library is fine, as long as you don't set it to "new" (DXL 2.0) mode.

The only three baud rates you need to worry about are 1,000,000 bps (value 1,) 57,600 bps (value 34) and perhaps 9600 bps (value 207) -- and even so, 9600 is unlikely to be used by any of the servos today. (If you bought the servos from some other user, they may have been reconfigured to something else, though.)

There is a sketch that you can use to look for a servo, and configure it. Hook up only one servo, and run this sketch (it's in the templates-and-examples menu IIRC) to look for the first servo, and set it to some ID. Then do the same for the second servo, and set it to another ID. You can also set the baud rate (I'd recommend 1,000,000 bps.)

ErikVH
11-19-2014, 08:46 AM
Hi,
Can't make it work with OpenCM9.

Have purchased an usb2dynamixel.

Have connected my MX-12W and AX-12W separately with power (12V dc) and the usb2dynamixel set to TTL communication and run the dynamixel wizard in RoboPlus v 1.1.3.0

When power is applied to the servo-led comes on.
While searching for servos (Basic Search or All Search) the RX/TX led flickers on the usb2dynamixel.

Can't find any of the 2 servos ??

My first experience with Dynamixel servos is very disappointing !

I am running on Windows 8.1 ?

I am planning to do the same on Windows Vista.

In the meantime I hope somebody can help me out.

Is it possible that I have received 2 defect servos ????
What am I doing wrong ???

What can I do more ???

The AX-12W comes from SARL Génération Robots
The MX-12W from Trossen Robotics

jwatte
11-19-2014, 10:25 AM
What am I doing wrong ???


Have you tried when connecting ONLY ONE SERVO?

Can you follow the "firmware recovery" steps for one servo?

If the servo doesn't respond when it's the only servo connected, and firmware recovery doesn't work, then the buffer circuit is likely broken. The most common cause for this is either hooking up power with wrong polarity at some point, or operating the servo with excessive EMI on the TTL bus. If the servos are still under warranty, you may be able to get the PCB replaced in the servos if the buffer circuit is broken.