The Linistepper is a PIC-powered open source controller and driver for small to medium sized unipolar stepper motors. It offers standard full and half step stepper driving, as well as 6th and 18th microstepping. It provides a single wire rotation direction selection, and can be configured to operate with only a single wire that provides the pulses.
The Linistepper comes in a kit. I received the kit in a nice carton box which contained all the parts including the PIC microcontroller pre-programmed, a PCB pre-drilled with green solder mask and white silkscreen with the parts arrangement, with dimensions 70 x 51 mm (1.6mm thickness), and a mounting kit for the power transistors heat-sink. The heat sink was not included (of course). The mounting kit had 4 sets of M3 screws with nuts, plastic insulating washers and mica insulators for the power transistors, as well as a small quantity of thermal conductive paste. Finally, there was a 14-pages manual that gives information for the mounting procedure. The same manual can be found in this link.
All parts needed and a manual was in the box
Nice 2 sided PCB with green solder mask and white silkscreen
Complete insulating mounting kit for the power transistors heat sink
Mounting the kit
To mount the kit i used a temperature-controlled soldering iron, pliers, wire cutter, screwdriver and a drill with 4mm drill bit. I followed the instructions line by line and measured the time needed to solder all the parts on the PCB. It took me about an hour to finish the PCB. I used the heat-sink from my old P4 without the fan. Normally, it would take a total of 2 hours for an experienced person to have the kit ready with the heat-sink mounted, and checked for errors, ready to be powered.
Needed about an hour to solder the parts on the PCB
I used the heat-sink from my old P4 which proved to be too much for my 1.1 amp motor
Within 2 hours, the kit was ready with a heat-sink and checked for errors.
I ran some tests with different motors to see how it responds. First i used a 12 volts 1.4 amps 48 steps per revolution. As expected, i had lots of vibrations in full and half step operation, which was much better when i turned it to 6th microstepping. When i turned it to 18th microstepping, i was rather surprised by the smooth operation of the motor in high speed. In lower speeds, i still had little vibrations and noise, but still the operation was very smooth.
Then i changed the motor with a 9volts 0.95 amperes 24 steps per revolutions stepper. I wanted to test how smooth can this controller run this motor. Although the current of the motor is just 5 mA lower than the tuned current (1 ampere), the 18th microstepping was not a great success. That is not to be considered as a drawback
though, as the motor had only 24 steps per revolution. It had a good torque though.
Finally, i run the most proper test for this controller. I used a 2.8 volts 1.1 amps 200 steps per revolution motor. In low rpm i had still some vibrations, but i suppose that this has to do with the tuning of the controller. In higher rpms, there was almost no vibrations at all. The motor ran very smooth.
The first motor that i ran tests with, had 48 steps per revolution
A hard test with a 24-steps per revolution stepper
Test with a 200 steps per revolution stepper with excellent results.
On the oscilloscope
It was time to see what the Linistepper really does. The waveforms that you are about to see, comes from the bases of the 4 power transistors. My oscilloscope has 4 channels so i was able to monitor all 4 transistor bases simultaneously. At first, a quick look on the full step:
Full step timing
A single pulse
Nothing strange, everything is normal. I did not expect to see something strange after all. So i went to half-step. The maker of Linistepper says that this controller has full torque on half step. You can read more info about this method in this link. Let's see if is does what it promises:
A quick experiment proved that there is no significant torque decrease in half step.
It is obvious, that in half step, there is not a single on-off rectangular pulse as in full step. And that is exactly what the maker says about this method. I decided to run another experiment, to see if the torque in half step is as high as the maker says that it should be. I put a motor to lift a known weight with full step. Then i repeated the same procedure in half step, and measured the difference. In full step, the motor managed to lift 1110 grams. In half step, it could lift 1020 grams, about 100 grams less. That is about 8% less torque, which is a very good performance.
Time for the microstepping. As they both have the same timing, i will show you one pulse zoomed in the oscilloscope:
In microstep 6th, the step-up of the voltage can still be seen, while in microstep 18th it is very hard to distinguish the steps. So, the controller does indeed what it promises.
The resultsDoes it really worth its weight?
This controller will cost you $35 to get it today from piclist store. But is it the right for you? I mean, there are hybrid chips (such as the Sanyo STK672-080) which costs nearly $10 and needs only 2 resistors and a capacitor to operate, and provides microstep 16th. The Linistepper addresses to those who:
Want an open-source controller to be able to change it at will
Don't know or don't want to make a PCB by themselves
Want ultra smooth motor rotation (18th microstepping), although it can only be achieved within a narrow rpm band and has limited accuracy
Want to build something more complex like a 4 axis CNC, as piclist has modular solutions using the Linistepper
Has only 1 hole for mounting the PCB on the chassis
The large capacitor is a problem when trying to access the screws of the connectors
What i did like
It is open source! I love open source! It has an excellent and well-documented firmware to change at will
It has a very good selections of quality parts (power connectors, tantalum capacitors), and everything needed to mount the heat-sink on the transistors.
It is easy to make it - no programming or other setup
Nice compact quality PCB 1.6mm, with silkscreen and green solder mask. Although it is double side, it is extremely easy to solder.
Nice packaging - safe during shipping
Very smooth motor operation (stepping 18th)
What i did NOT like
Has only one hole to mount the PCB on the chassis
Should have horizontal connectors for the motor (not 45o) because the large capacitor behind them is a problem when inserting the screwdriver
The manual provided with the kit is not complete. It is necessary for the buyer to visit the website in order to put the Linisteper to work. I would prefer also color print for the photos, but that is just me
More detailed info should be provided for the 10-pin header - how to make one and what each wire would be.
The thermal paste is enough for the 4 transistors, but should have a few more, just a few, in case something goes wrong
indeed the kit was very easy to mount. Took me an hour or so to solder everything, slowly and carefully. Regarding the 10-pin connector, it would be nice to have a drawing or photo with the 10-pin header and the ribbon cable, and then explain each cable what it does. For example, cable 1 is the enable, cable 3 is direction, 5 is pulses etc etc. Of course, the proper polarization of the headers should be followed. This would be good for those who choose to use another means of powering and control, like i will use my PSU and a 16F1937 to control the Linistepper. In general, i test it on my rotary table and rotates very sooth. Good work.
Hi and thanks for reviewing the Linistepper! We hope more people will come to appreciate this little gem which even the designer of the famous Gecko drive has said is a compelling design for the small to medium small unipolar motors it supports.
I'm glad you noted how easy the kit is to assemble and how well documented it is. You may not have noticed, but in the last section of the manual, "Testing", there is a complete, step by step set of directions for how to hook up and run the driver. It did assume you are using a compatible break out board, so I've now added in the pinout of the control connectors 10 pin header for people who will not use it. If there was some specific instructions you felt were missing, please let us know and I'll add them.
I totally agree about the mounting holes... They got lost in the last board re-design and I hope Roman can find space for them in the next version. There is at least one good place to drill your own mounting hole: Just below the 1st "i" in "Linistepper" which comes out below the "B" in "R.B." on the bottom side. You can also drill one through the tip of the ground plane between Q5 and C1. Most people mount the driver on double sided foam tape or mount the heatsink and leave the board attached by the TIP122 leads.
Thanks much for the feedback and the review. We really feel this driver is the best thing out there for the size and type of motor it supports and flying the FOSS flag is something we really enjoy. Everyones contributions are appreciated and incorporated as possible. Thanks again!