The SMI30 and SMI31 are programmable motor indexers that can operate servo and step motors. They generate pulse trains to control the speed, position, acceleration, and deceleration of connected motors based on commands received via an RS232/485 interface or downloaded program. The indexers include 8 general purpose inputs and outputs that can be configured for functions like signaling when the motor reaches its position or an error occurs.