Speed profile and types of motor motion

Speed profile


Speed profile sets the acceleration (acc), deceleration (dec), and maximum speed (maxSpeed) values of the motor prior to the motor moving. These values depend on the following:

  • Motor Specifications
  • Power supply voltage
  • Load
  • Voltage mode or current mode

While we provide some example defaults, you need to set these values according to your actual environment. This requires some trial and error on your part.

Setting the Profile

Use /setSpeedProfile to set the above three values. Acc and dec cannot be set unless the motor is stopped; however, maxSpeed can be set at any time.

You can also set the minimum speed (minSpeed) with /setMinSpeed. It is unlikely to be used for any actual application, but this speed will be used for /releaseSw speed as a part of the homing procedure.

Type of motor operation

Constant speed

The /run command is used to drive the motor at a constant speed. The acceleration, deceleration, and maximum speed curves set by /setSpeedProfile are adhered to by this command. The motor runs perpetually until speed 0 (/run 0) or a stop command is sent. The motor will not run faster than the maximum speed set in the speed profile. Sending a speed to run faster than this profile setting will cause the motor's speed to be truncated to that setting. The motor will be kept in the BUSY state during the acceleration and deceleration.

/goUntil and /releaseSw are also considered constant speed commands.


The trapezoidal drive towards the specified position is performed according to the speed profile. In other words, it accelerates according to the acceleration rate of the speed profile, then drives at constant speed when it reaches the maximum speed, and then decelerates at specified deceleration rate at the timing calculated backwards to stop at the specified position. It may start decelerating before it reaches the maximum speed, especially when you want to accelerate / decelerate at a relatively slow rate. It remains in the BUSY state until the motor stops. It's not possible to interrupt the current positioning motion with another positioning motion.

Typical commands for positioning operation are /goTo and /move. Other commands include /goHome, /goMark, and /goToDir.

NOTE: With STEP-series Universal Firmware, positioning motions (except /move) can interrupt another positioning motions.

Servo mode

This is not a function of the motor driver, but a mode of driving implemented in the firmware. It constantly updates the constant speed operation to follow a given target position. This mode is similar to a radio controlled servo motor. No other motor motion commands can be sent while the motor is operating in this mode.

Types of stops

There are two options with a total of four different commands, as follows:

  • Decelerating according to the speed profile or stop instantly
  • Keeping magnetized/excited or entering a high impedance (High Z) state after stopping
State after stop Deceleration stop Immediate stop
Excited SoftStop HardStop
HiZ SoftHiZ HardHiZ

The excited state is the state in which voltage or current (torque) is maintained to hold the motor's position according to KVAL_HOLD or TVAL_HOLD, respectively. The high impedance (HiZ) state is when the current is cut off and no holding torque is maintained. Any loads the motor is moving may fall or lose their positioning during HiZ.

Back to top