Great Post! Thanks for sharing.
The conventional wisdom (completley incorrect) is that lost steps are just part of life with stepper motors. Over the years, I've seen a couple bazillion posts dealing with stepper problems, and have come to the conclusion that the overwhelming majority of problems are due to:
1) Too small a motor - An awful lot of people seem to start cheap and small, and only when that's proven inadequate do they break down and buy appropriately sized motors. If you're building a CNC machine, either do the calculations to determine the torque and power you really need, or be guided by what others have achieved success with. There is some excellent information on the Gecko site, in the FAQ section, on how to properly size power supplies for steppers.
2) Poor/inadequate power supplies - This is REALLY common. Using a 12V or 24V power supply, where a 48-72V supply is really called for. Similarly, many people use PC power supplies, or other surplus supplies that simply don't have the current capacity required. There is some excellent information on the Gecko site, in the FAQ section, on how to properly size power supplies for steppers.
3) Poor quality controllers - There are lots of cheap, crappy stepper controllers out there, many very limited in both voltage and current capacity. For all but very small machines, these are a waste of money. Spend the money for something good, like the Geckos, Kelings, and others. Steer well clear of unipolar controllers, and go for the more expensive PWM or "chopper" controllers, preferably with micro-stepping. They are more expensive, but in the long run wil be cheaper than buying the crappy ones first.
4) Tuning in Mach3 - There are many factors that must be right here. First is DO THE WINDOWS OPTIMIZATION as spelled out by the document on the ArtSoft website. If you have "flaky", random problems, they are VERY likely to be caused by skipping this critical step. As an example, I just resurrected my stepper-driven mini-mill. Before doing the Windows optimization, it would randomly stall one or more axes unless I turned the max velocity down under IPM. Just knocking one of the motors, or putting a load on the table woudl cause a stall. After doing the optimization, it'll run perfectly reliably at over 200 IPM, and it'll drag me along with it if I try to stop the table. If you've got a bad, or underpowered, PC, think about either buying a better one (I just bought a 2.6GHz Dell system on E-Bay for $80 with free shipping), or spring for a SmoothStepper, which will even let you run with a laptop if you wish, as it provides *perfect* step timing at all speeds.
Getting your ports and pins setup and timing right, not just to where it seems to be working, is critical. In particular, getting the step polarity correct, and the pulsewidths correct, is VERY important. Consult the controller manufacturer if necessary, but get this right!
Make sure the Mach DriverTest indicates your timing is "Excellent" ALL the time. If you see any glitches, figure out what causing them and fix it. All it takes is a single badly-timed step pulse to stall a stepper at speed.
Going for max possible rapid speed may be good for "bragging rights", but is of no practical value. Accleration is FAR more important, particularly if you'll be doing 3D work. Going for max rapid speed will force you to tune down acceleration, which will hurt overall performance, and cause you to often not be able to reach your programmed feedrate, except for very long moves.
You MUST figure out where the limits are, for accleration and feedrate. The way I do this works well. Write a short G-code program to run more or less random combinations of axes over different paths. Mine does a sequence of end-to-end single-axis and diagonal moves on the X/Y axes, running them just barely short of the limits at both ends. This makes lost steps easy to detect, because it'll hit the stops on the next move. Put this code in a subroutine, and call that subroutine in the main program, setting a high loop count (hundreds of iterations at least). Set your zeros,
and start the program. If any axis EVER stalls or loses steps, then something IS wrong somewhere, so find it and fix it. It's probably one of the items listed abovel. Let this program run for a couple of hours, then, when it's done, return to your zero position, and make sure it's still dead on. If it's not, then you've still got a problem. You should be able to run a program like this for hours with no loss of position on a properly-designed, properly-tuned machine. DO NOT write-off problems to "Ah, they're just steppers! They always lose steps!". This IS NOT TRUE.
Running the above test for long periods has the added advantage of "wearing in" the machine. You can use it to get the ways smoothed out, and everything working smoothly and tightly. Just make sure you run all axes to all limits A LOT, and don't just concentrate on the center of motion. Re-adjust your gibs and re-lube evertything after running for several hours, and I think you'll find the way operate much more smoothly from end to end. It sure made a difference on mine. It's now nice and tight, with almost no detectable slop in the ways, yet it'll run stop-to-stop at 200 IPM for hours with no position loss.
Great Post! Thanks for sharing.
This is excellent information not only for those new to this world, but a good refresher for some of the old timers around here!
This needs to be put on sticky status or better yet given "Article" status.
AKA Country Bubba (Older Than Dirt)
Windows is just flaky. The machine running my mini-mill is a very basic PC, with a fresh install of WinXP-Pro, properly optimized for Mach3. Yesterday, my system ran my "torture test" for hours, with no lost steps, running at 150IPM. I also ran it for a while at 200IPM, again with no lost steps. This AM, I booted up, and could not run 50 IPM without stalling! If I continued to command a move after the stall, there was a VERY clearly audible "thunk" at very regular intervals. I've seen this before, and it's a Windows thing. I changed nothing, and simply rebooted the PC, and it's back to working perfectly at high speed. I encountered the same thing on my big mill, before I put a SmoothStepper on it.
Good post. Let me add a little to it:
1) "lost steps are just part of life with stepper motors" I agree, not true. Send a billion steps to well set-up system will result in exactly 1 billion steps taken; not one more, not one less.
2) Don't do things backwards. Avoid the "I salvaged a 0.5A NEMA-34 motor from a defunct printer and I want to use it on a 4' by 8' router I'm building". Things probably won't end well. Design the machine first, then pick a motor to power it, not the other way around.
3) Don't be too cheap. Cheap is good but too much of a good thing can be bad. Avoid the "Can I use some 15A three-axis drive kits I found on e-bay for $9.99 with Mach3 and my Bridgeport mill?" pitfall. There is no magic in the world; there is no pixie anywhere on earth selling high performance drives at an unbelievably low price.
That is everyone's dream but it just doesn't happen. Reality is unbelievably cheap drives deliver unbelievably poor performance. Here's the reason why:
The world's electronic market is a level playing field. Someone in China pays exactly the same for electronics components as everyone else. Resistors cost $0.003, commodity ICs are $0.08 and so on the world over. There is very little labor content in modern drives because they are assembled by automated machines. The perceived third-world country advantage of cheap labor is canceled by automation. The result is a drive built in China or the US will cost same to build.
Drive performance depends on the drive's complexity. Anyone can churn out a L/R full-step unipolar drive, tag it with 15A and 100VDC specifications and sell it for $10 in kit form. Just a PCB and a bag full of parts. Sounds like it can't be beat.
Like Ray said, if you want a happy life, avoid unipolar drives, avoid any drive that doesn't microstep accurately (Allegro and L297/298) and avoid any drive that doesn't have mid-band resonance compensation. Avoid all low voltage drives based on chipset solutions (Allegro and L297/298). They are fragile and blow easily. Designs based on them are primarily cookbook designs (IC manufacturer's datasheets) without anything to differentiate one drive from another.
What determines a drive's price? Complexity. At the simplest end ($10), four power transistors driven from the parallel port will turn a motor. The poor motor's performance has little resemblance of what it could do if it were driven with a complex drive. A crappy drive gives crappy motor performance. Take a look at all the noisy and torque-robbing resonance suppression ball-bearing and damper designs on this group used to overcome inadequate drive shortcomings.
A complex drive makes the motor shine. Complexity means a lot of extra components used in the design and they cost money. That makes the drive cost more and it's unavoidable. It does result in a motor that does more than you thought it could.
I might add that the China import stepper drivers with the model # KL-56 and the true model # H2MD have no midband adjustment and performed poorly with 400oz NEMA 34 low inductance steppers. The Gecko drives gave twice the speed and much smoother midband performance.
The low cost Geckos G251 should be the starting point for just about anyone.
amen guys. good post for the new kids on the block looking for some input on setup.
Geckos rock. G203v's.
You forgot to mention that servo drives are better because they automatically correct for lost steps.
(ducks and runs)
The only real problem I see with your post is that the people who need to read it, won't.
Mariss's point about designing from the center outwards is in the same vein. Many people go on eBay and start scrounging stuff that looks cheap, and then come on here and brag about their "score," and how they're going to build a CAT40 taper machine with enough travel to cut a 4x8 sheet of titanium for slightly less $ than a Tormach. Every so often a genuine expert shows a finished machine that resembles this, so the newbs start to think this is a successful way to go. I can say with certainty that 99% of the time I've spent on eBay relating to this hobby was a waste, and the other 1% didn't make up the difference.
What a bunch of marketing ____ ____ Millions of machines run on steppers that don't have Gecko's in them and perform just fine. They run L/R drivers, unipolar driver, full step, half step, don't have mid-band compensation and never miss a beat. From cheap computer printers to Bridgeports the full gambit of complex motion machinery.
This is a CNC forum, and you use it as a personal Gecko marketing media!