DAMIAO DM-S2325-1EC V1.0 Motor Instruction Manual
DAMIAO DM-S2325 Motor User Guide
Safety Precautions
- Operate the motor strictly within the specified environmental conditions and maximum winding temperature limits. Failure to do so may result in permanent damage.
- Prevent foreign objects from entering the rotor. Otherwise, abnormal operation may occur.
- Inspect all components before use. Do not operate the motor if any components are missing, wom, or damaged.
- Ensure correct wiring and proper, secure motor installation.
- Do not touch the rotating or energized parts during operation to avoid injury. High torque operation may generate heat. Avoid contact to prevent burns.
- Do not disassemble the motor. Unauthorized disassembly may affect control accuracy or cause malfunction.
- Do not apply force to the motor’s three-phase wires or the 4-pin cable outlet, as this may cause permanent and irreversible damage to the product.
- If the motor operates continuously under load (rated or above), it is recommended to replace the lubricant grease every seven hours to prevent gear wear on the motor side due to grease degradation.
Product Features
- Intelligent driver design with plug-and-play capability. No recalibration or parameter tuning is required after motor replacement.
- Supports firmware upgrades.
- Supports PC-based visual parameter configuration, enabling easy setup through simple adjustments.
- Supports CAN FD communication with a maximum baud rate of up to 5 Mbps.
- Provides feedback of motor speed, position, torque, motor temperature, and other information via the CAN bus.
- Equipped with dual temperature protection functions.
- High speed and high torque performance.
- Supports flexible switching among multiple control modes.
Packing List

Category | Items |
Motor Kit | 1. Driver ×1
2. Geared Motor ×1
3. XT30 Power Cable (both ends, 200 mm) ×1
4. 3-Pin Serial Cable (opposite ends, 300 mm) ×1
5. 2-Pin CAN Cable (opposite ends, 300 mm) ×1 |

Category | Items |
Motor Only | 1. Geared Motor ×1 |

Category | Items |
Driver Only | 1. Motor Rotor ×1 |
Interface & Pin Description

Interface / Pin No. | Description |
Power Interface | Connect to the power supply via an XT30-F connector cable. The rated voltage is 24V, used to supply power to the motor. |

Interface / Pin No. | Description |
Serial Port | Used for serial communication, including debugging and parameter configuration. |

Interface / Pin No. | Description |
CAN Interface | Used to control the driver. |

Interface / Pin No. | Description |
Encoder Interface | Used to connect to the DM-S2325-1EC motor via the matching 4-pin cable (opposite-end type). |

Interface / Pin No. | Description |
Three-Phase Interface | Used to connect the motor’s three-phase wires. |
Geared Motor & Driver Dimensions and Installation
Please refer to the driver’s mounting hole dimensions and positions to install the driver onto the corresponding equipment.

DM-S2325-1EC Geared Motor Dimension Drawing

DM3520-1EC Driver Dimension Drawing
Operating Modes
MIT Mode
MIT mode is designed for compatibility with the original MIT control scheme. It enables seamless switching while allowing flexible configuration of control limits (P_MAX, V_MAX, T_MAX). The driver converts received CAN data into control variables, computes the torque value, and uses it as the current reference for the current loop. The current loop then regulates accordingly to achieve the commanded torque current.

Based on MIT mode, multiple control strategies can be derived. For example:when kp = 0 and kd ≠ 0, setting v_des enables constant-speed rotation.When kp = 0 and kd = 0, setting t_ff enables direct torque output.
Notes:
- After power-on, the motor position is initialized to 0.0 rad.
- When performing position control, kd must not be set to 0; otherwise, it may cause oscillation or even loss of control.
Position-Velocity Mode
The position cascade mode adopts a three-loop cascade control structure. The position loop acts as the outermost loop, whose output serves as the reference for the velocity loop, while the velocity loop output serves as the reference for the inner current loop to regulate the actual current output.

- p_des: target position
- v_des: maximum absolute velocity during motion
When using the recommended control parameters from the tuning tool, this mode can achieve high control accuracy with relatively smooth motion, although the response time is longer. In addition to v_des, acceleration and deceleration parameters can also be configured. If additional oscillations occur during control, increasing the acceleration/deceleration values may help stabilize the system.
Notes:
- After power-on, the motor position is initialized to 0.0 rad.
- The units of p_des and v_des are rad and rad/s respectively, and both are of type float.
Velocity Mode
Velocity mode allows the motor to operate steadily at a specified speed.

Notes:
- The unit of v_des is rad/s, and the data type is float.
Control Protocol Description
Control uses the CAN standard frame format. The default baud rate is 1 Mbps, and it can be switched to different baud rates via commands (see the baud rate modification section for details).According to function, frames are divided into receive frames and feedback frames. Receive frames contain control data used to command the motor. Feedback frames are used by the motor to send status data to the upper-level controller. The feedback behavior is query-based: as long as the frame ID received by the driver matches the motor’s configured CAN ID (the lower 8 bits are checked, and the upper 3 bits are ignored), the driver will transmit the current status data onto the bus.Depending on the selected motor mode, the definition of the receive frame format and frame ID differs, while the feedback frame format and data are the same across all modes.
Feedback Frame
The feedback frame ID is set by the debugging tool (Master ID), with a default value of 0. It mainly reports the motor’s position, velocity, and torque information. The frame format is defined as follows:
Feedback Frame | D[0] | D[1] | D[2] | D[3] | D[4] | D[5] | D[6] | D[7] |
MST_ID | ID | ERR<<4 | POS[15:8] | POS[7:0] | VEL[11:4] | VEL[3:0] | T[11:8] | T[7:0] | T_MOS | T_Rotor |
Where:
- ID: indicates the controller ID and takes the lower 4 bits of CAN_ID.
- ERR: indicates the status, with corresponding types as follows:
- POS: indicates the motor position information*.
- VEL: indicates the motor velocity information*.
- T: indicates the motor torque information*.
- T_MOS: indicates the average temperature of the MOS on the driver, unit: °C.
- T_Rotor: indicates the average temperature of the internal motor windings, unit: °C.
0 — Disabled
1 — Enabled
5 — Sensor read error
6 — Motor parameter read error
8 — Overvoltage
9 — Undervoltage
A — Overcurrent
B — MOS overtemperature
C — Motor winding overtemperature
D — Communication loss
E — Overload
Position, velocity, and torque use a linear mapping relationship to convert floating-point data into signed fixed-point data. Among them, position uses 16-bit data, while velocity and torque both use 12-bit data.
Notes:
- After power-on, the motor position is fixed at 0.0 rad.
- The unit of position is rad (radians), and it represents the position of the output shaft, i.e., the position after reduction. The following descriptions of position all follow this definition and will not be repeated.
- The unit of velocity is rad/s (radians per second), and it represents the velocity of the output shaft, i.e., the velocity after reduction. The following descriptions of velocity all follow this definition and will not be repeated.
- The unit of torque is Nm, and it represents the torque of the output shaft, i.e., the torque after reduction. The following descriptions of torque all follow this definition and will not be repeated.
Control Frame in MIT Mode
Control Frame | D[0] | D[1] | D[2] | D[3] | D[4] | D[5] | D[6] | D[7] |
ID | p_des[15:8] | p_des[7:0] | v_des[11:4] | v_des[3:0] | Kp[11:8] | Kp[7:0] | Kd[11:4] | Kd[3:0] | t_ff[11:8] | t_ff[7:0] |
Frame ID is equal to the configured CAN ID value.
- p_des: position command
- v_des: velocity command
- Kp: position proportional gain
- Kd: position derivative gain
- t_ff: torque command
All parameters follow the mapping relationship described in the previous section. The ranges of p_des v_des, and t_ff can be configured via the debugging tool. The range of Kp is [0, 500], and the range of Kd is [0, 5].
A standard CAN frame contains only 8 bytes. In MIT mode, the control command packs five parameters—Position, Velocity, Kp, Kd, and Torque—into these 8 bytes. Specifically:Position occupies 2 bytes (16 bits)、Velocity occupies 12 bits、Kp occupies 12 bits、Kd occupies 12 bits.
Control Frame in Position-Velocity Mode
Control Frame | D[0] | D[1] | D[2] | D[3] | D[4] | D[5] | D[6] | D[7] |
0x100+ID | p_des | v_des |
Frame ID is equal to the configured CAN ID value plus an offset of 0x100.
- p_des: position command, float type, little-endian (low byte first, high byte last)
- v_des: velocity command, float type, little-endian (low byte first, high byte last)
The CAN ID used to send the command here is 0x100 + ID. The velocity command defines the maximum speed during motor operation.
Example:
To move a motor with CAN ID = 5 to a position of 180° (3.14159 rad) at a maximum speed not exceeding 10 rad/s, the command is:
Frame ID | D[0] | D[1] | D[2] | D[3] | D[4] | D[5] | D[6] | D[7] |
0x105 | 0xCF | 0x0F | 0x49 | 0x40 | 0x00 | 0x00 | 0x20 | 0x42 |
Control Frame in Velocity Mode
Control Frame | D[0] | D[1] | D[2] | D[3] |
0x200+ID | v_des |
Frame ID is equal to the configured CAN ID value plus an offset of 0x200.
- v_des: velocity command, float type, little-endian (low byte first, high byte last)
The CAN ID used to send the command here is 0x200 + ID.
Example:
To rotate a motor with CAN ID = 3 at a speed of 60 rpm (6.283 rad/s), the command is:
Frame ID | D[0] | D[1] | D[2] | D[3] |
0x203 | 0x56 | 0x0E | 0xC9 | 0x40 |
Instructions for Use
The motor has been calibrated and characterized before leaving the factory, and the parameters are stored inside the motor. Under normal conditions, it can be used directly without recalibration or re-characterization. The following provides the calibration procedure, which can be skipped if no abnormal conditions are present.
CAN Configuration Commands
Motor parameters can be configured not only via the host computer (serial communication), but also through the CAN bus. In addition to basic parameter configuration, mode switching and baud rate modification are supported.
1. Read Parameters
Frame ID | Attribute | D[0] | D[1] | D[2] | D[3] | D[4] | D[5] | D[6] | D[7] |
0x7FF | STD | CANID_L | CANID_H | 0x33 | RID | xx(don’t care) |
- RID: Register address (refer to Section 6).
After a successful read, the register data will be returned in the following format:
Frame ID | Attribute | D[0] | D[1] | D[2] | D[3] | D[4] | D[5] | D[6] | D[7] |
MST_ID | STD | CANID_L | CANID_H | 0x33 | RID | Data |
The data is either floating-point or unsigned integer, occupying 32 bits (4 bytes). The lowest byte is D[4], and the highest byte is D[7]. The same applies hereinafter.
2. Write Parameters
Frame ID | Attribute | D[0] | D[1] | D[2] | D[3] | D[4] | D[5] | D[6] | D[7] |
0x7FF | STD | CANID_L | CANID_H | 0x55 | RID | Data |
RID is as defined above. After writing data, the driver performs range validation. If the value is within the specified range, the write is successful. The driver immediately applies the corresponding parameters and returns the written data. The frame format is the same as the transmitted frame.
Frame ID | Attribute | D[0] | D[1] | D[2] | D[3] | D[4] | D[5] | D[6] | D[7] |
MST_ID | STD | CANID_L | CANID_H | 0x33 | RID | Data |
If the value is out of range, the write fails, and the driver returns the original register data.
Note:
Register writes take effect immediately but are not stored. Data will be lost after power-off. To retain parameters, a save command must be sent to write them into internal memory.
3. Save Parameters
Frame ID | Attribute | D[0] | D[1] | D[2] | D[3] |
0x7FF | STD | CANID_L | CANID_H | 0xAA | xx |
After successful writing, the return format is:
Frame ID | Attribute | D[0] | D[1] | D[2] | D[3] |
MST_ID | STD | CANID_L | CANID_H | 0xAA | 01 |
Notes:
- Saving parameters is only valid in the disabled state.
- All parameters are saved at once.
- This operation writes parameters into internal flash memory. The maximum operation time is 30 ms; ensure sufficient time is reserved.
- Flash erase/write endurance is approximately 10,000 cycles. Do not send the “save parameters” command frequently.
4. Mode Switching
Multiple control modes are supported for switching between each other. The currently supported control modes are as follows:
Code | Mode |
1 | MIT |
2 | Position-Velocity |
3 | Velocity |
By modifying the mode register (0x0A), the control mode can be changed. During switching, the motor command values will first be cleared, including position, velocity, and in MIT mode also torque feedforward, Kp, and Kd.
When switching to position control mode, to avoid impact, it is recommended to first read the accurate position and perform switching at zero speed whenever possible.
Mode changes are not stored in flash and will be lost after power-off. After power-on, the mode defaults to the last mode stored in flash.
5. Baud Rate Configuration
By writing specific data to the baud rate register (address 0x23), the CAN communication baud rate can be modified. Supported baud rates are as follows:
Code | Baud Rate |
0 | 125K |
1 | 200K |
2 | 250K |
3 | 500K |
4 | 1M |
5 | 2M |
6 | 2.5M |
7 | 3.2M |
8 | 4M |
9 | 5M |
After the baud rate is successfully modified, the driver first communicates using the original baud rate and then switches to the new baud rate for communication.Upon power-up, the motor first checks the stored baud rate. If it is greater than 5 Mbps, it will automatically default to 1 Mbps. If it is greater than 1 Mbps (excluding 1 Mbps), the system will automatically switch to CAN FD mode. If the baud rate is less than or equal to 1 Mbps, it will automatically switch to CAN 2.0B mode.A motor configured in CAN FD mode can still receive CAN 2.0B data frames; however, feedback frames are transmitted using CAN FD. As a result, the upper-level controller will not be able to receive feedback data, and the driver will continuously report errors.For a controller operating in CAN 2.0B mode, even if an incorrect ID is set, the baud rate can still be restored by using the baud rate modification command.
6. Register Address Table
Addr (HEX) | Addr (DEC) | Variable | Description | R/W | Range | Type |
0x00 | 0 | UV_Value | Undervoltage protection | RW | (10.0, fmax] | float |
0x01 | 1 | KT_Value | Torque constant | RW | [0.0, fmax] | float |
0x02 | 2 | OT_Value | Overtemperature protection | RW | [80.0, 200) | float |
0x03 | 3 | OC_Value | Overcurrent protection | RW | (0.0, 1.0) | float |
0x04 | 4 | ACC | Acceleration | RW | (0.0, fmax) | float |
0x05 | 5 | DEC | Deceleration | RW | (-fmax, 0.0) | float |
0x06 | 6 | MAX_SPD | Maximum speed | RW | (0.0, fmax] | float |
0x07 | 7 | MST_ID | Feedback ID | RW | [0, 0x7FF] | uint32 |
0x08 | 8 | ESC_ID | Receive ID | RW | [0, 0x7FF] | uint32 |
0x09 | 9 | TIMEOUT | Timeout alarm | RW | [0, 2³²-1] | uint32 |
0x0A | 10 | CTRL_MODE | Control mode | RW | [0, 4] | uint32 |
0x0B | 11 | Damp | Viscous coefficient | RO | / | float |
0x0C | 12 | Inertia | Inertia | RO | / | float |
0x0D | 13 | hw_ver | Reserved | RO | / | uint32 |
0x0E | 14 | sw_ver | Software version | RO | / | uint32 |
0x0F | 15 | SN | Reserved | RO | / | uint32 |
0x10 | 16 | NPP | Pole pairs | RO | / | uint32 |
0x11 | 17 | Rs | Phase resistance | RO | / | float |
0x12 | 18 | Ls | Phase inductance | RO | / | float |
0x13 | 19 | Flux | Flux linkage | RO | / | float |
0x14 | 20 | Gr | Gear ratio | RO | / | float |
0x15 | 21 | PMAX | Position mapping range | RW | (0.0, fmax] | float |
0x16 | 22 | VMAX | Velocity mapping range | RW | (0.0, fmax] | float |
0x17 | 23 | TMAX | Torque mapping range | RW | (0.0, fmax] | float |
0x18 | 24 | I_BW | Current loop bandwidth | RW | [100.0, 1.0e4] | float |
0x19 | 25 | KP_ASR | Speed loop Kp | RW | [0.0, fmax] | float |
0x1A | 26 | KI_ASR | Speed loop Ki | RW | [0.0, fmax] | float |
0x1B | 27 | KP_APR | Position loop Kp | RW | [0.0, fmax] | float |
0x1C | 28 | KI_APR | Position loop Ki | RW | [0.0, fmax] | float |
0x1D | 29 | OV_Value | Overvoltage protection | RW | TBD | float |
0x1E | 30 | GREF | Gear torque efficiency | RW | (0.0, 1.0] | float |
0x1F | 31 | Deta | Speed loop damping | RW | [1.0, 30.0] | float |
0x20 | 32 | V_BW | Speed loop filter bandwidth | RW | (0.0, 500.0) | float |
0x21 | 33 | IQ_c1 | Current loop enhancement | RW | [100.0, 1.0e4] | float |
0x22 | 34 | VL_c1 | Speed loop enhancement | RW | (0.0, 1.0e4] | float |
0x23 | 35 | can_br | CAN baud rate code | RW | [0, 9] | uint32 |
0x24 | 36 | sub_ver | Sub-version | RO | / | uint32 |
0x32 | 50 | u_off | Phase U offset | RO | / | float |
0x33 | 51 | v_off | Phase V offset | RO | / | float |
0x34 | 52 | k1 | Compensation factor 1 | RO | / | float |
0x35 | 53 | k2 | Compensation factor 2 | RO | / | float |
0x36 | 54 | m_off | Angle offset | RO | / | float |
0x37 | 55 | dir | Direction | RO | / | float |
0x50 | 80 | p_m | Current motor position | RO | / | float |
RW: Read/Write
RO: Read Only
Characteristic Curves
Test Environment: Room temperature at 25°C, laboratory conditions.

Characteristic Parameters
Please use the motor appropriately according to the following parameters.
Motor Parameters | Rated Voltage | 24V (driver supports 24–48V power supply) |
Rated Phase/Power Current | 5A / 3.2A | |
Peak Phase/Power Current | 13A / 7.5A | |
Rated Torque | 1.35Nm | |
Peak Torque | 5Nm | |
Rated Speed | 380rpm | |
No-load Maximum Speed | 560rpm | |
Motor Characteristic Values | Gear Ratio | 1:25 |
Pole Pairs | 7 | |
Phase Inductance | 75uH | |
Phase Resistance | 0.2915Ω | |
Maximum Radial Load (Dynamic Load) | 395N | |
Structure & Weight | Outer Diameter | Motor 28mm |
Height | Motor 77.6mm | |
Motor Weight | Approx. 172.2g | |
Encoder | Encoder Type | Incremental encoder |
Communication | Control Interface | CAN @ 1Mbps (Max), CAN FD @ 5Mbps (Max) |
Tuning Interface | UART @ 921600bps | |
Control & Protection | Control Modes | MIT Mode |
Velocity Mode | ||
Position Mode | ||
Protection | Protection temperature: 120℃. When exceeded, the motor will exit “Enabled Mode”. | |
Configurable based on application requirements. Recommended not to exceed 100℃. When exceeded, the motor will exit “Enabled Mode”. | ||
Configurable based on application requirements. Recommended not to exceed 60V. When exceeded, the motor will exit “Enabled Mode”. | ||
If no CAN command is received within the configured period, the motor will automatically exit “Enabled Mode”. | ||
Configurable based on application requirements. Recommended not to exceed 13A (phase current). When exceeded, the motor will exit “Enabled Mode”. | ||
If the supply voltage is lower than the set threshold, the motor will exit “Enabled Mode”. Minimum operating voltage is 15V. |
On this page
- DAMIAO DM-S2325-1EC V1.0 Motor Instruction Manual
- Safety Precautions
- Product Features
- Packing List
- Interface & Pin Description
- Geared Motor & Driver Dimensions and Installation
- Operating Modes
- MIT Mode
- Position-Velocity Mode
- Velocity Mode
- Control Protocol Description
- Feedback Frame
- Control Frame in MIT Mode
- Control Frame in Position-Velocity Mode
- Control Frame in Velocity Mode
- Instructions for Use
- CAN Configuration Commands
- 1. Read Parameters
- 2. Write Parameters
- 3. Save Parameters
- 4. Mode Switching
- 5. Baud Rate Configuration
- 6. Register Address Table
- Characteristic Curves
- Characteristic Parameters

