Talk:Stepper motor driver
Moved from the page:
stepper motor driver
You do not need a "controller" to drive a stepper motor. All you need is a couple of transistors.
I've been driving these things just fine using an opto-isolator and a power transistor hooked up directly to my printer port since way back in 1986, and it still works today.
Personally - I think the idea of using a stepper driver is really silly. You don't need 2 computers and two sets of everything just to energize coils in sequneces! Worse - the fact that you've stuck another gadget between your computer and the stepper means that you've doubled the complexity of your computer code, and halved the useful info you can get back all at once. Yes - it's 400% sillier to use a driver, than to simply drive it direct from your PC!
One major thing lacking from drivers, is the PCs ability to measure the current the stepper is drawing. Without the driver, it's a simple matter to let the PC get this extra bit of info, and then your code can calculate the force that your steppers are experiencing - so you could for example detect a stall, or make them go faster when they're under less load, etc etc.
Just my 2 cents: You have no idea of the physics behind a motor and whats going on inside a stepper driver. Of course you are able to make a motor turn by just using some transistors and portpins. But if you want to get high performace out of it, this is the wrong way. And the complexity of your software won't increase when using a driver with a simple step and direction interface. So what's the problem?
Regards Thorsten Ostermann
The anonymous poster is right -- driving steppers using an opto-isolator and a few transistors plugged into a Centronics style printer port works fine -- and is the most common way of using EMC including EMCRepRap. Alas, it's getting harder and harder to find a computer with such a port. Those of us without such a port are forced to use unnecessarily complicated arrangements. --DavidCary 18:22, 28 September 2012 (UTC)
This is a rather strange discussion to put on the page rather than in the discussion. But it is running a CNC machine off a printer port that is rubbish.
Yes you do need two computers, at least two computers to 'energize coils in sequence' and run a GUI front end. Because Linux is not designed as a real time kernel or maintained as such. So Running LinuxCNC means running an obsolete version of Linux with the forked realtime hacks that might or might not work properly. I have built serious real time systems, one analyzed 6TB/sec raw data (ZEUS at HERA) we used several thousand computers (and more DSPs).
I have stopped using LinuxCNC in favor of Mach because I don't think the LinuxCNC architecture is credible. I don't want to have to put Linux on a laptop that is perfectly happy running OSX just to be a front end for a CNC machine. If an architecture depends on the use of a particular O/S then it is a sure sign it is wrong. One of the reasons that RepRap works much better than LinuxCNC is that every RepRap has an onboard stepper motor driver. Thats what a RAMPS or RAMBO is .
Giving the real time sensitive parts of the problem to a second computer is exactly the way to run a CNC machine. Which is why every commercial model does just that. The 'computer' costs $1. Having the separation is only a disadvantage if the interface loses information like stalling warnings. But the obsolete parallel port approach does just that.
The Centronics port is not just obsolete, it is not supported on the current generation Intel or AMD chipsets. Every current machine that has such a port is hooking it up to one of the serial busses internally and so it has the same timing and jitter issues that make add on cards unacceptable for CNC use. --Hallam (talk)