Saturday, June 20, 2009

Microstepping Stepper Motor Driver Project

Microstepping Stepper Motor Data

Microstepping of Stepping Motors
Microstepping serves two purposes. First, it allows a stepping motor to stop and hold a position between the full or half-step positions, second, it largely eliminates the jerky character of low speed stepping motor operation and the noise at intermediate speeds, and third, it reduces problems with resonance.
Although some microstepping controllers offer hundreds of intermediate positions between steps, it is worth noting that microstepping does not generally offer great precision, both because of linearity problems and because of the effects of static friction.
1 Sine-Cosine Microstepping
2 Limits of Microstepping
- Detent Effects
- Quantization
3 Typical Control Circuits
- Practical Examples

Microstepping Stepper Motor Driver Kit

Basic design
It is a unipolar (or 5-wire type) driver. The motor must have
5 or 6 wires (or 8), as 4-wire motors are only for bipolar

The constant current system is crude but simple, it relies on
setting the base of the main transistors at a "set" level, then
this causes a "set" voltage across the sense resistor Rs, ie
maintains constant current. It does get some temp drift with
large currents, but it's simple and accurate enough with the
resistor values i've tested. It actually works quite well!

The brain has control of which of the 4 transistors are ON,
and sets 3 possible current levels, enough to do 6th stepping
and give 1200 steps/rev with hardware alone. The software I
have provided also will do pwm and give 18th stepping, which
is 3600 steps/rev, almost stepless operation.

The PIC has plenty of left over rom if you need to do motion
control or use the board as the complete brains and driver for
an entire machine. Up to 9 PIC in/out pins can be allocated to
the board.

Micro-step driver

This circuit allows to connect a bipolar step motor to a personal computer through the parallel port. The circuit is, for safety reasons, optically isolated from the PC and it allows to manage motors up to 3A for phase. Moreover the digital interface allows to connect up to six motors to a single PC parallel port.
The more interesting aspect of this circuit is its ability to implement the microstep technique and to multiply up to 64 times the motor real steps number. As an example, a 200 steps motor could behave like "a virtual" 12.800 steps motor. This function is particularly useful when the spin speed is very low, in the order of fractions of rpm.


Modern motion control applications need more flexibility that can be addressed only with specialized IC products. The L6208 is a fully integrated stepper motor driver IC specifically developed to drive a wide range
of two phase (bipolar) stepper motors. This IC is a one-chip cost effective solution that includes several unique circuit design features. These features, including a decoding logic that can generate three different stepping sequences, allow the device to be used in many applications including microstepping. The principal aim of this development project was to produce an easy to use, fully protected power IC. In addition several key functions such as protection circuit and PWM current control drastically reduce external components count to meet requirements for many different applications.

Microstepping Stepper Motor Driver Circuit


Stepper motors are very well suited for positioning applications since they can achieve very good positional accuracy without complicated feedback loops associated with servo systems. However their resolution, when driven in the conventional full or half step modes of operation, is limited by the configuration of the motor. Many designers today are seeking alternatives to increase the resolution of the stepper motor drives. This application note will
discuss implementation of microstepping drives using peak detecting current control where the sense resistor is connected between the bottom of the bridge and ground. Examples show the implementation of microstepping drives with several currently available chips and chip sets.

Microstepping a stepper motor may be used to achieve one or both of two objectives; 1) increase the position resolution or 2) achieve smoother operation of the motor. In either case the basic theory of operation is the same. The simplified model of a stepper motor is a permanent magnet rotor and two coils on the stator separated by 90 degrees, as shown in Figure 1. In classical full step operation an equal current is delivered to each of the coils and the rotor will align itself with the resulting magnetic vector along one of the 45 degree axis. To step the motor, the current in one of the two coils is reversed and the rotor will rotate 90 degrees. The complete full step sequence is shown in figure 2. Half step drive, where the current in the coil is turned off for one step period before being turned on in the opposite direction, has been used to double the step resolution of a motor. In either full and half step drive,
the motor can be positioned only at one of the 4 (8 for half step) defined positions.[4][5] Therefore,
the number of steps per electrical revolution and the number of poles on the motor determine the resolution of the motor. Typical motors are designed for 1.8 degree steps (200 steps per revolution) or 7.5 degree steps (48 steps per revolution). The resolution may be doubled to 0.9 or 3.75 degrees by driving the motor in half step. Further increasing the resolution requires positioning the rotor at positions between the full step and half step positions.

Example alignment of microsteping

Precision Microstepping Driver Circuit

Microstepping Stepper Motor Driver Project

Functional description
The circuit can be divided into three functional blocks, Microprocessor simulation logic, micro-stepping controller and stepper motor driver.
A. Micro-stepping simulation.
This block send the control signals normally sent by a microprocessor to the micro-stepping controller, the inputs to the block are the 5 Dip-switches and the clock pulse from pin1 of J2. During normal operation the current level in one of the motor windings is updates at every step pulse (single pulse programming). These mean two step pulses are required to update both winding currents and make the motor turn. Operating the dip-switched S1-6 can change the direction of the motor rotation

Wednesday, June 10, 2009

Stepper Motor Driver Project

Unipolar Stepper Motor Driver Circuit
This project presents a circuit for driving high-power unipolar stepper motors. Here you will find all the information needed to make your own. This circuit allows step-level control and can be easily modified for other modes of operation

Circuit Schematic and Photo

The L297 has several inputs that can be generated by a PC/104 stack or other controller. This circuit allows you to control each step, in full-step mode. Meaning: You can tell it to move one step in either direction (of course you can make it move fast and it will continuously rotate). The two inputs are a direction and a pulse. In the next section you will find a program to control this using xPC.

Stepper motor driver circuit
Stepper Motor Data
Stepper Motor Data 1
Stepper Motor Data 2
Stepper Motor Data 3
Microstepping Data
Stepper Motor Driver Circuit
2A Step Motor Driver Circuit
bipolar stepper motor with current control
Microstep Stepper motor driver circuit
Precision Microstepping Driver Circuit
High Current Microstep Stepper Motor Driver

Stepper motor control board
This project is actually an educational kit. One can study the full operation of unipolar type stepper motor using this board. As it is micro controller based it can be programmable also and one can learn micro controller interfacing with LEDs, key board and stepper motor. Thus single board serves the purpose of learning stepper motor control as well as learning micro controller programming.

In the construction of unipolar stepper motor there are four coils. One end of each coil is tide together and it gives common terminal which is always connected with positive terminal of supply. The other ends of each coil are given for interface. Specific color code may also be given. Like in my motor orange is first coil (L1), brown is second (L2), yellow is third (L3), black is fourth (L4) and red for common terminal.

Stepper motor controller
The stepper motor driver circuit shown as following

The opto-isolator are important which prevent destroy of MCU by the feeback voltage from
power transistor. Two adjust-able voltage regulator used to adjust the running voltage and
stopping/holding voltage of the stepper motor.

Remote Unipolar Stepper Motor Controller with 89C51
Abstract:- This is the third and most amazing application of multichannel IR remote where 4 different channels of remote are utilized to control all the parameters of unipolar stepper motor. All three parameters of stepper motor RPM, direction & no. of revolutions can be changed from remote. 89C51 takes care of all the controlling actions.

The project is based on stepper motor control and I have experimented with unipolar stepper motor. One must know first how this stepper motor is controlled. How it can be rotated, how RPM, direction & no. of revolutions can be changed etc. So let us first go through the theory of unipolar stepper motor

Controlling Stepper Motor with a Parallel Port
This is an easy to build stepper motor driver that will allow you to precisely control a unipolar stepper motor through your computer's parallel port. With a stepper motor you can build a lot of interesting gadgets such as robots, elevator, PCB drilling mill, camera panning system, automatic fish feeder, etc. If you have never worked with stepper motors before you will surely have a lot of fun with this project.

Controlling Stepper Motor with a Parallel Port
This is an easy to build stepper motor driver that will allow you to precisely control a unipolar stepper motor through your computer's parallel port. With a stepper motor you can build a lot of interesting gadgets such as robots, elevator, PCB drilling mill, camera panning system, automatic fish feeder, etc. If you have never worked with stepper motors before you will surely have a lot of fun with this project.

Stepper Motor Controller
he stepper motors were purchased at a local auction house. They took apart old hard drives and printers and such selling the parts separately. You can usually barter and get a good deal, the ones being used in this circuit cost about $3 each. These particular motors are unipolar steppers. You can usually tell by the number of wires coming out. This one has 6 wires coming out of it: 2 green, 1 blue, 1 yellow, 1 red, and 1 white. In a 4 phase unipolar motor There are 2 coils which are center tapped and have a wire for each of phases. If the wire colours are random or if there were only 5 wires, then you would have to use an ohmmeter to distinguish between the phases and center tap. Fortunately for me 2 of the wires were the same colour, so they must be the center taps. Another plus was the wires were grouped in threes.

Stepper power board based upon L6208 circuit
Find herebelow my own design for stepper command board based upon L6208 circuit.

Stepper bipolar command (4 wires)
Maximum current 2.5A per phase
Mode : 1/2 step
Bridge control : 'Slow decay' (see datasheets)
Command Step/direction
Power supply unstabilised, but rectified and filtered, maximum 32V
Power supply stabilised, maximum 40V.
Forced blow on circuit required.

Board presented here is slightly different from prototype, i've locked it in half-step and control mode in 'Slow decay'. I've improve design and distance between wires.
This board don't have been tested at maximum current (only tested at 2A), nor in intensive service.

While integrated circuit accept a maximum current of 2.8A, i've limited the board to 2.5A.
I've tested without cooling, heating is intense (~100°C), and circuit disjunct over 1.8A. With a small blower, temperature remains very reasonnable