A power tool comprising: a housing; a brushless motor disposed within the housing, the motor comprising a stator having a plurality of windings and a rotor; a power switch circuit that supplies power from a power source to the brushless motor; and a controller configured to receive at least one signal associated with a phase current of the motor, detect an angular position of the rotor based on the phase current of the motor, and apply a drive signal to the power switch circuit to control a commutation of the motor based on the detected angular position of the rotor, characterized by when a rotor speed is below a speed threshold, the controller is configured to apply a high-frequency injection step of injecting a plurality of voltage pulses to the motor and detecting corresponding high-frequency current components to make a first estimation of the angular position of the rotor and, when the rotor speed is above a speed threshold, the controller is configured to apply a sliding-mode observer step of estimating a back electromotive force (back-EMF) voltage of the motor based on the phase current of the motor and making a second estimation of the angular position of the rotor based on the estimated back-EMF voltage, wherein, when the rotor speed exceeds the speed threshold, the controller is configured to commutate the motor according to the first estimation of the angular position, gradually modify the commutation of the motor until the first estimation of the angular position substantially matches the second estimation of the angular position, and commutate the motor according to the second estimation of the angular position thereafter. a housing; a brushless motor disposed within the housing, the motor comprising a stator having a plurality of windings and a rotor; a power switch circuit that supplies power from a power source to the brushless motor; and a controller configured to receive at least one signal associated with a phase current of the motor, detect an angular position of the rotor based on the phase current of the motor, and apply a drive signal to the power switch circuit to control a commutation of the motor based on the detected angular position of the rotor, characterized by when a rotor speed is below a speed threshold, the controller is configured to apply a high-frequency injection step of injecting a plurality of voltage pulses to the motor and detecting corresponding high-frequency current components to make a first estimation of the angular position of the rotor and, when the rotor speed is above a speed threshold, the controller is configured to apply a sliding-mode observer step of estimating a back electromotive force (back-EMF) voltage of the motor based on the phase current of the motor and making a second estimation of the angular position of the rotor based on the estimated back-EMF voltage, wherein, when the rotor speed exceeds the speed threshold, the controller is configured to commutate the motor according to the first estimation of the angular position, gradually modify the commutation of the motor until the first estimation of the angular position substantially matches the second estimation of the angular position, and commutate the motor according to the second estimation of the angular position thereafter.