The quad operational amplifier circuit yields full 0 to 100 percent pulse-width control. The controller uses an LM3900 that requires only a single supply voltage of 4 to 30 V. The pulse-repetition rate is set by a 1 kHz oscillator that incorporates amplifier A1. The oscillator feeds ramp generator A2, which generates a linear ramp voltage for each oscillator pulse. The ramp signal feeds the inverting input of comparator A3; the speed-control voltage feeds the noninverting input. Thus, the output of the comparator is a 1 kHz pulse train, the pulse width of which changes linearly with the control voltage. The control voltage can be provided by an adjustable potentiometer or by an external source of feedback information such as a motor-speed sensing circuit. Depending on the control-voltage setting, the pulse duration can be set at any value form zero (for zero average dc voltage applied to the motor) to the full pulse-repetition period (for applied motor voltage equal to dc power-supply voltage). An amplifier stage (A4) with a gain of 10 acts as a pulse-squaring circuit. A TIP-31 medium-power transistor is driven by A4 and serves as a separate power-amplifier stage.