MYCNCUK > ELECTRONICS > Control Hardware & Systems > What is the advantage of using a motion controller rather than just a PC and BOB?
View Full Version : What is the advantage of using a motion controller rather than just a PC and BOB?
I'm new to CNC and still getting to grips with converting an old NC machine to run on Mach3 (well, that's what I'm using at present).
Just when I think I know what various boards and components are for I find that I have a gap in my knowledge which I can't get my head round.
My machine seems to work fine with an old PC and a BOB. So what advantage is there to using a motion controller board? What does it do that a BOB won't do?
Ah right, I get it now. So when my steppers make a noise like they're losing steps (but actually are not) it's down to the computer running other stuff. I noticed it was much worse the other day when I had another bit of control software open.
So, how does a programme like Mach3 or LCNC work with the motion controller? Does Mach3 have a sub-programme to generate the pulses? I suppose that this is bypassed and the G-code sent straight to the motion controller - or is it more complicated?
Oh, and what about ports and pins and limit stops etc?
As said, a motion controller takes the pulse generation task away from the PC. Mach3 and LCNC both have to go to considerable lengths to try to persuade an operating system that is used to doing its own thing to produce a regularly spaced pulse train to drive, particularly, the step signal. The pulse rates needed can get close to limits of the PC and sometimes beyond, as you have seen. The MC takes on the pulse generation role and by using dedicated hardware will outperform a PC. The PC and parallel port are OK up to a point but have their limits. Of course, an increasing problem these days is that most new PCs don't even have a parallel port so a motion controller that connects via USB (good) or Ethernet (better) is almost essential. Add the fact that Mach3 needs a 32-bit version of Windows to use the parallel port and again a new PC will come with 64-bit Windows 10 and you are stuck.
A parallel port limits you to 5 inputs for limit switches and so on. This is a physical limit of the parallel port - that's how many pins will accept input signals. There is also a limit to the number of output pins. A MC can have many more input and output pins to get past these limits. Generally you will specify these using the ports and pins page in Mach3 - my CSMIO/IP-M uses port 10, for example.
Mach3 works just as it usually does but passes movement instructions to the MC to turn into step signals so it has a lot less to do. It will send a buffer-full of data, so if it gets distracted by some internal housekeeping task, the MC will still have data to get on with until the PC catches up again.
There are motion controllers that will work with LCNC but as far as I know, there are no MCs that will work with both.
There can be other benefits - some motion controllers will use 24V signalling for better noise rejection (more reliable), and differential signalling (for the same reason). Ethernet is generally a bit more reliable than USB - better ground isolation and differential signalling. Again, this is for noise rejection - a CNC control box is electrically quite a noisy place.
Use your control Pc only for CNC. not browsing internet, running other progs and so on...No energy savings, screen saving and usb and ethernet switch off after certain time.
I was just about to ask a similar question so thanks for the information. Could I go a step further (no pun intended!) and ask for a recommendation for a MC. There are so many option Ive spent 2 day on eBay and am still confused.
I have a lathe/Mill so I want X,Y and Z stepper motors for sure and I wouldn't mind 1 spare channel for my rotary table.
I guess I will need some limit / home switch inputs.
I have a variable speed drive on the machine already so I need an output to that.
I would line to maintain the ability to thread so I think I need a couple of inputs for tacho position sensors.
Im just getting to grips with Autodesk Inventor, but haven't got a preference on Mach3 or LinuxCNC as a controller so open to suggestions / recommedations on that also.
Many thanks for the comprehensive reply Neale - I think that it might be well worth me thinking about a motion controller.
This learning curve can be quite expensive by the time you've understood what's needed and why. A friend has a lot of experience with Mach3 and builds small machines for clockmaking - he's a very competent and experienced engineer with a great deal of knowledge in this area. He advised fitting a couple of parallel ports to the PC, cleared off all the old software and helped with the initial (re)motorising of my machine. Pretty early on he realised that the approach he'd taken on his little machines wasn't going to be up to the sort of thing I have.
Abandoning the parallel ports and moving to a ethernet MC sounds like a sound move.
Thanks again Boyan for your very sensible suggestions. We have already dumped lots of domestic software "sludge" that was slowing the machine down. I'll take a look at the energy saving settings etc.
Just as I've concluded that I need servos rather than steppers, I've slowly arrived at the conclusion that a motion controller would be a good idea - buying the wrong sort of servo drivers may have inadvertently done me a favour.
I am already thinking that the Fehlmann mill that I'm working on is going to be a compromise compared to something like a Deckel FP2NC or some other quality first generation NC machine from the 80s. As I understand it most of these old machines used analogue servos so getting some experience with them now will be an advantage.
If You are working on a fehlmann..
I would definitely recommend ac brushless servos and a csmio controller.
A motion controller provides much smoother pulses, and at much higher step rates, than other options.
All the high-speed stuff is then dependent on the motion controller, and thus their sw/fw/plugin support is critical.
This applies to high accuracy servos, high accuracy homing, high accuracy probing, etc.
Servos, modern, have 5-10k counts/rev.
Thus, at 50 r/sec, = 3000 rpm, = 500 kHz.
Very few systems support this.
A csmio basic does 256 khz.
I think it does not support rigid tapping as-is.
Not sure, check with cslabs.
If this rigid/tapping does not matter, that would be Your best solution, today, imo, ime.
If You want a Really Good solution, get a CSMIO-IP-S or IP-A.
I use IP-S on a lathe, industrial, servos, very happy.
If You want a Really Good solution cheap, get a Pokeys Ethernet board.
Low cost, excellent sw, support, hw.
Limited to 125 kHz, mostly wont matter imo, ime, for the speed.
Mach = 125 kHz but I think Mach4 is higher speed.
I would recommend against anything else, especially usb, exception machmotion and other industrial stuff, I have never heard anything negative about.
So those c/would likely also work really well- no personal experience.
A smart read is that I am not mentioning some popular hobby controllers - some that I have. There Is a Reason.
Given those requirements, you're looking at 4-axis + the spindle. Depending on the motion controller, they may give a PWM option or dedicated 0-10V output, but if not, you'll need 5-axis combined with a step/dir to 0-10V interface.
The fact you need threading, eliminates quite a few controllers.
On the Windows side, starting at the cheaper end, I'd suggest looking at PMDX (best check on threading support, as I'm not 100% they support it yet), PoKeys, KFlop, SmoothStepper, and CS-Labs CSMIO-IP-A or S (M doesn't support threading), but you need to add an ENC module to support threading.
LinuxCNC, you need to compare the MESA options.
Thanks for the reply. I think I'm going to heading along the LCNC route (I'm going to give it a go at least). I've been put off up to know by the lack of a clear guide that assumes no experience of CNC (like the very good Mach3 manuals), but a number of people including Clive S have encouraged me to persist and give it a go.
I recently mistakenly bought some analogue servo drivers (very cheaply) which I'm really impressed with after powering them up and running them from the manufacturers control software. Given how easy and relatively inexpensive it is to buy a Pico Systems DA converter card that will run straight off LCNC it makes sense to give that pathway a go. So to some extent the motion controller issue isn't so important to me now.
You might want to consider UCCNC, which does do rigid tapping. I'd recommend a UC300ETH controller and UB1 breakout board.
Not as cheap as LinuxCNC setup, but a lot easier to use, imo.