An atherectomy control system comprising: a drive mechanism; a position sensor configured to sense a rotational position of the drive mechanism; an input/output port; a microcontroller in communication with the position sensor and the input/output port; and wherein: the microcontroller is configured to determine a speed of the drive mechanism based on received indications of the rotational position of the drive mechanism; determine a control signal for adjusting the speed of the drive mechanism based on the determined speed of the drive mechanism and output the determined control signal via the input/output port; characterized in that: the microcontroller is configured to predict that a stall of the drive mechanism will occur within a predetermined time period after a current time; the microcontroller is configured to predict the stall of the drive mechanism will occur within the predetermined time period when a trend value based on the determined speed of the drive mechanism reaches or goes beyond a threshold value; and the trend value is a difference between a currently determined speed of the drive mechanism and a speed of the drive mechanism at a time that is the predetermined time period before a time at which the currently determined speed of the drive mechanism was taken. a drive mechanism; a position sensor configured to sense a rotational position of the drive mechanism; an input/output port; a microcontroller in communication with the position sensor and the input/output port; and wherein: the microcontroller is configured to determine a speed of the drive mechanism based on received indications of the rotational position of the drive mechanism; determine a control signal for adjusting the speed of the drive mechanism based on the determined speed of the drive mechanism and output the determined control signal via the input/output port; characterized in that: the microcontroller is configured to predict that a stall of the drive mechanism will occur within a predetermined time period after a current time; the microcontroller is configured to predict the stall of the drive mechanism will occur within the predetermined time period when a trend value based on the determined speed of the drive mechanism reaches or goes beyond a threshold value; and the trend value is a difference between a currently determined speed of the drive mechanism and a speed of the drive mechanism at a time that is the predetermined time period before a time at which the currently determined speed of the drive mechanism was taken. the microcontroller is configured to determine a speed of the drive mechanism based on received indications of the rotational position of the drive mechanism; determine a control signal for adjusting the speed of the drive mechanism based on the determined speed of the drive mechanism and output the determined control signal via the input/output port; characterized in that: the microcontroller is configured to predict that a stall of the drive mechanism will occur within a predetermined time period after a current time; the microcontroller is configured to predict the stall of the drive mechanism will occur within the predetermined time period when a trend value based on the determined speed of the drive mechanism reaches or goes beyond a threshold value; and the trend value is a difference between a currently determined speed of the drive mechanism and a speed of the drive mechanism at a time that is the predetermined time period before a time at which the currently determined speed of the drive mechanism was taken. the microcontroller is configured to predict that a stall of the drive mechanism will occur within a predetermined time period after a current time; the microcontroller is configured to predict the stall of the drive mechanism will occur within the predetermined time period when a trend value based on the determined speed of the drive mechanism reaches or goes beyond a threshold value; and the trend value is a difference between a currently determined speed of the drive mechanism and a speed of the drive mechanism at a time that is the predetermined time period before a time at which the currently determined speed of the drive mechanism was taken.