An apparatus for controlling the rotation speed of a direct-current motor armature, which is coupled to an adjustable power supply, the apparatus comprising: a voltage sensor coupled to the armature and configured to provide a signal representing voltage across said armature; a current sensor configured to provide a signal representing current flowing through said armature; a Hall-effect sensor configured to detect rotation of the armature; a processor coupled to the Hall-effect sensor, the voltage sensor and the current sensor; a non-transitory memory device coupled to the processor and storing program instructions, which when executed cause the processor to: determine current through the armature from the current sensor; determine voltage across the armature from the voltage sensor; obtain at least first and second output signals from the Hall-effect sensor; determine an armature rotation speed estimate from at least one output signal from the Hall-effect sensor; determine a mathematical model for the direct current motor from the current flowing through the armature, the voltage across the armature and the armature rotation speed estimate; after the mathematical model is determined, calculate armature rotation speed between signals from the Hall-effect sensor using the mathematical model; and adjust at least one of the voltage and current provided to the armature by the power supply responsive to a armature rotation speed that is calculated using the mathematical model. a voltage sensor coupled to the armature and configured to provide a signal representing voltage across said armature; a current sensor configured to provide a signal representing current flowing through said armature; a Hall-effect sensor configured to detect rotation of the armature; a processor coupled to the Hall-effect sensor, the voltage sensor and the current sensor; a non-transitory memory device coupled to the processor and storing program instructions, which when executed cause the processor to: determine current through the armature from the current sensor; determine voltage across the armature from the voltage sensor; obtain at least first and second output signals from the Hall-effect sensor; determine an armature rotation speed estimate from at least one output signal from the Hall-effect sensor; determine a mathematical model for the direct current motor from the current flowing through the armature, the voltage across the armature and the armature rotation speed estimate; after the mathematical model is determined, calculate armature rotation speed between signals from the Hall-effect sensor using the mathematical model; and adjust at least one of the voltage and current provided to the armature by the power supply responsive to a armature rotation speed that is calculated using the mathematical model. determine current through the armature from the current sensor; determine voltage across the armature from the voltage sensor; obtain at least first and second output signals from the Hall-effect sensor; determine an armature rotation speed estimate from at least one output signal from the Hall-effect sensor; determine a mathematical model for the direct current motor from the current flowing through the armature, the voltage across the armature and the armature rotation speed estimate; after the mathematical model is determined, calculate armature rotation speed between signals from the Hall-effect sensor using the mathematical model; and adjust at least one of the voltage and current provided to the armature by the power supply responsive to a armature rotation speed that is calculated using the mathematical model.