I wish to know how to build a simple stepper motor controller which can run a bipolar stepper motor in forward and reverse direction in desired speed?

My project requires only 5 RPM so high speed is not required. If any one gives me circuit I can buy component and build it on my own.


I have removed the circuit recently added here by Vijay and placed it is a new answer, along with comment. I did this because it was not a suitable solution and needed major work to make it one. See new answer for details.

  • 1
    \$\begingroup\$ There are thousands of such controllers. As you can imagine, the most common thing to do with a stepper motor is make it turn. Did you do any basic research? If so, what specific problem did you encounter? \$\endgroup\$ – Phil Frost Feb 1 '13 at 15:12



  • Numerous controller circuits are available which provide direction and step input lines.

  • These are usually intended to be driven by a microcontroller, but simply applying a squae wave signal to the "step" line will produce rotation in one or other direction at a speed of one step per square wave cycle.

  • Drive circuits are all essentially 2 x H bridges with control logic.

Some excellent discussion [here] (http://www.cnczone.com/forums/stepper_motors_drives/140317-viable_stepper_driver.html) with a number of circuits. CNCZONE discussion group.

Their Facebook page

The following are from the above page:

(1) This has all the logic for direction and step , using two 4000 series CMOS ICs.
Q1-4 and Q6-9 are H bridge bipolar drivers. Q5, Q10 disable whole bridges. Not strictly necessary - leave out and replace with a link.

enter image description here

(2) Part of a circuit. Shows half bridges with centre tapped windings but principles still useful:


(3) A number of stepper motor driver links. Beware of the ads which look like part of the page. Usefulish. Here

Complete kit with circuit here
Circuit only as picture here They say:

  • This kit will drive a bi-polar stepper motor driver using externally supplied 5V levels for stepping and direction. These usually come from software running in a computer

Note that a square wave on step signal is all that is needed for continuous drive.

------ End of links from above page ---------------

Related )

Spark Fun made up controller board - and related 1 chip driver

This board will allow you to control up to 4 stepper motors, with or without a microcontroller.

The circuit diagram is [here] - you only need one channel for one motor.
And you can buy the IC and do it yourself id desired.
Allegro A4983 datasheet here.

As can be seen - there is not much other circuitry involvd.
They show a microcontroller (which is a good idea, as Olin said) BUT all you need is a square wave on the step line at the stepping rate plus high or low signals on the other control leads and away it goes.

The ICs are available from Digikey in stock for $4.97/1.

They use a VQFN package which is hard to solder if you are not used to such devices. Sparkfun make the Eagle PCB files available and may sell a bare PCB.

enter image description here

A lot of these links may be useful Gargoyle image search

DIY bipolar, but probably overkill

  • \$\begingroup\$ Ain't there a dip package available for these ICs ? I want to make a circuit on breadboard. Is RESET and ENABLE pins necessary , the easy driver is based on these ICs and they just use two inputs , the step and direction pin sparkfun.com/products/10267 \$\endgroup\$ – thebugger Jan 2 '14 at 7:09

From the circuit point if view, a stepper motor is just several coils that need to be turned on and off in the right sequence. Usually these coils are designed so that they only need to be driven in one direction. Some steppers have one side of two or more coils connected together, and some have all the lines separate.

When one side of the coils is already tied together in the motor, then connecting the common point to the positive supply and using low side switches is all you can do. Fortunately that's easy and simple. Just don't forget the reverse diode to catch the inductive kickback. If the coils are separate and the motor is built the right way, you have the option of driving the coils in both directions, in which case you want to use a H bridge per coil. The former is simpler and smaller and will always work, while the latter can achieve more torque.

Ultimately it's the current thru a coil that generates the magnetic field that does the work. The coils will be specified for some maximum steady state current. Since these are inductive, the current will not change instantly. Ideally you want to control the current, not the voltage of each coil. The voltage at which the maximum steady state current will result will be specified, so you can drive the coils with voltage. However, this will ramp up the current with a exponential decay on startup. If you don't need near the maximum speed, as you say you don't, then this will probably be good enough in your case.

  • \$\begingroup\$ can u give circuit for my requirement? I dont like to use computer to generate pulse. is it possible to run stepper motor without using computer ? If possible please give me circuit for that. \$\endgroup\$ – vijay Jan 9 '12 at 13:29
  • \$\begingroup\$ @vijay: You haven't provided any real specs. Not using a microcontroller to sequence thru the steps and do the acceleration and deceleration is just silly. \$\endgroup\$ – Olin Lathrop Jan 9 '12 at 13:41
  • \$\begingroup\$ @Olin I believe vijay is saying he doesn't want to use a PC to control the stepper; there is software like Mach3 which can control steppers through the parallel port; at least that's my interpretation :) \$\endgroup\$ – m.Alin Jan 9 '12 at 13:47


  • Description provided of fundamental action of bipolar and unipolar stepper motors and basic pros and cons of each.

  • Comment on supplied unipolar driver circuit.

  • Similarity to already suggested bipolar driver circuit shown.

Vijay proposed the circuit below as a possible starting point.

This is a circuit for a unipolar stepper motor controller, whereas Vijay requires a bipolar controller.

In a bipolar stepper motor there are (usually) two coils and these are driven with either of two possible polarities at a given moment. The effect is to advance the stepper over a 4 step cycle. If polarities are taken as forward or reverse and the two coils are name A and B then the stepping seuqence is -

A forward
B forward
A reverse
B reverse
A forward ... (repeating)

A unipolar stepper motor controller uses (usually) two coils both of which are centre tapped. The centre taps are connected to (usually) positive and alternate sides of a given coil are grounded to activate the coil. As the two halves of a coil are magnetically coupled, activating the left side of a coil has the same effect as if the right side of the coil had been activate with reverse polarity. The same result is thus achieved by using A-left, A-right as would be achieved by A-forward, A-reverse with a bipolar stepper motor.

A bipolar steppe motor has the advantage of activating the whole winding at a time so the copper and iron involved are better utilised than in a unipolar stepper motor where half of a coil's copper and iron is "wasted" when the other half is activated.

A unipolar stepper motor has the advantage of only requiring a single switch to ground (usually) per activation rather that the full H bridge switch with one switch "up" and one switch "down" required by a bipolar stepper motor.

A eldom realised side effect with a uni-polar stepper motor is that when a centre tap is connected to V+ and eg A-left is grounded, A-right will rise to 2 x V+ due to transformer action in winding A. This is no great problem as long as the off driver on A-right can withstand 2 x V+ and attempts are not made to clam winding ends to V+ - as is quite often done in circuits shown on the internet.


This is a unipolar stepper motor driver.
The BC547 transistors are successively switch to ground to enable half of each winding as required, as described above. To convert this circuit to bipolar operation it would be necessary to provide 4 x high side transistors and drive them correctly This could be done but requires subtantial extra circuitry and also level shifting for the high side drivers.

enter image description here

This is essentially what is done in this circuit (mentioned in my other answer).

enter image description here

Below is a single winding driver at larger size.
The upper and lower FETs act as switches to V+ or ground and the BC547 transistors act as level shifters. The 4013 flipflops act as sequence controllers as before. This is an OK circuit but not the simplest that could be built - see my other answer.

enter image description here



ECAN bipolar stepper motor driver:

OK !!!
Here is an "Extra Cheap And Nasty" = ECAN bipolar stepper motor driver.

This will work.
It will step more slowly at the same voltage.
It ideally needs higher voltage.
It wastes most f its input power.
It will work!
It will work :-)

Take Vijay's circuit as seen below in modified form.
Ignore the centre tap connections as the motors do not have these leads. Connect 4 equal resistors = Recan from the collectors of each of the driver transistors to V+. Here V+ = 12V but a higher voltage will now be desirable.

You now have a bipolar driver ! :-).

Consider the lower phase. Call the drivers transistors Ql = Q left and Qr = Q right.
When Ql ids on and Qr is off current will flow via Recan connected to Qr (off), through winding and rhen via Ql on. When Ql is turned off and Qr is turned on current flows via Recan connected to Ql, though winding in opposite direction and to ground via Qr. Same for other phase.

Ideally set V+ = 24Vand Recan = Rcoil. Current will now be same as before in coil BUT stepping will be niver.

Power waste: When eg Ql is on -
Current flows from Recan on Ql to ground plus
current flows via Recan on QR via winding to ground.
If Recan = R inding then Rcan on Ql ill pass 2 x current flowing via Recan and R winding.
SO 2/3 of current is wasted. 2/3 of power is lost in Recal on Ql and half of power in Recan in Qr + winding is lost in Recan.
SO 1/6th of total power is used to drive stepper! 5/6th of power is wasted. This may still be a good solution in low power cases.

enter image description here


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.