...
POST No. 2407048
How do I recover the baudrate of AX-18A?
2018-11-02 21:26:04 brainz

Unexpectedly, with the RoboPlus, I set the baud-rate of AX-18A as 0(2M). Now I can NOT enter its control table. How do I recover the baudrate of AX-18A to 1(1M)?

2018-11-02 21:26:04
brainz
2018-11-03 10:11:12 Kurt

someone from Robotis like @Will Son can give you a more complete answer.   But might help to have additional information like your hardware setup.  Are you using something like a U2D2 or an OpenCM 9.04 or ???


If something like U2D2, I would probably try using the Dynamixel Wizard.  First I might try doing a search at 2mbs to see if I could find the servo if so, you could hopefully then just set the value back to 1...


If not, I would try using the Firmware Recovery button on Dynamizel Wizard and try to reprogram the servo.   When I have done this in the past, once in the recovery mode, I would unplug the servo and plug it back in, the servo boots up at a special speed which is detected by the recovery mode and hopefully then you can complete the recovery which puts the servo back to default settings...


If you are using something like the OpenCM 9.04 board, then I might try doing a simple app, that hopefully allows me to talk to the servo, and see if I can reset it...

Like maybe use the default read_write_ax dynamixel SDK app, change the baud to 2mbs,   and then maybe add in some code just before it tries to write torque_enable, that does something like:


#define ADDR_AX_BAUD_RATE               4                  // servo baud rate

...
  // Set Servos Baud Rate - Set to 1 as 1MBS
  dxl_comm_result = packetHandler->write1ByteTxRx(portHandler, DXL_ID, ADDR_AX_BAUD_RATE, 1, &dxl_error);
  if (dxl_comm_result != COMM_SUCCESS)
  {
    packetHandler->getTxRxResult(dxl_comm_result);
  }
  else if (dxl_error != 0)
  {
    packetHandler->getRxPacketError(dxl_error);
  }
  else
  {
    Serial.print("Dynamixel Baud Rate change successfull n");
  }

  // See if it works, first need to change Baud of port handler back to 1000000
  // Set port baudrate
  if (portHandler->setBaudRate(1000000))
  {
    Serial.print("Succeeded to change the baudrate!n");
  }
  else
  {
    Serial.print("Failed to change the baudrate!n");
    Serial.print("Press any key to terminate...n");
    return;
  }

 Hopefully it succeeds to reset your servo... 

2018-11-03 10:11:12
Kurt
2018-11-03 13:25:33 brainz

Thank Kurt.


I use U2D2, have resolved the problem of baud-rate beyond border as your method with Dynamixel Wizard.


Thanks.
2018-11-03 13:25:33
brainz
Reply
웹에디터 시작 웹 에디터 끝