[Back to Home Page]


High performance microstep driver for unipolar stepper motors
Roman Black - orig Aug 2002 - web updated here Aug 2006.

What is it?

I originally designed the LiniStepper as a versatile PCB that could be used to drive most small to medium UNIPOLAR stepper motors for my own CNC projects. Because this was designed for me the design may seem a little eccentric. There is massive reliability from over-rating components, great versatility from using discrete power components and a PCB with numerous setup options, and an on-board microprocessor that can be programmed to do any microstepping mode and even act as complete motion controller "brain" all on the one board if needed.

Since "proper" commercial stepper motor drivers are very expensive there was an interest from people to buy the LiniStepper as a low cost kit that will provide good performance for home CNC uses. The LiniStepper soon evolved into an open-source project with the help of the wonderful people who run the PICLIST electronics forum.

The LiniStepper gives great motor performance with some very nice microstepping features, but it is linear in its method of controlling motor current, so it can give off a lot of heat if driving a large motor. In most cases this is no big deal, you just bolt it to a decent heatsink and maybe a small PC type fan and enjoy the great performance of smooth linear current control.


  • Step modes of 200, 400, 1200, 3600 steps/rev
  • (full step, half step, 6th step, 18th step)
  • Linear current smoothing, gives smooth "stepless" operation
  • Extremely rugged
  • Uses large power transistors, not a flimsy stepper driver chip
  • Best suited for stepper motors up to 1.5A per phase
  • Can be used for 4A per phase BUT ONLY IN FULL STEP MODE
  • PSU voltage 4v to 35v
  • Can be set up for a huge range of motor sizes
  • On-board PIC chip and free source code
  • PIC chip is ALREADY programmed for you!
  • Source code can be modded to give ANY step resolution or infinite angle control
  • Requires +5v logic supply for PIC
  • Has "standard" step and direction inputs
  • Compatible with most freeware home CNC driver software
  • Can be wired directly to a PC parallel port for home CNC
  • Works with 5-wire and 6-wire (unipolar) motors

  • It gets hot with larger motors, needs a big heatsink
  • It is a kit, you have to build it
  • Does NOT work with 4-wire (bipolar) motors

    High performance

    The Linistepper is a bit like myself; eccentric, quirky, rugged, old-fashioned and offers a very high level of performance. :o)

    As far as I know this is the only LINEAR constant-current microstepping stepper driver available for sale apart from a couple of very expensive high-end industrial units costing many hundreds of $.

    Look at that linear smoothing! This is the actual current through one motor winding in 3600 step mode, measured through one of the current sense resistors.

    Open-source project

    This one page is all I have here on the LiniStepper, but there is a large open-source project available which contains many pages;
  • Technical, how it works and linear microstepping theory
  • How to build it with step by step photos
  • Circuit diagram and parts list
  • PCB parts layout
  • High torque half-stepping theory
  • Full PIC .asm software
  • Tips for using it
  • How to tune it for different motor sizes
  • Owner's questions and answers

    You can buy the kit there too and it has been priced cheaply, for a similar price to the costs of the parts alone if bought from Digikey or other hobby electronics stores. The kit includes all the components, a high quality plated through hole double sided PCB, the plugs/sockets for all connections, and mounting hardware for the power transistors but DOES NOT include heatsink angle bracket or heatsink. All kit instructions are web-based and can be downloaded. The (very small!) profits from kit sales are divided equally between myself and the forum and help to support the forum.

    Click here to go to the LiniStepper project!

    Many thanks to all the people who have supported the LiniStepper open-source project and especially thanks to Mr James Newton who has worked very hard on the project and its web page.

    Some LiniStepper photos

    The photo above shows a LiniStepper test rig which consists of a 555 timer oscillator to generate step pulses, a 7805 +5v regulator, a pot to vary the motor speed, and a few dipswitches to set the different step modes and direction etc. It has a simple clamp-on heatsink about 150mm (6") high and the motor under test is a 5v 1A unipolar motor. A handy test rig from junkbox parts and an hour to solder together on veroboard. Notice the plugs as supplied with the kit.

    Above (and below) show a Linistepper driving a X axis linear table built from a very sturdy 1985 NEC 15" printer. The linistepper gives fine positioning even with an un-geared belt drive that gives 50mm translation per motor revolution.

    Above shows 2 linear tables (X and Y axes) mounted in a solid wooden frame ready to wire the electronics. Using Linisteppers allows very high X/Y translate speed (about 1 metre per second!) but still allows fine positioning. X/Y cutting area is just over 300mm x 300mm.

    I know a lot of people are using Linisteppers to power their home CNC tools and for Astronomy telescope positioning. Please email me any photos or links and I will put them here!

    - end -

    [Back to Home Page]