please dont rip this site

LiniStepper Microstepping Stepper Motor Driver Kit

How to use it - and keeping it cool!


CAUTION: The Linistepper requires suitable, large heatsinking. Such as standard chunky aluminum/alloy heatsinks with fins. For additional heat dissipation use a bigger heatsink with extra fins, or even add a small computer fan to remove the excess heat. (steel is not a suitable heatsink, the angle bracket is NOT a heatsink.)

Connecting the Linistepper.

Control Connector

The connector furthest from the heatsink (on the left) is the control connector.

Linistepper (Version 2 or higher)

Starting with Pin 1 on the 2x5 header:

Pin 1 /Enable (low = enabled full power, hi = down*),

Pin 3 Direction input (hi = reverse)

Pin 5 Step input (step on positive edge)

Pin 7 Ground for Motor and driver (common),

Pin 9 +5VDC regulated

All even pins are grounded to interface common

* On the V3, /Enable high disables the driver. Low power hold is automatic.
  On the V2, the enable line doe NOT actually enable or disable the controller. In either state, the controller WILL step the motor. V2 uses /Enable HIGH to select low power mode which is usefull for holding position between jobs without overheating the driver or motors. This is the opposite signal polarity from the Linistepper V1. On the V2, low=full power, high=low power.

  Original Linistepper (Version 1)

Starting closest to the diodes, the 7 pins are:
* GND (Ground)     (also attached to the motor ground)
* +5v regulated    (power for PIC chip)

* Step input       (new step on + going edge)
* Direction input  (hi = reverse)
* Low power        (lo = low power)

* Mode 0
* Mode 1  (these select the stepping mode as shown in this table)

Mode 0	Mode 1	Result                          
0(GND)	0(GND)	200   (full step)
1(+5v)	0(GND)	400   (high-torque half step)
0(GND)	1(+5v)	1200  (microstep 6th)
1(+5v)	1(+5v)	3600  (microstep 18th)

Note: The mode 1 pin is at the corner of the printed circuit board.

Wiring: For information on how to connect the Linistepper (or multiple Linisteppers) to a PC parallel port, see: or try our Linistepper "4 AXIS / Mode / 555 / PWR" kit

Software: Setup instructions are available for TurboCNC , Mach 3, or EMC

Timing: The Step pulse must be at least 3uS long and must come 1uS after any change in the Direction. Stepping rates of more than 50,000 steps per second are supported. Enable should just be left on unless the unit will not be moving for several seconds at least. When enable is turned on, at least a second should be allowed before attempting movement.

Power and Motor Connector

The connector closest to the heatsink is the power and motor connector. The Motor Power positive main voltage should be supplied with 4 to 10 volts more than the maximum rated voltage of your motor. For example, a 5 volt motor would run nicely on a 12 volt supply; the driver will stay cooler on a 9 volt supply, and the motor will turn up to a somewhat higher maximum RPM with a 15 volt supply.

The 7 pins are divided into 2 for the power connector, and 5 for the motor, starting closest to the resistors;

  • Main ground (GND)
  Motor Power (motor rating + 4v; up to 35v max)
  • Postive main voltage *

  • Motor + (common) *
  Motor Leads
(unipolar motor)
  • Phase A+
  • Phase A-
  • Phase B+
  • Phase B-

*Note: On the Version 1 PCB, "Motor + (common)" and "Positive main voltage" were provided as two seperate pin, but they have always been connected together on the PCB; these are the same electrical connection. On the Version 2 PCB, these are combined into one screw terminal, which can accept two wires, one from the power supply, one to the motor common. On the Version 3 PCB, there is a seperate screw terminal for motor power in, and motor common out, although these are the same electrically.

Don't disconnect any motor wires with the power turned on!

Using the Linistepper

Important! All 5 input pins MUST be connected to something, ie to a digital output or tied to 0v(GND) or +5v. DO NOT leave inputs floating!

Most of this is quite obvious:

Motor does not turn??

First check that the regulated +5v is there, then motor voltage which is normally between 4v and 35v.

Assuming you are clocking the step input and you have the low power pin held hi (full power) and you have the motor common + wire connected properly there is one likely reason that the motor does not turn.

Try swapping one A wire with one B wire, you may have connected the motor phasing wrong. If you have the phasing wrong, the motor will tend to sit there and "wobble" or "buzz". :o)

If the motor turns, but in the wrong direction, you only need to swap the two A wires with each other.

Don't disconnect any motor wires with the power turned on!

Keeping it Cool!

Jelly Baby Engineers: "Heatsink? You call that a Heatsink?? THAT'S A HEATSINK!!"

The linistepper is a linear driver and will dissipate quite a lot of heat IF you have a psu voltage that is a lot higher than the motor coil voltage.

The difference between supply voltage and motor voltage is lost as wasted heat energy.

When you only need low speed performance, ie motor speeds under 4 revs/second, you can use low supply voltage and minimise heat and power loss. The motor will perform well at low speeds, with the linear smoothed microstepping advantages giving better performance than many chopped drivers that are not microstepped, and similar heat performance.

To get minimum heating and power loss you need to use the minimum supply voltage that will give full current with your chosen motor.

Finding the max efficiency point is quite easy:

In most stepper uses a motor speed of 4 revs/second etc is all you require, especially when microstepping gives increased positioning resolution AND increased low speed torque. You no longer need excessive gearing to get resolution and many apps no longer need high speeds. Using a psu of only 3v above the motor voltage will give decent motor performance and greatly reduced motor heating.

If you need better high speed performance you will need to use a higher psu voltage. How much higher depends on the torque needed at the highest speeds. Here's a bit of theory about this:

Stepper inductance

Stepper motor coils are magnetic and have inductance. To put this very simply, inductance means that it takes TIME to build a magnetic field in the coil, and larger inductance means that the change from no magnetic field to full magnetic field takes longer than a low inductance motor. Inductance is closely related to how many turns of wire so motors that have finer wire and more turns will have higher inductances.

Like this:
fine wire = high volts/low amps = high inductance = slow motor
thick wire = low volts/high amps = low inductance = fast motor

Many people instantly assume that low inductance motors are better, and indeed these days they are more common with new motors. But low inductance motors are NOT always the best choice.

The linistepper was designed to be well suited to many older stepper motors, most of which are high inductance. These motors are often found at VERY CHEAP prices from "surplus" sellers.

Apart from that big advantage, high inductance motors are usually more efficient magnetically and often give higher holding torque for the same coil wattage. These charts are from a manufacturers website. Motors are the same apart from winding type. Holding torque is 20% more for the high inductance motor, and even at 400 steps/sec (2 revs/sec) the high inductance motor still has 8% more torque than the "fast" motor.

The best advantage of high inductance motors is that because of their inability to change current rapidly they are a better choice when you mainly need low speeds. They are smoother and produce less excitation energy at low speeds as they change from step to step more gently. I often see people struggling with resonance problems, and find they are using low inductance motors on systems that never exceed a few revs/second! Many of the suppliers are at fault here, and even the educational institutions often teach that low inductance motors and chopper drives are "superior". Superiority MUST be evaluated by application. :o)

In any case for the linistepper (or any linear driver) it is better to use the higher impedance motors, simply because they require less current.

The amount of PSU voltage you need is determined by the application. In most cases a voltage of 3x the rated motor voltage will give decent performance through the main resonances up to 10 or 15 revs/second. I have one machine here with 5v 1A motors giiving good power at speeds up to 10 revs/second, and an 18v PSU. I also ran an old low-speed "pancake" type 5v 400mA motor at a speed of 80 revs/second with the linistepper and 25v psu... It screamed!

Increasing the PSU voltage increases the torque at high speeds, but also increases heat and power waste. You will get better overall performance by choosing a motor with lower current and higher inductance. However if your application really does need high torque at very high speeds you will need a chopper drive and low inductance motor.


Only use higher PSU voltage if you REALLY need high speed power. In most cases the problems users experience relate to resonance at lower speeds. Low speed resonance is reduced by using a lower PSU voltage!

On a system where low speed resonance is a problem (like a belt driven setup or any lightweight system) you will find resonance is greatly reduced by using the lowest possible PSU voltage, where the motor inductance is maximised in effect. This gives the smoothest possible step transitions, and slow resonant systems are one situation where a correctly set up linear and "old fashioned" high inductance motor will really out-perform the modern chopper driver.

Here are two charts showing typical motor resonances, these are fairly typical high inductance motors and show how resonance is generally not a problem after about 2 revs/second. With low inductance motors you may still be having bad resonance problems even as high as 20 revs/ second.

Running your system with a variable voltage psu and testing for motor speed and resonances you can determine the optimum psu voltage where smoothest operation and less heat (low psu voltage) is obtained at a psu voltage high enough to still give the desired torque at higher speeds.

Tips for cool running!

Interfacing with CNC software

The inputs to the linistepper can be connected to a PC printer port, or other 5v digital device. Be aware that the PC and the stepper motor PSU and the +5v regulator must all share the same ground. As PC's have a grounded case and PSU this is rarely a problem.

Some PC printer (parallel) ports only put out 3.5v when at logic "high". The linistepper inputs require over 4v input for a logic high, and under 1v to input a logic low. In some rare cases the PC printer port will not output >4v and you may need to add 1000 ohm resistors from each of the input pins to 5v. A simple test with a voltmeter should confirm that your PC port voltages are within spec.

The linistepper uses a + going step clock. Each step occurs when the step input goes from 0v to 5v. Set your CNC software for + going step. Likewise set the direction input to give the correct direction motor rotation. If you can't change the direction in your CNC software setup you can swap the two motor A phase wires with each other.

Changing step modes on the fly!

The linistepper, Version 1 only, provides the feature where you can change between step modes on the fly, ie as the motor is running. This allows you to use 200 or 400 steps for fast transits and then change to 1200 or 3600 steps for final positioning. Version 2 and 3 require that the driver be disabled (/Enable high) before mode changes will have effect.

This is an advanced feature and has some drawbacks, the main one is that your controlling software must be responsible to track the change in step resolution. I don't suggest using this feature unless you are sure that you can do this without losing track of the step position.

The basic rule:
Make sure the driver is on a valid microstep for the mode you set, BEFORE you change to that mode.

ie; if you are in 3600 step mode and you want to change to 1200 step mode, you must first be on a valid microstep for the 1200 step mode. These valid steps are every 3rd microstep, so when changing from 3600 mode to 1200 mode you must be on the 0,3,6,9, etc step.

The valid steps for each mode are shown here:

Mode    Valid steps
3600    all 72 microsteps;  0 to 71
1200    every 3rd step (mod 3) steps; 0,3,6,9 up to 69
400     only 8 valid steps;   4, 13, 22, 31, 40, 49, 58, 67
200     only 4 valid steps;   9, 27, 45, 63

So if you are changing from 3600 step mode to 200 step mode, you must first position the motor on either the 9, 27, 45 or 63 microstep, as these are the only valid steps for the 200 mode, and THEN you can change to the 200 step mode.

If you don't position on a valid step before changing mode, the driver will LOSE or GAIN steps when it re-synchronises in the new mode. This results in a step error, which is also continued when the mode is changed back or changed again.

When the linistepper powers up, it is on step 0. The user software is required to count steps forward and back and always track which of the 72 possible steps the driver is at. If your CNC software can't do this modulus 72 tracking then don't change modes on the fly!

There are further complications starting in 200 or 400 modes. If starting in either of these modes, the step will be 0, which is a non-valid step. The PIC will add 9 or 18 microsteps for each step signal. The driver will be on invalid steps until the cycle loops. That will occur in one step if the first step is backward, otherwise it will take 4 steps forward in 200 mode, or 8 steps forward in 400 mode to re-synchronise onto valid steps.

So, do not change modes on the fly unless;

  1. you know how to track and sync the steps, or,
  2. you don't care about losing some steps :o)

It is possible to re-write the PIC software to address these issues and keep track of the step offsets internally, but I really can't be bothered as the modulus 72 tracking still needs to be done in the OTHER software (the PC side). :o)




See also:

file: /Techref/io/stepper/linistep/lini_use.htm, 28KB, , updated: 2015/12/10 13:06, local time: 2017/3/29 04:33, owner: RB-ezy-Q33,

 ©2017 These pages are served without commercial sponsorship. (No popup ads, etc...).Bandwidth abuse increases hosting cost forcing sponsorship or shutdown. This server aggressively defends against automated copying for any reason including offline viewing, duplication, etc... Please respect this requirement and DO NOT RIP THIS SITE. Questions?
Please DO link to this page! Digg it! / MAKE! / 

<A HREF=""> LiniStepper, lini, stepper, linear, 6th microstep, linear microstepping stepper motor driver, constant current linear driver, circuit Linistepper boards, LiniStepper kit, hobby stepper, robot stepper driver kit, CNC stepper driver kit</A>

After you find an appropriate page, you are invited to your to this massmind site! (posts will be visible only to you before review) Just type in the box and press the Post button. (HTML welcomed, but not the <A tag: Instead, use the link box to link to another page. A tutorial is available Members can login to post directly, become page editors, and be credited for their posts.

Link? Put it here: 
if you want a response, please enter your email address: 
Attn spammers: All posts are reviewed before being made visible to anyone other than the poster.
Did you find what you needed?

Stepper motors CAN be smooth!
And stepper controllers can be strong and cheap. Roman Black's Linistep stepper controller kits:
o 18th microstep
o Linear smoothing
  o Open source
o Full kit $25!

Welcome to!