# CNC Controller Choices - new build planning stages



## spumco (Nov 1, 2019)

_(the following is something that's been festering in my brain for a few months and is primarily to help organize my thoughts, but I figured I'd thow it out here and see what the hive-mind has to say._

*Restrictions *_- I don't have the space, weight capacity, or power for a 'proper' used industrial machine.   I can solve power with an RPC, but I'm still limited on amps; maybe I could get 40A to an RPC if I tell the wife not to turn on the lights.

HGR surplus is minutes from me, so unlike many people on this forum there are gobs of used equipment at insanely low prices available to me.  But I don't have the room or weight capacity on my shop floor for a 5000+ pound monster.  No point in suggesting I pick up an old Doosan and adding an Acorn.)_

So I've got the bug to start a new project - I want a CNC lathe.

I've not settled on the mechanics yet, but I'm thinking a 5C-type thing.  Sort of a smallish chucker, probably gang tooled but maybe I'll build a turret.  The actual dimensions and other physical stuff aren't important at this point.

Having done a few scratch builds and conversions so far, the *most* important part at the beginning (I think) is the control system.  I've used Mach3, UCCNC, and an AB PLC (with Clearpaths) so far, both with servos and steppers.  I can solve just about any mechanical or electrical problem with money & time, but I don't want to start with the wrong (or irritating) 'brain'.

I'd like to find a new control system to settle on for future builds which have features/capabilities portable between different machine formats.  This is a problem with UCCNC - it works great for mills, plasma, ect. - but it has no lathe-specific mode.  No lathe tool offsets, no CSS, and a few other 'must-haves' to make running a lathe pleasant.  Even the UCCNC developers say that UCCNC isn't advisable for turning applications - although that may be down the road I can't count on it.

Here's a list of wants:
1. *Lathe features in the control software*. Lathe-specific tool-path display, X-offsets in tool table for gang tooling, CSS. Even if I have to pay extra for a 'lathe module' or whatever, that's OK.
2. *6+ axis of step/dir or +/-10v outputs.*  If this new system I'm learning can't be used on future 5-axis mills, plasmas or routers I'm not interested.
3. *Encoder feedback* to the motion controller, at least for the spindle.
4. *High-speed I/O*.  If I stick with step/dir outputs to the drives I don't want to be limited to 100/200khz outputs.  I realize this is mostly limited by the optocouplers on the BOB, but I might as well start with a motion controller that isn't handicapped.  500khz minimum output per axis.  I want high-speed AND decent resolution - yes, I can set up electronic gearing in the drives but I don't want high-res and slow or fast and clunky.  Something about cake and eating it too, I think.
5. _*Lots*_* of I/O*. Parallel port quantities of I/O need not apply. If I want to add multiple air pressure sensors for a drawbar, rotary brake, and similar I don't want to start doing the I/O budget math. If I want more I/O, I want to be able to get another expansion thing and play connect the pins.
5. *Rotational Axis*.  Controller should be capable of rotational axis being set/displayed/calculated in degrees.
6.  *Reasonably robust tech support*, either through the vendor or through the user community, is a must-have.  I'm tired of interpreting Engrish manuals, and I have exactly zero experience with C+ or other non-Gcode programming.  I'm going to need help, that's certain.
7. *Editable GUI*. I'd prefer that the user interface be useful out of the box, but I'm not going to kid myself. Whatever control system I wind up with needs to have a user-editable front end if I want to add a 'Go-Back-In-Time and Dont Crash' screen button.

Nice to haves:
1. *Dynamic work offsets*, RTCP, or whatever it's called in that particular control.  I may not implement it, but if I build/retrofit another mill/plasma/router it's GOING to have this feature.  Having to indicate my 4th axis, then the stock/part, and then compensate in CAM for the few 'thou of shift when I put another part on my trunnion table is getting really old.  I never seem to get it exactly right and I simply can't do continuous 4th axis work to close tolerances if there are existing features I have to reference.
2. *Encoder feedback for the axis.*   Maybe for closed-loop to the controller trajectory planner, maybe just for position verification or for use by a macro in some positioning/indexing feature.
3. *Native ATC macros/capabilities*. I don't want to have to start completely from scratch building an ATC screen & control system if I do build a lathe turret or add an ATC to my mill. Editing an existing thing is easier than starting from scratch (usually).
4. *Multiple spindle control*.  A high-speed subspindle on my mill or on a gang-tooled lathe would be sweet.  Yes, an on-off system would work, but this is in the 'nice-to-have' category.

Wants, but not total show-stopper
1. *Windows PC-based GUI*.  I really like having CAD/CAM on the same computer as the controller.  REALLY like it.  If I can have Fusion360 on the controller I don't need conversational features in in the controller.  And the opposite is true - if I go with LinuxCNC (or other non-Windows system), I can't have F360 on the same computer so some type of conversational feature would be almost a requirement.

I'm sure there's more, but this is a good starting point.  So here's what I've come up with that might fit the bill:

1. *LinuxCNC*.  Fails on the Windows thing, but seems to work on everything else.  The RTCP desmonstration video was encouraging.  Looks like very good community support, but there is zero vendor software support (obviously) except for the hardware side (i.e. Mesa).

2. *Kflop*. Much less community support than LinuxCNC, but better vendor support. Looks more complicated to learn than the others but that's probably not the case in reality. I wouldn't use the Mach3 interface and I'm not sure if Dynomotion has cooked up a lathe-specific GUI for KMotionCNC yet. The forum posts indicate this is in development but I can't tell from the web site or documentation what stage this is in.

3. *Galil + Dawson Controls*. The bee's knees for hardware, but I'd be locked in to using Jim Dawson's front end software that he's graciously offered many times on this and other forums.  Maybe Jim will chime in, but I don't know anything about it or how to write/edit software like that.  While it looks like Jim's lathe retrofit went well (indicating that his software is now lathe-friendly) I can't really get a feel for it.

4. *Galil + Mach4.* Same as above, but with Mach4 as the front end. Haven't looked in to this much, and can't tell if Mach4 is capable of closing the loop back to the trajectory planner. If not, this combo would be like putting handcuffs on the Galil.

Non-contenders:
1. *Centroid Oak*. The Acorn isn't capable of enough axis outputs, but the Oak would fit the bill. But add the features up in the software and it's about $10k - we're at CAMSoft or other industrial-level costs.

All of them are going to require me to learn a massive amount of new stuff, but they all seem capable of meeting the wish list. I'm not looking for the cheapest way to do this - just the best at a reasonable cost.  Reasonable being defined as less than it would cost to upgrade my universe to accept a used indistrial machine.

I would relish any comments or thoughts on the matter.  

-Ralph


----------



## JimDawson (Nov 1, 2019)

spumco said:


> 3. *Galil + Dawson Controls*. The bee's knees for hardware, but I'd be locked in to using Jim Dawson's front end software that he's graciously offered many times on this and other forums. Maybe Jim will chime in, but I don't know anything about it or how to write/edit software like that. While it looks like Jim's lathe retrofit went well (indicating that his software is now lathe-friendly) I can't really get a feel for it.



And the offer is still open   And it does everything that you require......... Except:  While the GUI is completely editable, it needs to be done in Microsoft Visual Studio (free).  It's all written in VB.net.  You can make it do anything you want, many times I add features on the fly as needed.  There is a learning curve but not horrible. I'm currently adding a C axis to my lathe., just picked up a 8 axis Galil DMC-1886 card.

The other downside is that I'm 70, and won't be able to support it forever.

Overall the lathe software does work well and supports all of the functions that you would expect on a high end machine.

On the lathe software, one of the really cool things is that the tool offsets are stored as a machine parameter and are applied to any G-code file when you load it.  Each G-code file also has a separate parameter set that allows cutter comp, global offsets, and other parameters, to be set specific to that file and individual tool.  The only time you need to set a tool is when you physically change the tool. Other software might do this also, but the original Fanuc software on my machine required setting tools for each job, a real PITA.

As far as editing the program, the good news is that all of the heavy duty math modules, communications, and general program flow are already written and seem to be well proven.  The G-code translator is written to use Haas turning posts, but will also accept Fanuc and Mach3 posts.

As far as a machine, something like this might be a good starting point. https://www.ebay.com/itm/Hardinge-H...628175?hash=item1a82347f0f:g:n~oAAOSwCkldVFJk


----------



## matthewsx (Nov 1, 2019)

I'm a newbie with CNC so not sure if my opinion is really useful here but I've been working with the "C" part for a very long time.

As someone who uses Linux everyday for work and personal I've leaned towards LinuxCNC almost from the start. The one thing that none of us can get any more of is time and having to learn a new system because your old one is going away or won't do what you need is a royal pain. When I started my mill/drill project I wanted something that wouldn't limit me as I learned more and I could count on to have support long into the future. I went with one of the cheap 5-axis controllers, an old PC and LinuxCNC.

Now that my machine is up and running I realized the Chinese controller is likely to limit me in the future along with the wimpy TB6600 stepper drivers I'm using so I upgraded to a Mesa 7i96 control board. The price is very reasonable and it can be expanded way beyond anything I'm likely to do so when I get the machine into it's new home (after the 1st of the year) I expect to swap out the control box and have a LinuxCNC/Mesa control system.

I think you'll be well served going this route. The opensource community is passionate about helping each other and it's very friendly to hobby operations. Fusion 360 seems to be a great tool form a company I've known since they were across the street from where I worked in the 1980's, but I'll be long gone before I learn enough about FreeCAD that I have any limitations with it.

It sounds like you'll have an awesome build regardless of what system you choose, I look forward to seeing it progress.


Cheers,

John


----------



## spumco (Nov 1, 2019)

JimDawson said:


> Overall the lathe software does work well and supports all of the functions that you would expect on a high end machine.


Well, that answers that question rather nicely.



JimDawson said:


> There is a learning curve but not horrible.


Depends how smart one is, doesn't it?  I can live with horrible.  I just can't live with impossible.  Horrible is trying to learn coding or servo tuning.  Impossible is trying to understand Allen-Bradley PLC manuals. 



JimDawson said:


> The other downside is that I'm 70, and won't be able to support it forever.


Poo.

Seriously, it sounds like you've got it to the point where it doesn't need much support, except perhaps for some VB screen editing.  I could live with that.



matthewsx said:


> having to learn a new system because your old one is going away or won't do what you need is a royal pain


Indeed.  That's what I'm finding with UCCNC.  It's awesome for ease-of-use, and way better motion/trajectory than Mach3 or similar hobby-level stuff.  And they're adding features constantly.  But it will probably never have a few features I want/need for lathes or multi-axis mills.  Router/laser/plasma? You bet - UCCNC is a total winner in the time vs. money vs. capabilities calculation.  In fact, I'm using it for the current build (6x12 plasma).



JimDawson said:


> As far as a machine, something like this might be a good starting point. https://www.ebay.com/itm/Hardinge-H...628175?hash=item1a82347f0f:g:n~oAAOSwCkldVFJk



You've been spying on my web browser, haven't you?

Yes, a Hardinge DV, DSM, or HC is hardware option 1.  Would probably fabricate an Omniturn or Accuslide sub-assembly rather than using the original bed and carriage.

Option 2 is an Omniturn 75 (or similar slant bed).  A slant bed would save quite a bit of space, and a 75 is only about 2k lbs.

Option 3 is more work, but maybe more interesting.  I've stumbled across a rather special spindle that appears to be from a high-end grinding machine.  Bought it from HGR, brought it home and discovered it has about $5k of matched-pair 12kRPM SKF AC bearings in it.  Never been installed in anything - looks like a spare.  Balanced and ground on all surfaces.  Spindle, housing, bearing caps all have laser-etched OEM-type part number on them.

This thing looks like it would have cost $10k new.  Only downside is that it doesn't have a lathe-type nose or through-bore.  I'm thinking I can bore it out 1.25 on my manual lathe and then hard-turn a Hardinge-style threaded nose on the end once it's in place with a matching 5C ID taper.

I've also managed to pick up some NIB THK 35mm linear rails and about 20 matching trucks from the same place.  I have way more sections & length than I need for as many axis as I could hope.  Bolt all that stuff to a used surface plate, attach my mystery spindle, and tilt it up to 90 degrees.  Instant Cubic GTV-32 lathe.




_Please don't ask how much I paid for the rails & spindle.  You'll throw up.  Lets just call it about $0.50/lb._

Yes, the possibilities are endless, as is the amount of money & time I could throw at the project.  However, as I wrote earlier I think the fundamental thing to focus on is the controller.

_Jim - would it be possible to get a test (or similar) copy of your software to fiddle with?  You would know better than I if installing it without a Galil is silly or if there is a way to 'demo' it.  You know, kick the tires and see how it smells_.

So... thank you both.  We'll see if a KFlopper chimes in.  And I'll be checking the LinuxCNC forums to see if the in-progress GUI projects are complete enough by the time I'm ready to start really diving in.

-Ralph


----------



## JimDawson (Nov 1, 2019)

spumco said:


> _Jim - would it be possible to get a test (or similar) copy of your software to fiddle with? You would know better than I if installing it without a Galil is silly or if there is a way to 'demo' it. You know, kick the tires and see how it smells_.



No problem.  I'll PM a download link later, along with instructions on how to run without a Galil board installed, busy making parts right now.  I'm actually typing this from the lathe computer....... While the lathe is running.


----------



## spumco (Nov 1, 2019)

JimDawson said:


> I'm actually typing this from the lathe computer....... While the lathe is running.


I think the field has just narrowed considerably...


----------



## JimDawson (Nov 2, 2019)

spumco said:


> Horrible is trying to learn coding or servo tuning. Impossible is trying to understand Allen-Bradley PLC manuals.



Yup, been there done that.

PM sent, if you have questions I'm around.


----------



## macardoso (Dec 6, 2019)

Here is another thought. Mach 4 + ESS + AC Servos. You don't get closed loop at the control, but you can get position feedback brought back into Mach for position compare and display. See comments below. I think this is a 98% solution that could really save some money.



spumco said:


> 1. *Lathe features in the control software*. Lathe-specific tool-path display, X-offsets in tool table for gang tooling, CSS. Even if I have to pay extra for a 'lathe module' or whatever, that's OK.



Mach 4 has a lathe specific screenset. I'm not a lathe user, but it looks well featured and modern.



spumco said:


> 2. *6+ axis of step/dir or +/-10v outputs.* If this new system I'm learning can't be used on future 5-axis mills, plasmas or routers I'm not interested.



The current ESS offers 6 axes. Their upcoming version should be supporting 10 unless they changed something. Modes are Step/Dir, CW/CCW, and Quadrature.



spumco said:


> 3. *Encoder feedback* to the motion controller, at least for the spindle.



ESS allows encoder feedback from any axis. Spindle encoder can be used for threading, either 1 pulse per rev, or a full encoder.



spumco said:


> 4. *High-speed I/O*. If I stick with step/dir outputs to the drives I don't want to be limited to 100/200khz outputs. I realize this is mostly limited by the optocouplers on the BOB, but I might as well start with a motion controller that isn't handicapped. 500khz minimum output per axis. I want high-speed AND decent resolution - yes, I can set up electronic gearing in the drives but I don't want high-res and slow or fast and clunky. Something about cake and eating it too, I think.



ESS offers 4MHz on all the motion output pins. I/O data is updated at the planner speed, adjustable but 40Hz by default. I'm using AB servos with 80960 steps per inch. I could go higher, but wire impedance starts making things look messy in the MHz range.



spumco said:


> 5. _*Lots*_* of I/O*. Parallel port quantities of I/O need not apply. If I want to add multiple air pressure sensors for a drawbar, rotary brake, and similar I don't want to start doing the I/O budget math. If I want more I/O, I want to be able to get another expansion thing and play connect the pins.



OK, so the ESS natively has 41 I/O pins. You could end up consuming 30 of these pins with 6 axes with full encoder feedback. Stick all your critical I/O (Estop, limits, MPG, etc.) on the ESS, and then use a Modbus capable I/O card to get all your non-critical I/O (Control panel buttons, pumps, solenoids, etc.). Then your I/O options are nearly endless.



spumco said:


> 5. *Rotational Axis*. Controller should be capable of rotational axis being set/displayed/calculated in degrees.



Check.



spumco said:


> 6. *Reasonably robust tech support*, either through the vendor or through the user community, is a must-have. I'm tired of interpreting Engrish manuals, and I have exactly zero experience with C+ or other non-Gcode programming. I'm going to need help, that's certain.



Mach Support forum is pretty good. Warp9TD support for the ESS and Mach 4 is incredible. I think Andy might live on the forum and never sleep.



spumco said:


> 7. *Editable GUI*. I'd prefer that the user interface be useful out of the box, but I'm not going to kid myself. Whatever control system I wind up with needs to have a user-editable front end if I want to add a 'Go-Back-In-Time and Dont Crash' screen button.



Mach 4 GUI is fully editable with a rich feature set. It isn't the absolute best in editors, but it works well enough for anything I've thrown at it. I happened to be quite happy with the Mach 4 screens and only made tweaks.



spumco said:


> 1. *Dynamic work offsets*, RTCP, or whatever it's called in that particular control. I may not implement it, but if I build/retrofit another mill/plasma/router it's GOING to have this feature. Having to indicate my 4th axis, then the stock/part, and then compensate in CAM for the few 'thou of shift when I put another part on my trunnion table is getting really old. I never seem to get it exactly right and I simply can't do continuous 4th axis work to close tolerances if there are existing features I have to reference.



Don't know of any hobby or entry level software that supports kinematics. I could be wrong? This is an $8000 option on Haas controls.



spumco said:


> 2. *Encoder feedback for the axis.* Maybe for closed-loop to the controller trajectory planner, maybe just for position verification or for use by a macro in some positioning/indexing feature.



Mach 4 only allows the feedback to be viewed. It is not closed loop at the control, only at the servo drive.



spumco said:


> 3. *Native ATC macros/capabilities*. I don't want to have to start completely from scratch building an ATC screen & control system if I do build a lathe turret or add an ATC to my mill. Editing an existing thing is easier than starting from scratch (usually).



Mach 4 has some basic M06 logic, however you would need to build your own screens and macros for ATC functionality.



spumco said:


> 4. *Multiple spindle control*. A high-speed subspindle on my mill or on a gang-tooled lathe would be sweet. Yes, an on-off system would work, but this is in the 'nice-to-have' category.



This can be accomplished through a Gcode macro script very simply.



spumco said:


> 1. *Windows PC-based GUI*. I really like having CAD/CAM on the same computer as the controller. REALLY like it. If I can have Fusion360 on the controller I don't need conversational features in in the controller. And the opposite is true - if I go with LinuxCNC (or other non-Windows system), I can't have F360 on the same computer so some type of conversational feature would be almost a requirement.



Mach 4 operates on Windows so this would work well for you.


In all I think this would be a solid choice. I've been very happy with the system and have not felt it limiting. LUA is a little bit of a bear to take your first bite out of, but if you have programming experience, it is quick to learn and much more powerful and stable that Mach 3's Cypress Enable VBA ever could be.


----------



## burdickjp (Dec 6, 2019)

Machinekit?
It's a LinuxCNC fork and can have the GUI separate from the controller. So you can run your GUI on your CAD workstation if you so desire:




__





						Machinekit • Moves.  Controls.  Things.
					






					www.machinekit.io


----------



## brave_ulysses (Dec 6, 2019)

fusion360 runs in a vm on a linux box

freecad has a cam module - not as nice as the fusion360 solution...


----------



## spumco (Dec 8, 2019)

Thanks again to everyone - all suggestions have been helpful.

As I stated earlier, this is in the spit-ball/napkin phase.  And I've just had two big projects dumped in my lap - paying jobs take priority over hobby stuff (even if a CNC lathe can make me some money parts).

I'll be chewing on the options for a while.  I honestly don't think I'll be making a decision for 3-6 months, even if a donor lathe drops in my lap.  Maybe by then I'll have time to get demo versions of the various controller/software and fiddle with them a bit.

-Ralph


----------



## spumco (Dec 8, 2019)

macardoso said:


> Don't know of any hobby or entry level software that supports kinematics. I could be wrong? This is an $8000 option on Haas controls.


I've seen evidence - nothing first hand, of course - that both LinuxCNC and KmotionCNC can do this to some degree.  Neither of which are plug and play or wide-spread.


----------



## macardoso (Dec 8, 2019)

spumco said:


> I've seen evidence - nothing first hand, of course - that both LinuxCNC and KmotionCNC can do this to some degree. Neither of which are plug and play or wide-spread.



Well I'll have to look into this. I *love *robot kinematics. Spent nearly a year after college teaching myself all the equations and getting practice with it. I am still always on the lookout for a used 6 axis robot that I can afford.


----------



## spumco (Dec 8, 2019)

The problem I had in my initial research is that everyone calls this function different things.

HAAS calls it TCPC.  They also have Dynamic Work Offsets, which appears to be different but don't ask me to explain it.

LinuxCNC seems to call it "RCTP" or TCP.  There's a remarkable video on youtube demonstrating this.  Quick search should find it.

Kflop calls it RCTP




__





						Kinematics - Dynomotion
					






					www.dynomotion.com


----------



## macardoso (Dec 8, 2019)

Wow! When I was playing around with robotics, I was doing all those calculations with custom written code. That math is not easy! I was not aware there were hobby accessible software packages with preconfigured kinematics! 



spumco said:


> HAAS calls it TCPC. They also have Dynamic Work Offsets, which appears to be different but don't ask me to explain it.



As I understand it, Haas goes beyond standard TCP and allows you to create pallets or different work offsets on a 5 axis trunion or table. Then just by calling G54,55,56, etc. it will adjust the machine motion and kinematics to allow your same code to run on the different parts.


----------



## spumco (Dec 8, 2019)

macardoso said:


> it will adjust the machine motion and kinematics to allow your same code to run on the different parts.


That's my understanding, too.  But you phrased it in English, which I wasn't able to do.

And that's what I want if I ever upgrade my mill controller and get/build a 5th axis dingus.


----------



## Karl_T (Dec 9, 2019)

I did not chime in first time around as I thought you were looking at hobby level controls.

Camsoft does every option you've requested and then some. It is also based on the Galil card, like Jim Dawson's offer. Unlimited IO with opto isolation, great ability to add any logic you can dream up, great machine user interface in windows. Cost is in the pro user category and comes with 24X7 pro support. Installation is difficult the first time around, easy after that.

I've done six machines now, so know my way around it pretty good.

I know they have several kinematic options. I've not played with it as this is for six axis robot type machines as far as I know.

Karl


----------



## spumco (Dec 9, 2019)

Karl_T said:


> I did not chime in first time around as I thought you were looking at hobby level controls.


I'm looking for pro level features at a hobby level price. 

Camsoft looked great until I got to the pricing page.  Then I threw up a bit.  Not that they're out of line of course, but just as with Centroid's higher end stuff it just doesn't make sense for me on something that will be a speculative money maker at best.

And I don't need all the swanky kinematics for a lathe.  But if I'm switching to a new control system, it doesn't hurt to see what's available for a more complicated mill setup.  Right now I've got a 4-axis mill and having to fiddle the CAM to deal with parts fixtured a few 'thou from the 4th axis center of rotation is massively irritating.

Would be nice to have a common control for my stuff as well as for future builds for other people.

-R


----------

