Parallel port step motor driver

What is it?

  • What is a stepper?
  • A stepper is a motor that rotates step by step, instead of freely like a regular DC motor. A stepper use more than 2 wires, usually 1 for each phase, with one or more common wires.

  • Types of steppers:
  • There are different types of stepper (Number of phases, number of wires, polarity), but I will explain the simplest type: 4 phases, unipolar. This type is easy to find because it is often used in 5"1/4 floppy disk drives(360k, 1.2M) found in old PCs.

  • How to make it work:
  • You need to find the common(s) wire(s), and put some voltage on it. Next, you connect each phase to ground, one at the time, sequenitially. To make the motor rotate in the opposite direction, reverse the order.

  • Where to find them:
  • In floppy disk drivers, printers, some old hard drives. Of course, your local electronic components store probably has some.


    Here is the schmatic for my stepper driver in PDF format:
    stepper-control.pdf (8.8k)

    Some notes about the schematic:
    • The transistors I use are 3904 TO-92. They are strong enough for the motor I use. Replace them with bigger ones if necessary.
    • Instead of using separate transistors, you can use the ULN2003 integrated circuit, which is an array of darlington transistors, common emitter, with integrated protection diodes.


    In this type of project, it is more interesting and fun if you write the software by yourself. But if you prefer, you can use my software.

    My library is named libstepper, and works under Linux. This library has its own page..

    For more information

    A page explaining how to use steppers:


    I cannot be held responsible for any damages that could occur to you or your equipment while following the procedures present on this page. Also, I GIVE ABSOLUTELY NO WARRANTY on the correctness and usability of the informations on this page. Please note, however, that the procedures above have worked in my case without any damages or problems.

    Now you cannot say that I did not warn you :)