CNC/RepRap Linear Motion – How to Move Things With Stepper Motors

Whether it’s a CNC, RepRap, or the Audrey Braille Display, linear motion is key. And that’s FAST linear motion, by the way – as fast as possible. After all, the goal is to move a CNC or RepRap head as fast as possible, while producing a nicely formed object.

To translate the veritable stepper motor’s turning into a back and forth motion breaks roughly into two camps – screws and wheels (gears). With wheel motion, you turn a gear and it turns a belt, other gear(s), or a chain, for example; with screws, a turn of the motor turns a screw, be it all thread, acme thread, or something else (of course, there’s variations, since you can turn an Acme screw indirectly via a gear or belt, but we’re referring really to the final result, not the method to get there).

That’s theory; but what’s the practice? The fact is, for motion movement on a budget, the problem breaks down into two sections:

  • I want to use a wheel to drive a belt or chain, for example.
  • I want to use a screw, such as an Acme or allthread.

By the way, Acme/allthread are common names for specific types of threads – allthread is the type of thread you find in long rods at the hardware shop. It’s cheap and simple to use; just match a nut or two to it, and use that to convert the motor turning into linear motion, by attaching it to a platform. However, allthread suffers from a very real problem: friction. A typical screw is designed to be full of friction – after all, you don’t want your bolts to loosen easily, do you? But this friction makes it harder for a linear motion system, perhaps too hard for normal use (although many hobby CNC machines have successfully used allthread for linear motion). As well, they tend to be imprecise, although a typical non-professional user would likely never notice.

In contrast, Acme thread is a different design, with shallow angled threads, so friction is reduced. This means it’s better for linear motion – turn the thread with your motor, and use a nut on the Acme thread to get the forward/backward motion – attach that nut to a platform (ideally, rolling on bearings for a low-friction ride), and you have one axis of a CNC machine, or the travel part of the Braille display.

However, both types of threads suffer from another problem – speed. For example, I can find acme rod (also called lead screw) on eBay with 10 or 16 turns per inch. That means to travel one inch linearly, my motor has to turn at least 10 times. Using my 1.8 degree step stepper motors (which means 200 steps per turn), that ends up being 200×10=2,000 steps just to move an inch! That sounds very precise, and if all components are carefully designed, it is. But contrast the really slow speed of the design with ultra precise cutting at 1/2000 of an inch – is it worth it? For a hobbyist, not likely – even 1/250 of an inch (about 1/10 of a millimeter) is precise enough for most work. And in my Braille display, left/right motion of 0.25-0.5 mm per step is fine – which works out to be about 1/100 – 1/50 of an inch.

Of course, we’re not the only ones concerned with this speed issue, and the makers of ACME rods have come up with a solution – starts. Starts means you have more than one thread per rod (a different ‘start’ – get it?) and each of these threads winds around the rod separately like the stripes on an old-fashioned barber pole, never touching. However, the result is that the speed of the rod is increased by the number of starts. For example, a 10 thread per inch ACME rod with 2 starts is actually 10/2=5 threads per inch, as far as the stepper motor is concerned, since it only moves on one start or the other (actually, straddling both together for strength, but you get my drift). The result is faster movement.

As you can imagine, this comes at a cost, since specialized ACME designs require specialized forming and cutting, and specialized screws to attach to them, which means you likely won’t be using a multi-start rod on any hobby project. However, I am still exploring how hard it would be to cut my own low-tech multi-start rod for the Braille display – after all, if I could get it down to an effective 2-4 turns per inch, I’d be in a great position to use threaded rod for the linear drive in the Display. Don’t forget the math – at 200 steps per turn on my stepper, 2 turns per inch for the threaded rod means 2×200=400 steps to move an inch, which is 1/400″ or 0.64mm per step – and 4 turns per inch would halve that distance.

By now, you probably realize that threaded rod of any sort is a problem for any hobby motion movement (and I haven’t even gotten to whiplash, where a long thin threaded rod turning fast can oscillate and whip around in the middle, forcing the device to go slower than it has to). Fortunately, there’s other options, like geared belts and chains. These take a turn of the motor and turn it more directly into motion – attach the chain or belt to a platform, and each step moves the platform appreciably.

However, even they have issues. Belts, for example, require a certain number of teeth to remain on the wheel at all times for gripping (typically six or more), so very small wheels are not practical. The result is that fine motion is hard to do, unless you move to very, very small belts; in turn this means you can’t move bigger loads. Likewise, chains require bigger wheels, again making motion a problem.

How big an issue is this really? Well, you can get an estimate of linear motion from a gear by taking the gear’s circumference (or else the diameter times pi) and dividing by the steps per turn (actually, you’d more accurately work with the diameter to where the gears mainly mesh, called the pitch diameter, but for rough calculations the full diameter will do). So for an example, a two inch diameter gear has about a 6.28 inch circumference; divide that by my 200 steps/rotation motor, and I get about 0.031 inches per step, or close to 1/32 inch. We can also reverse the math, since if I want 0.25mm motion per step, I need 200×0.25mm=50mm per turn for the circumference, which means a diameter of 50/3.1415 or about 16mm – a very small gear indeed! And to keep at least 6 teeth on it I’d be looking at a small belt with notches less than 2mm apart, which reduces my carrying capacity.

One way machines use to solve this is by moving stepper motors in partial steps, called microstepping. Using software or hardware chips, it’s possible to break a step into fractions like 16ths or halves, effectively increasing your precision. This is done by pulling each step in two directions at once, so the motor is caught in between steps. However, not all stepper motors are exactly precise when it comes to micro stepping; in addition, micro stepping significantly reduces the power of the motor, since it requires the motor to ‘fight’ with itself, by pulling in two directions. However, it can be a solution to get finer control out of a gear or leadscrew.

Chains are worse than belts in this instance, since they are likely not small enough for this kind of job. Of course, if you are moving large loads, or gearing down the motor, then chains can be a cheap solution (for example, by using salvaged bicycle chains). Be warned that they are heavy and sag, which can affect your actual motion. However, they can be tensioned tighter than belts, which makes them more responsive and precise.

Have I left anything off? Yes, deliberately so. A rack and pinion is like two gears, in which one is ‘unrolled’ into a straight line. Move the round gear, and the rack moves back and forth as you wish. It’s got the low-friction benefits of the gears/belts versus threads, but of course it’s more complicated. However, it’s cheap; since you can cut out your rack out of just about any material, it is ideally suited for places where specialized materials are hard to come by. However, a rack is rigid, which means it’s a pain to shoehorn into a small device (like a Braille display!), so even it ends up being a compromise.

There you have it – a quick look at the types of linear drives you’ll likely use in most designs. While this doesn’t cover everything, it’s the price/performance area many hobbyists are into. It’s also the majority of the designs I looked at for the Braille Display – and ones you’ll likely consider for your next RepRap or CNC machine.

Comments are closed.