@@ -31,6 +31,8 @@ const uint16_t model_number_table[] PROGMEM = {
3131 MX28_2, MX64_2, MX106_2,
3232
3333 XL320,
34+ XL330_M288,
35+ XL330_M077,
3436 XL430_W250,
3537 XXL430_W250,
3638 XC430_W150, XC430_W240,
@@ -297,6 +299,36 @@ bool Dynamixel2Arduino::setBaudrate(uint8_t id, uint32_t baudrate)
297299 }
298300 break ;
299301
302+ case XL330_M288:
303+ case XL330_M077:
304+ switch (baudrate)
305+ {
306+ case 9600 :
307+ baud_idx = 0 ;
308+ break ;
309+ case 57600 :
310+ baud_idx = 1 ;
311+ break ;
312+ case 115200 :
313+ baud_idx = 2 ;
314+ break ;
315+ case 1000000 :
316+ baud_idx = 3 ;
317+ break ;
318+ case 2000000 :
319+ baud_idx = 4 ;
320+ break ;
321+ case 3000000 :
322+ baud_idx = 5 ;
323+ break ;
324+ case 4000000 :
325+ baud_idx = 6 ;
326+ break ;
327+ default :
328+ return false ;
329+ }
330+ break ;
331+
300332 case MX28_2:
301333 case MX64_2:
302334 case MX106_2:
@@ -618,6 +650,8 @@ bool Dynamixel2Arduino::setOperatingMode(uint8_t id, uint8_t mode)
618650
619651 case MX64_2:
620652 case MX106_2:
653+ case XL330_M288:
654+ case XL330_M077:
621655 case XM430_W210:
622656 case XM430_W350:
623657 case XH430_V210:
@@ -1053,6 +1087,7 @@ const ModelDependencyFuncItemAndRangeInfo_t dependency_ctable_2_0_common[] PROGM
10531087#if (ENABLE_ACTUATOR_MX28_PROTOCOL2 \
10541088 || ENABLE_ACTUATOR_MX64_PROTOCOL2 \
10551089 || ENABLE_ACTUATOR_MX106_PROTOCOL2 \
1090+ || ENABLE_ACTUATOR_XL330 \
10561091 || ENABLE_ACTUATOR_XC430 \
10571092 || ENABLE_ACTUATOR_XL430 \
10581093 || ENABLE_ACTUATOR_XM430 || ENABLE_ACTUATOR_XH430 \
@@ -1085,6 +1120,17 @@ const ModelDependencyFuncItemAndRangeInfo_t dependency_mx106_2[] PROGMEM = {
10851120 {LAST_DUMMY_FUNC, ControlTableItem::LAST_DUMMY_ITEM, UNIT_RAW, 0 , 0 , 0 }
10861121};
10871122
1123+ const ModelDependencyFuncItemAndRangeInfo_t dependency_xl330_M288_M077[] PROGMEM = {
1124+ #if (ENABLE_ACTUATOR_XL330)
1125+ {SET_CURRENT, GOAL_CURRENT, UNIT_MILLI_AMPERE, -1150 , 1150 , 1 },
1126+ {GET_CURRENT, PRESENT_CURRENT, UNIT_MILLI_AMPERE, -1150 , 1150 , 1 },
1127+
1128+ {SET_VELOCITY, GOAL_VELOCITY, UNIT_RPM, -2047 , 2047 , 0.229 },
1129+ {GET_VELOCITY, PRESENT_VELOCITY, UNIT_RPM, -2047 , 2047 , 0.229 },
1130+ #endif
1131+ {LAST_DUMMY_FUNC, ControlTableItem::LAST_DUMMY_ITEM, UNIT_RAW, 0 , 0 , 0 }
1132+ };
1133+
10881134const ModelDependencyFuncItemAndRangeInfo_t dependency_xm430_w210_w350[] PROGMEM = {
10891135#if (ENABLE_ACTUATOR_XM430)
10901136 {SET_CURRENT, GOAL_CURRENT, UNIT_MILLI_AMPERE, -1193 , 1193 , 2.69 },
@@ -1374,6 +1420,12 @@ static ItemAndRangeInfo_t getModelDependencyFuncInfo(uint16_t model_num, uint8_t
13741420 p_dep_ctable = dependency_mx106_2;
13751421 break ;
13761422
1423+ case XL330_M288:
1424+ case XL330_M077:
1425+ p_common_ctable = dependency_ctable_2_0_common;
1426+ p_dep_ctable = dependency_xl330_M288_M077;
1427+ break ;
1428+
13771429 case XM430_W210:
13781430 case XM430_W350:
13791431 p_common_ctable = dependency_ctable_2_0_common;
0 commit comments