From a855570097e6233b23dd42341d02c64f3ccc9267 Mon Sep 17 00:00:00 2001 From: charlie8612 Date: Tue, 28 Jul 2026 20:27:48 +0800 Subject: [PATCH] feat(motors): add XH540-W150, XC330-T288, XC330-T181 to Dynamixel tables (#3815) Register three X-series Dynamixel models so they can be driven by DynamixelMotorsBus: XH540-W150 (model 1110), XC330-T288 (1220) and XC330-T181 (1210). All are standard Protocol 2.0 X-series motors that share the existing X_SERIES control/baudrate/encoding tables and 4096 resolution; only the model number and operating-mode list are model-specific. Values verified against the ROBOTIS e-manual. These motors are used by the ROBOTIS OMY-L100 arm, among others. Co-authored-by: Steven Palma --- src/lerobot/motors/dynamixel/tables.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/lerobot/motors/dynamixel/tables.py b/src/lerobot/motors/dynamixel/tables.py index 5417d8cee..0bdcf3861 100644 --- a/src/lerobot/motors/dynamixel/tables.py +++ b/src/lerobot/motors/dynamixel/tables.py @@ -122,6 +122,9 @@ MODEL_ENCODING_TABLE = { "xm430-w350": X_SERIES_ENCODINGS_TABLE, "xm540-w270": X_SERIES_ENCODINGS_TABLE, "xc430-w150": X_SERIES_ENCODINGS_TABLE, + "xh540-w150": X_SERIES_ENCODINGS_TABLE, + "xc330-t288": X_SERIES_ENCODINGS_TABLE, + "xc330-t181": X_SERIES_ENCODINGS_TABLE, } # {model: model_resolution} @@ -134,6 +137,9 @@ MODEL_RESOLUTION = { "xm430-w350": 4096, "xm540-w270": 4096, "xc430-w150": 4096, + "xh540-w150": 4096, + "xc330-t288": 4096, + "xc330-t181": 4096, } # {model: model_number} @@ -145,6 +151,9 @@ MODEL_NUMBER_TABLE = { "xm430-w350": 1020, "xm540-w270": 1120, "xc430-w150": 1070, + "xh540-w150": 1110, + "xc330-t288": 1220, + "xc330-t181": 1210, } # {model: available_operating_modes} @@ -156,6 +165,9 @@ MODEL_OPERATING_MODES = { "xm430-w350": [0, 1, 3, 4, 5, 16], "xm540-w270": [0, 1, 3, 4, 5, 16], "xc430-w150": [1, 3, 4, 16], + "xh540-w150": [0, 1, 3, 4, 5, 16], + "xc330-t288": [0, 1, 3, 4, 5, 16], + "xc330-t181": [0, 1, 3, 4, 5, 16], } MODEL_CONTROL_TABLE = { @@ -166,6 +178,9 @@ MODEL_CONTROL_TABLE = { "xm430-w350": X_SERIES_CONTROL_TABLE, "xm540-w270": X_SERIES_CONTROL_TABLE, "xc430-w150": X_SERIES_CONTROL_TABLE, + "xh540-w150": X_SERIES_CONTROL_TABLE, + "xc330-t288": X_SERIES_CONTROL_TABLE, + "xc330-t181": X_SERIES_CONTROL_TABLE, } MODEL_BAUDRATE_TABLE = { @@ -176,6 +191,9 @@ MODEL_BAUDRATE_TABLE = { "xm430-w350": X_SERIES_BAUDRATE_TABLE, "xm540-w270": X_SERIES_BAUDRATE_TABLE, "xc430-w150": X_SERIES_BAUDRATE_TABLE, + "xh540-w150": X_SERIES_BAUDRATE_TABLE, + "xc330-t288": X_SERIES_BAUDRATE_TABLE, + "xc330-t181": X_SERIES_BAUDRATE_TABLE, } AVAILABLE_BAUDRATES = [