DRIVE MODE Time-based Profile in position control

Use the following template to help create your post:

  1. State the model of servo, or ROBOTIS edutainment kit, you are using.

  2. Specify which software you are using. Tag your post with the relevant software (or create a tag). (Note: “R+” is written in tags as “Rplus”)
    Dynamixel2Arduino

  3. Describe your control environment. This includes the controller or interface, operating system (and version #) of your computer, and any power source you are using.
    OpenRB-150 + XL330-M288T Servo

  4. For programming posts, state any libraries or example code you are using.

The following instruction does not have effect on changing drive mode to time-based profile:

_dxl->writeControlTableItem(DRIVE_MODE,_id,_dxl->readControlTableItem(DRIVE_MODE,_id)|0x04);

begin “_dxl” a pointer to a Dynamixel2Arduino object and “id” the servo ID.

Is there a reason for you to use such a complex argument
_dxl->readControlTableItem(DRIVE_MODE,_id)|0x04 for writeControlTableItem() whereas just 0x04 would do the job?

You did not show any other code, so I am just guessing here:

  1. DRIVE_MODE is in the EEPROM area, so torqueOff() needs to be used before setting DRIVE_MODE. Then use torqueOn() to save this setting in EEPROM.

  2. Furthermore have you set Profile Acceleration and Profile Velocity to proper Time-Control Values that you need/want?