A method of identifying the rotor position of a brushless DC (BLDC) motor and driving a motor smoothly from standstill without any position sensors is presented. This is done by monitoring the current responses to the inductance variation on the rotor position. The rotor position at standstill is detected by comparing the first and second differences of six current pulses injected into every two phases of the motor. Once the motor starts up, a pulse train, composed of long and short pulses, is injected into the commutation phases corresponding to the maximum torque production and the next commutation phases in alternating fashion. It provides not only the torque, but also information about the next commutation timing when the current responses of the long and short pulses cross each other in the same time delay. A controller for a BLDC motor is developed using a PC, digital signal processor (DSP), inverter and communication circuits in order to verify the proposed algorithm experimentally. It shows that the proposed algorithm can drive a BLDC motor smoothly without any vibration or time delay up to medium speed compared with the conventional back-EMF algorithm. Beyond this medium speed, a sensorless algorithm for rotor-position detection is switched to the back-EMF method to drive a BLDC motor at high speed