Hobby CNC Controllers have gotten to where they’re quite powerful. I recently saw an article on a single chip CNC controller–no need for a PC, just add a few outboard parts and it drives the stepper motors, provides an LCD screen UI, and quite a lot more. Amazing stuff, and it’s only going to keep getting better over time. Despite their newfound power, there are a number of features that Pro CNC Controls have that most Hobby CNC Controllers do not. Here are 10 of them:
1. Better Macros and Subprograms: Fanuc Macro B vs Mach3 vs LinuxCNC
This is one of the biggest ones for me. The ability to program the g-code in Pro machines is quite a ways ahead of the Hobby Controllers such as Mach 3 or LinuxCNC. What’s specifically missing so far are branching structures–IF, GOTO, and WHILE loops. You can only do so much with #variables and subprograms without branching. Branching is the ability for the g-code to change what it will do based on outside inputs.
2. More and Better Canned Cycles
This is another one that makes a big difference, particularly when programming lathes. Canned cycles like G71 on the lathe make it fairly easy to hand program even complex profiles quickly and without the need for CAM software.
3. Rigid Tapping via Closed Loop to the Control
There’s a lot of Holy War diatribe about whether or not there is Closed Loop all the way back to the Control when discussing such things as Mach3 versus LinuxCNC. I prefer to look at what specific features the user gets from Closed Loop rather than worrying about the theoretical implications, so I’m going to name a few here. First up is Rigid Tapping. In theory it should be pretty straightforward to get this into Hobby Controls given that they support an encoder for threading on lathes, but you don’t see it very often. It’s not easy to do it right for one thing.
The acid test is rapid tapping into a blind hole. If there’s a mistake you either get too little of the hole threaded or the tap hits the bottom and usually breaks. It’s an unforgiving application.
4. Increased Homing Accuracy via Closed Loop
Another neat trick the Pros use is to tremendously increase the accuracy of Home Switches by tying them to the Encoders on each axis. The actual Home Switch only has to identify the neighborhood within 1 encoder revolution. The precise position can then be read from the encoder position to an accuracy that’s much higher than can be achieved with a simple Home Switch.
5. Advanced Acceleration and Shape Control
Acceleration is always a bit of a bugaboo for CNC machines. They can’t accelerate to the commanded feedrate instantly nor stop on a dime. In fact, it is surprising how often they’re not going the speed you thought you’d programmed them to go because they’re busy trying to accelerate or decelerate to get there. We added some information to our G-Wizard Editor that tries to tell you what acceleration is doing to g-code program run times as well as what’s happening line by line. That’s extremely useful for cost estimating and for tuning up g-code part programs to run better.
The very best Controllers are all over the acceleration problem. They not only understand the acceleration capabilities of the machine, they also understand the actual shape of the acceleration curve. This can lead to a number of advantages including greater precision, smoother/faster speed changes, better surface finishes, and ultimately, shorter cycle times. They user this information together with Closed Loop Information and Lookahead Information about what the g-code will do next to try to anticipate and stay ahead of the game. They can provide capabilities like Automatic Corner Override, Advanced Contour Control, Advanced Feed Forward Control, and Advanced Acceleration Control.
If you’re doing 3D profiling or running a fancy HSM toolpath you will love having these features available from your Controller.
6. Machine Compensation
No mechanical device is perfect. No ballscrew is without at least some small amount of backlash, nor does every inch of the ballscrew thread advance with perfect precision. Sometimes a commanded move of an inch is 0.9996 inches while other times it may be 1.0003 inches. With the right software in your Controller, it can try to compensate for these issues. There’s Backlash and Pitch compensation for the aforementioned ballscrew problems. Add to that straightness compensation which adjusts for the fact that the axes of the machine are not completely orthogonal to one another. As you move a machine in X, it may change Y or Z some tiny amount. Another important source of error is addressed by Temperature Compensation. As your machine warms up, parts expand at different rates. On a hot day it may be one thing and then you fire it up in the winter before warm up and it is quite another.
Good controls can compensate for all of these things using a variety of techniques. They are calibrated periodically by a Ballbar or Laser Interferometer test to reset the compensation settings. Really fancy machines may even have glass scales similar to DRO scales that are continuously reading how much each axis actually moved and using that to update the Controller on what’s really going on.
Some of this is available for Hobby Controllers–backlash compensation and leadscrew pitch compensation are the ones I am familiar with. But it’s done in a far simpler manner and Hobby Machines seldom get the precise calibration to dial in compensation that Pro machines do.
7. Advanced Tool and Part Program Management
Pro CNC Machines are often used for long part runs, so they have features to help manage Tools and Part Programs that are geared to that application. They’ll keep up with how long each tool in the changer has been in use, for example. On the part program side they can track program usage, verify version data, and organize programs in folders with extended descriptors. Really fancy controls can provide some front end menus for the operator that help make their job easier and give them options. For example, it is often convenient to be able to skip some parts of the program, for example when reworking parts that already have those features machined and just need to do the later work.
8. Tool Compensation
I like to think of Tool Compensation as the Poor Man’s CAM, but it is so much more. Tool compensation is essentially the ability to program g-code for the tool centerline instead of the tool’s edge. The control will “move the tool over” by the right amount for the cut. When we specify our programs in this way, it is easier to write programs by hand, hence the “Poor Man’s CAM” nickname. But it also unlocks a lot of power for the Shop Floor to make changes using wear offsets without having to change the part program’s g-code.
Suppose you run a part and inspect it. Some of the features are out of tolerance a little bit. Compensating for that without tool compensation likely means you’re going to have to adjust it at the CADCAM level–a complicated and slow process. But, if your part program uses Tool Compensation, you can simply dial in another wear offset and suddenly your part is right on. Professionals constantly use this capability to increase the precision of their parts and to make minor adjustments where it just wouldn’t be worth it to go back through a CADCAM cycle.
Wait a minute, you’re saying–Hobby Controllers have this feature. Yes, sort of, but there are so many reports of bugs in the feature that I don’t know of very many Hobby CNC’ers that are successfuly using the feature very often. You have to use it just right or it won’t work for you, and often the failures are mysterious and can even lead to machine crashes. Tormach even did an article series in Digital Machinist about how to get it to work. They have quite a few caveats in the operator manual for the PCNC 1100 mill suggesting not to use compensation in cases such as:
– Subroutine programming
– Canned cycles
– Macro programming
– Polar mode
– With run from here function
– With multiple work offsets
Those are some pretty serious limitations. If you’re running a Hobby Controller and have gotten Tool Comp to work, good on you. For most, there’s just too many gotchas. One could argue that stability in general has been more of a problem for Hobby Controllers than Pro Controllers. I will say that while Mach3 on my mill has had a number of bugs off and on, LinuxCNC on my Tormach Lathe has been solid so far. The Tormach guys really gave it a wringing out.
9. Dedicated Control Panel
First let me say that it is entirely possible to build a very nice dedicated control panel for a Hobby CNC Controller. I’ve got a whole page with photos of CNC Control Panels for those who want inspiration. But once again, they’re not very common on Hobby Controllers whereas they are completely the norm on Pro Controls. The reason is simple, these panels are rugged enough for the Shop Floor and they can be significantly more productive for machine operators than trying to use a keyboard and mouse.
10. Drip Feeding for Remote Control
This is another of my favorite Pro-features because it enables you to “remote control” the machine. Essentially, drip feed means giving the CNC Machine a little bit of g-code at a time. It executes that g-code and then comes back for more. The code is normally delivered via RS-232 serial cable, but there are a lot of other options for newer machines. Drip Feed was originally invented as a way around the memory limitations of early CNC Controls. They just couldn’t hold very large programs so drip feed gave them the g-code a little bit at a time. It’s still used quite often for that purpose, but increasingly it is also used to automate and monitor the deliver of g-code to machines. Using this approach helps guarantee the correct version of the g-code is being executed, it can gather information from the machine about what it’s doing to use in reporting and optimization, and it can facilitate complex “Lights Out” automated operation.
Bonus: 4 Things Hobby Controllers do that Pros Don’t
Okay Hobbyists, I know you’re smarting a bit over that list. Some of it you’re pretty sure you can tackle and some of it you just don’t care about. There’s also some things Hobby Controllers do that the Pros don’t that are very cool, so let’s talk about those for a minute.
1. Cost
There’s no getting around it–Pro Controllers are expensive. It’s so expensive to add a name brand controller to a machine that many companies have gone to the expense of creating their own controls to keep their individual machine cost down. I had one manufacturer tell me the difference in cost between their control and say a Fanuc was thousands of dollars and they had come to regard their control as being better. Hobby Controllers are very cheap–sometimes free if you have an old PC laying around. LinuxCNC is open source software, for example. Mach3 is not very expensive either.
2. Memory and LAN Connectivity
These are options on the Pro Controls but they’re so much more expensive that a lot of machines have no LAN connection and not as much RAM memory as they would like. With proprietary equipment there is a serious markup. I remember one time when I was VP of Engineering for Borland looking into 1 GB Ethernet cards for our testing lab. Test results were coming too slowly because the LAN was congested. The boards were $99 at Fry’s so I came running back to tell the Lab manager that we could upgrade. “What about our Sun Workstations?” was the response. It seems the exact same 1 GB LAN card for the Sun (presumably with just a little different BIOS, but it was easy to see it was an identical card) was over $1000!
So it is with Pro CNC Controllers. Memory, LAN connection, and other goodies have a very high markup. On the Hobby Controller side we take this stuff for granted because it’s cheap and abundant on PC’s.
3. Modern UI
Hobby Controllers run on Windows, so they have a Consumer-Grade User Interface. That can be a lot slicker than what many Pro CNC Controllers provide, some of which looks like a bad day on a DOS machine we haven’t seen in so many years we hardly can remember it. This is not true of all Pro Controllers, as many are based on Windows too. But it sure seems like there are lots of truly ugly Controller UI’s out there.
4. Customizability
This is another one where Hobby Controllers excel. It’s very easy to customize the software so it runs the way you’d like it to. There are some really nice screen sets out there for Mach3, and LinuxCNC is Open Source so anything about it can be customized. This means there are a lot more 3rd party products out there like the Mach Standard Mill screen set.
Slick add-ons for probing and so on are common. I remember visiting a friend’s shop who had just gotten in a fancy Heidenhain probe set up. There was no UI for it on his Fanuc control because there’s no provision for custom UI. He had to wade through something like 1400 custom subprograms that came (at extra cost) with the probe and run them by hand to perform various probing tasks.
There are exceptions to this. Datron has added a very nice customization layer to their G-Code control, for example.
Conclusions
Pro CNC Machines are not going to be switching to Hobby CNC Controllers any time soon–there’s too much that they need that the Hobby Controllers lack. I haven’t even touched on the whole topic of hardware control of motion, which can be added to Hobby Controllers, but is still not as common as on Pro Equipment.
On the other hand, Hobby Controllers keep getting more powerful. A lot of the new work is on the low end–providing the basic support that a 3D Printer or lower end CNC Router needs to operate. As mentioned, we even have single chip solutions for such machines now. The next step will be adding more g-code features to those basic Controllers. The fact that many of these Hobby Controllers are Open Sourced makes it easier for more people to contribute improvements. If you wanted to add full Fanuc Macro B support to LinuxCNC, it’s very doable, for example.
I hope we see lots of these features I’ve described finding their way into Hobby Contollers soon. The next 2 to 5 years should be an exciting time in the industry. If at some point they become good enough to start challenging the Pros, that’ll be interesting too as they certainly do have a cost advantage.
Like what you read on CNCCookbook?
Join 100,000+ CNC'ers! Get our latest blog posts delivered straight to your email inbox once a week for free. Plus, we’ll give you access to some great CNC reference materials including:
- Our Big List of over 200 CNC Tips and Techniques
- Our Free GCode Programming Basics Course
- And more!
Just enter your name and email address below:
100% Privacy: We will never Spam you!
Recently updated on March 1st, 2023 at 04:06 pm

Bob is responsible for the development and implementation of the popular G-Wizard CNC Software. Bob is also the founder of CNCCookbook, the largest CNC-related blog on the Internet.
You didn’t touch on mach3 wizards, which makes up a bit for some of the other missing canned cycles.
Great list, though I’d nitpick #1 a bit–LinuxCNC has O-codes:
http://linuxcnc.org/docs/html/gcode/o-code.html
Hi there, I’m a long-time reader and fan, and I’m one of the LinuxCNC developers. I’m posting this comment to point out a couple of inaccuracies in this article as it pertains to LinuxCNC.
Point 1: Branching structures are fully supported in LinuxCNC. We support subroutines with return values, while and repeat loops, and conditionals (if/else statements). Docs here: http://linuxcnc.org/docs/html/gcode/o-code.html
Point 3: LinuxCNC supports rigid tapping. Docs here: http://linuxcnc.org/docs/html/gcode/gcode.html#sec:G33_1-Rigid-Tapping
Here are a couple of videos demonstrating rigid tapping with linuxcnc:
https://www.youtube.com/watch?v=JCEwlfJj__A
https://www.youtube.com/watch?v=qBQ7RSuRAls
https://www.youtube.com/watch?v=jAcFeVlftrw
Point 4: LinuxCNC absolutely can home to encoder index. That’s how i home my Bridgeport, it gives me single-encoder-edge repeatability. Docs here: http://linuxcnc.org/docs/html/config/ini_homing.html#_home_use_index
Point 6: LinuxCNC does have backlash compensation and screw (pitch) compensation. See the BACKLASH and COMP_FILE configuration parameters here: http://linuxcnc.org/docs/html/config/ini_config.html#sub:AXIS-section
We also support multiple feedback devices on a single axis. For example, here’s a big machine with encoders on the motors and linear scales on the table (the original website has disappeared, but the Internet Archive has a copy): http://web.archive.org/web/20120112153115/http://jmkasunich.com/cgi-bin/blosxom/shoptask/wichita-trip-02-20-08.html
Point 8: LinuxCNC does tool compensation, lots of people (including me) use it without problems. There are some subtleties that must be kept in mind when using this feature, and we often get reports of problems that upon close examination turn out to be operator error. I know of no actual bugs in the code. If there are any, we’d love to hear about them so we can fix them!
The tool compensation feature includes support for multiple simultaneous offsets, typically used for nominal tool diameter and wear compensation. Docs here:
http://linuxcnc.org/docs/html/gcode/tool_compensation.html#sec:cutter-compensation
Point 10: I’ve done drip feed to LinuxCNC, but over the network (using TCP) instead of over RS-232. It’s not my preferred way to run a machine, but it does work just fine.
Ok that’s all I have!
Thanks for publishing CNC Cookbook, I’m always happy to read your posts when they come out.
Guys, thanks for posting. There are exceptions to one or more of these things for various controllers.
As far as the hobby controls go, LinuxCNC seems to be furthest ahead at the moment. I really like it on my Tormach Lathe. By the same token, Mach3 has by far the largest installed base. Rather than delve into the excruciating detail of exactly which controls do what, we paint with the broader brush stroke of what most people with Hobby Controllers live with.
The other thing to consider is that while most anything can be done (hey, LinuxCNC is Open Source, I can write the code myself for a feature if need be), it becomes a question of whether they are as routine, commonly used, and well documented as the Pro Controls?
Typically, they’re not. That’s okay, it’s a goal to work towards. As mentioned, I would expect to see rapid evolution of these controls in the near future.
RE the Wizards, many Pro controls have elaborate Conversational Features, so I can’t really award that as an effective alternative to the canned cycles.
RE drip feeding LinuxCNC, how exactly was that done? Is it written up somewhere? I’m curious whether it’s a real feature or just something that could be rigged up if needed.
Lastly, another thing I didn’t touch on but could have is Fanuc compatibility. There’s a huge ecosystem out there that understands Fanuc. It isn’t that hard to think of things any of us would prefer they had done differently, but when you’re the small niche player, being compatible is often a big advantage. Been there done that throughout my career in software. There are always ways to set it up so you can have your cake and eat it too (i.e. you have compatibility plus your better mousetrap), and I’d love to see more of that going on. I think full Fanuc compatibility would lead to much more rapid adoption of these controllers as well.
Hey Bob, (another long time reader and fan of your site)
Nice article. I program Fanuc controllers all day long. Fanuc controllers are good in one area: rock solid dependability.
Having backwards compatibility with Fanuc is not a requirement for a controller to gather a large following. Mazatrol and the Haas control are good examples of controls that differ significantly but are widely adopted. I’ve talked to people who use these controls and they almost always say they prefer them to Fanuc.
I also have experience with Mach and I actually prefer the interface to Fanuc as I feel it is many years ahead in terms of ease of use.
Where the hobby controllers let us down, and its happened to me, is in the dependability side of things. Bugs in the software and lack of encoders on machines is what let you down. As far as Fanuc goes, I wish they would be more advanced and learn a few things from the “hobby” controllers and update their interface. I know there may not be backwards compatibility in some cases, but I’d give some of that up for some improvements in the interface.
An interesting discussion for sure. Thanks for generating it Bob.
I agree on the dependability. I will say that with the right conditions (Custom fit to reference hardware and preferably with encoders), LinuxCNC has been very solid for me, much more so than Mach3. I think it could be in reliability zone with a proper investment like Tormach made to get it onto their Lathe. For hobby one-offs, perhaps not so much.
Haas, though, is a better argument for Fanuc compatibility than not–it’s one of the most compatible dialects there is. For the most part, they have added and the additions are done in a “Fanuc style.” An extra canned cycle or two, some nice subprogram conventions, etc.. It’s more compatible for example than Google’s apps are with MS Excel and MS Word. I see these degrees of compatibility because GW Editor has to simulate all these dialects, and because that’s been the business I was in (being compatible so people could upgrade to my software) for a long time. My first company built the Quattro Pro spreadsheet, for example (yes, I’ve been doing calculators a long time, LOL).
Mazatrol is an interesting example, but I see them as being an exception too. The EIA subset is pretty darned compatible while conversational is completely different–nobody would mistake it as trying to be compatible and it is much easier and more productive at least for lathe. EIA is largely going to get the CAM posts, which only care that a subset is compatible and for manual programming why not use Conversational? They also have the luxury that if you want their machines, you get their control, so the machines help sell the controls. Despite all that, Mazatrol has a relatively small share among controls:
https://www.cnccookbook.com/cnc-control-market-shares-what-are-the-most-popular-controls/
The charts in that survey are quite interesting. Fanuc #1, Haas #2, Centroid (also highly Fanuc compatible) #4. If we put those 3 together, the high-Fanuc compatibility controls account for 46%–huge!
The thing is, it’s not that hard to be Fanuc-compatible, but you have to want to be. If there was a fully shaken out open sourced Fanuc compatible control, I think it would do very well in the market. The economics are compelling and the machine makers would offer a non-Fanuc control if it meant they could split the difference with customers and sell the machine cheaper while making a little more profit. LinuxCNC is starting to get close to having a shot at that, but as I say, they’d have to want to be Fanuc-compatible.
DaBit below makes many good points. I don’t see the point of Fanuc compatibility: G-code is more like processor-level opcodes than even assembler, let alone C, let alone Java to use the programming analogy. Not only is it not portable from control to control, you can’t even be guaranteed it will run twice on the same machine correctly, given dependencies on work offsets, tools, workholding, etc., which can’t be reliably asserted by G-code. So long as your CAM system has a good post-processor, it doesn’t really matter.
Now there’s an interesting discussion to be had around the idea of a high-level, platform-independent “machine(ing) language,” of which there have been a few since the early days (APT) and more recently STEP-NC. However it seems like outside the more rarefied corners of aerospace et. al. the world still runs largely on some combination of 3D models, 2D drawings, and G-code.
Colin, you’re looking at compatibility through the wrong end of the telescope. Your’re considering whether the same code can be run on different Fanuc-compatible CNC machines while I’m considering whether the same ecosystem tools can be used. Can I run the same CAM post? If a simulator runs Fanuc does it run LinuxCNC g-code too?
I’ll put it into the machine terms since you mention assembly code. I agree it is the low level language. Look at how many languages want to use the Java Virtual Machine? It’s not the only virtual machine, but it sure is popular. So it is with Fanuc.
When you say, “So long as your CAM system has a good post-processor, it doesn’t really matter,” you’re not considering some important issues:
– Posts are often charged for and very custom UNLESS you’re just running one of the off-the-shelf posts. Wouldn’t it be great if I can just run the Fanuc post which every CAM will have and not pay that surcharge? Don’t you suppose the CAM makers lavished more effort in making nicer posts for the more popular controls and don’t you think the Fanuc posts are probably the ones that have had the most work put into them?
– Shops often choose to buy machines with compatible controls because they don’t want the headache of juggling too many g-code dialects. Wouldn’t it be better if I could get more Fanuc-compatible controls?
– Many shops also use all kinds of macro libraries, for example, to support probes. Wouldn’t it be nice if all that code was compatible with the same Fanuc Virtual Machine? How many commercial purveyors of these kind of libraries will get them ported to LinuxCNC versus how many could you just simply use day 1 if you had Fanuc compatibility?
– Since we brought up virtual machines, let’s talk design wins. Have you noticed just about every desktop and laptop now runs x86 compatible cpus even when not running Windows? Yet, I can’t run literally the same program on Windows, OSX, and Linux. It’s okay, there’s still tremendous value in the x86 ecosystem and being a part of that.
– What about education? Courses and books aplenty for the Fanuc g-code dialect. Not so much for LinuxCNC and obscure dialects.
– What about hiring? I want to hire a guy that knows Fanuc vs I want to hire a guy that knows LinuxCNC.
That list could go on for some time. There is always value in being compatible with a major industry standard.
Also, when you say dependencies like work offsets, tools, workholding, etc make it impossible to reliably run the same g-code on the same machine two different times, how do you think production shops manage to do it? The answer is you have to account for those factors during machine setup and make sure they either match or that the program is set up to deal with the differences. Work offsets, for example, are one tool you have specifically to make it easier to manage the differences. Tool Tables are another. There is software to help you manage all that too. Our upcoming G-Wizard ShopFloor will be one such.
I think if you look at why LinuxCNC is in virtually no use in industry it’s because it doesn’t have any large commercial integrators pushing it. As a machine tool builder, your choices are to tiehter build your own control or integrate one from Fanuc, Siemens, Fagor, etc. The ones who build their own (Haas, Mazak, etc.) do so because they believe they can add value through differentiation and can afford the R&D to stay competitive. The ones who don’t choose to focus on differentiation in other areas.
In order for LinuxCNC to take off as a control solution you would need one of three things to happen:
1. Someone who builds controls today would have to adopt LinuxCNC as a platform to supplement or replace their existing offerings: This is a bet-the-business type of decision and it’s unlikely someone would do this without a lot of external pressure.
2. A machine builder who doesn’t build their own controls now could start to, using LinuxCNC as a basis: Tormach has done this, so maybe more will follow. It makes sense we’d see this type of innovation occurring first at the bottom of the market, where quality expectations are lower.
3. A new company could start offering a LinuxCNC-based control in competition with Siemens, Fanuc, etc.: Not impossible, but it’s a small market with very large established players and long, complex vendor relationships. If I was going to try this, I’d start out offering feature-rich retrofits for very common machines that have decent iron and ancient controls. Seems like a hard way to make money to me.
If we compare this to the rise of Linux itself it’s interesting to note the differences. Over a period of around ten years from the early 90s proprietary UNIXes went from ruling the market to being virtually extinct. While Linux vendors never made the kind of dough that Digital, Sun or SGI made in their heydays, I’d argue that Red Hat, IBM, and others were critical in packaging the idea of Linux up in a way that was palatable to enterprise buyers.
Also, the rise of Linux coincided with (and also enabled) the near-total elimination of all the RISC and non-x86 platforms. I’d posit that a CIO could very easily choose to try out Linux on a box or three in a way that was much easier than a shop owner could “try out” LinuxCNC. It’s not clear if the commodification of hardware that occurred in computing can or will occur in machine tools. Certainly the incumbent vendors would want no part of that, and are unlikely to nudge the market that way themselves.
Anyway, interesting post and I agree with a lot of your thoughts around the area. I do think there’s a lot to be said on the G-code vs. “virtual machine” vs. high-level code topic but I’ll save that for my own blog 🙂
It sure sounds like you know your craft. We have a 98 KOMO Innova which has no cry panel and runs strictly by windows 7 PC BOP. So far after seven months neither KOMO nor Fanuc has been able to provide us with a plan/upgrade that will allow us to run file sizes > 56K. The PC program does not have a DNC module in it so while there is a couple references to DNC on a couple screens, there is no program behind it. KOMO has given up but Fanuc says they are still testing possible solutions. We are at a point now where I’m willing to do a mod and write the necessary interface codes to work with our machine. But I don’t have a solid plan as to how to begin. I thought perhaps you could point me in the right direction. Many thanks in advance.
Al, I can only see a few possibilities.
First, if there is indeed a Fanuc control on the machine, they should be able to enable DNC for you. Not clear why that hasn’t already happened. Once you’ve got it, you can drip feed to escape the memory limitation.
Second, you could explore what it would take to increase the installed memory. Fanuc should be able to help you there too.
Lastly, you could retrofit a different controller. I wouldn’t undertake this step until you’re sure all else has failed and you really want to run this machine versus selling it and buying something else because it will involve a fair amount of cost and time.
Hi Sebastian,
Thank you for all these comments. Thex are very helpful !
Ragards
Frank
Hi Bob,
Most has already been said here, but I’d like to chime in since this article is of unusual low quality for a CNCCookbook article.
My machine is:
– Running analog servo’s, servo loop fully executed by LinuxCNC. Why? Because LinuxCNC can do better than the drive. Resonance notching, gain scheduling, all those advanced features are no problem using LinuxCNC.
– Running linear scales in closed-loop feedback to compensate for screw errors, using only LinuxCNC standard components.
– Used to home to index pulses. Not anymore since I have very acccurate home switches now (+/-2 microns repeatability).
– Spindle inverter drive is digitally controlled over an RS485 link so there is also a flow of information back to the control. Motor power, inverter temperature, power supply health, etcetera.
– Mechanical inaccuracies are corrected in software using an STL triangle mesh surface for XYZ table flatness (so no regular grid is needed) and a 1D lookup table for YZ skew. XZ squareness can be adjusted mechanically, XY squareness too, so no provisions for that. Would be easy to add though.
True enough: I did write some custom C code for that, but only to make my life easier. I could have done that using standard LinuxCNC components.
– Using M-codes I can seamlessly switch between 3/4-axis milling operation and lathe operation where the 4th axis becomes the main spindle and the regular spindle becomes an auxiliary spindle. Now all I have to do is build myself a nice 4th axis using that 1.1kW servo motor.
– A set of subroutines using flow control extensively to faciliate part programming at the machine itself.
Your ‘we paint with the broader brush stroke of what most people with Hobby Controllers live with.’ is too simple. When you are a machine manufacturer and buying a pro control, you either have your own team of engineers that customizes the bare control and desired functionality, or you pay the control manufacturer to do so. Either way a lot of engineering effort is spent to get the control ready.
If you build or convert your own machine, you are the manufacturer and system integrator, so customizing the control is something you should do yourself. Taking the out-of-the-box sample configuration is like putting an engine from a crate in a car and not tuning it to your inlet/exhaust system. It might run, but calling that ‘job done’ is far from the truth.
But in many departments LinuxCNC is seriously lacking. NGCGUI is a weak method of part programming on the machine and in the standard distribution there are few to none very useable subroutines so basically ‘everybody’ has to do it’s own shop floor programming stuff. Polar coordinates are there, but only a small subset and not quite as useable as on some professional controls. Etcetera. This makes the control more a sort of ‘push the big play button’ kind of control.
Biggest problem might be that while scanning the forum and mailing list I am smelling a bit of a ‘not invented here’ attitude when it comes to development. Extremely useful additions such as the circular blend trajectory planner and realtime layer abstraction have problems making it to the main distribution and the developers are seldom found on the forum but use their own mailing list. That does not really invite fresh flesh to actively contribute and promotes a gazillon separate branches. The MachineKit people seem to do better in that regard.
The Circular Blend Arc trajectory planner and the Preempt-RT support in RTAPI were both merged months ago. They are in the current 2.7 pre-release and will be in the upcoming 2.7.0 release that’s currently being prepared.
DaBit, you have a great machine, congratulations. But you miss the points by a mile.
What percentage of LinuxCNC installs do all that you have done? 10%? Less?
ALL of the pro controls do pretty much ALL of what I mentioned on EVERY machine they’re installed on. That’s a big difference and a real one to consider.
It’s not too simple at all to paint with that broad brush because it is the difference MOST people will experience which is exactly the point of the post. If we wanted to see how the most rarified 10% of eahc audience live, we can do that too and there’ll be a whole additional set of things to compare. But if we’re saying 10% of LinuxCNC users might have what 95% of Pro CNC Controller users have, that’s missing the point. Or, to use your vernacular, that’s an unusually low quality analysis of the situation.
BTW, I take it you’re not really a gearhead. I am, it’s what got me into CNC. You typically would take a crate motor out of the box and install it without retuning it for the exhaust in any significant way. It’d be a rare exchaust system that was so different you’d even rejet the carbs. A better auto-related example would be a Boss 429 Mustang. Ford made just 849 Bos 429 Mustangs. During that same period they made some 490,551 Mustangs in 1969 and 1970. It would be a mistake to equate all of the qualities of the Boss 429 with every other Mustang.
Bob,
First of all a small apology: that ‘unusual low quality’ part of my post is a personal opinion, not a fact. I should have made that clearer, but please bear with me since English is not my native language and I am not particularly good at it.
The loops and branches part of your article is the most obvious low quality part; only 2 minutes of Googling would have shown that your assumption is incorrect, and imho you should have spent those 2 minutes on the background research.
Now, I must say I am not an expert in using professional controls since I got into the CNC world through the desire to make my own motorcycle parts, not because I already was a machinist before. But even then I don’t think I can call Siemens, buy one of their controls, plug in the cables, and expect to have all those nifty features working as expected. Some customization must be done to adapt the control to the machine, and it is the machine manufacturer that must do so or have it done.
So what is the user sees is a control that is made to fit the machine it is mounted on. This is the point where we disagree and probably keep on doing so: I still don’t think it is fair to compare the capabilities and useability of a customized control with a control that runs the out of the box sample configuration with little adaptation to the actual machine. The fact that 90% of the users out there do so only shows that the pro manufacturers see the whole picture and know that mechanics and electronics must be in balance while the average hobbyist focuses too much on the mechanics alone.
The control cannot be blamed for that.
As many pointed out: most of the features you mention are present in the hobby controls (which is not limited to only Mach3 and LinuxCNC). One only has to activate and use them.
Are the hobby controls as good as the pro ones? No, they are not. you are definitely right on the trajectory planning and useability being more advanced on the pro controls. As far as I know only KFlop offers jerk/jounce limited motion planning for example, which is actually quite a big deal on speedy machines running constant-engagement toolpaths with high feedrates.
DaBit, we will have to agree to disagree. The article is about what users experience with the different controls. There are machines being shipped out of the box with these hobby controls, so it isn’t like all the poor users just couldn’t get it together to activate these features. The contrast between the number of pro controls using the features and the number of hobby controls is stark indeed. We can talk about what might have been all day long, but if it is almost never observed in nature it’s moot.
That’s not even touching on the question of how well the exotic features work if they aren’t seeing much use. Nor does it address features not even in dispute and beyond trajectory planning such as more advanced cycles.
It’s okay to be a Fan Boy, but geez guys, realize when there are real differences between what you’re pushing and what is in the world. If there weren’t, why aren’t there more machines being assembled and sold ready to run with these controls? The manufacturers would certainly love to have more profit.
Maybe the answer is because there are real advantages to the pro controls that the hobby machines just haven’t addressed. Advantages that take more than just hooking up the features as you keep pushing.
Once you achieve the real proven capability you claim to already have, I think adoption would accelerate tremendously. It’s been true throughout the rest of the Open Source world. You need to consider that it hasn’t happened because you’re not yet at critical mass for functionality.
I can accept that we are looking at the same animal from different points of view.
I also agree that the pro controls are more capable in many aspects. And money is just money and expensive is a relative thing. If a pro control costs $5000 more than a hobby control but saves $10000 in training, better/faster useability, cycle time/thoughput and tool life that ‘expensive pro control’ saved you $5000 in the end. Being able to call in an engineer when things break down or act weird is a big plus too.
Maybe hobby controls will reach critical mass someday, maybe not. I had multiple visits from machine builders and guys running multiple ‘real’ CNC machines in their factories who wanted to see things with their own eyes badly enough to spend the better part of the day in a car.
Oh well, we shall see what the future brings us.
DaBit, I think it’ll happen. Maybe calling them “Hobby Controls” is the wrong thing. I just don’t see why a “MySQL of CNC Controllers” isn’t inevitable. And sure, MySQL didn’t exactly wipe out Oracle or SQL Server, but it has a huge presence and nobody would view it as a “Hobby Database.”
I do think Fanuc compatibility would be hugely helpful. I also think part of it is a cultural issue with machine tool builders. They need to hire some software people to properly integrate a controller such as LinuxCNC.
Tormach is a company that did that for my Tormach Lathe and as I’ve mentioned, I am really pleased with the result. It’s solid and very professionally done. They hired some folks who are excellent software people and I hope LinuxCNC is benefiting from that for all.
Well, there is more to it. I once thought ‘Why isn’t there a complete CNC control for hobby use?’. There are, but they are not very succesfull. Then I started counting. Industrial quality PC hardware. Couple of hardware boxes/boards for motion control. A nice control panel with a lot of buttons and dials. A pendant. A robust enclosure. It all adds up to a pretty large amount of money. Then there is the software; even with an off the shelf control like Mach3, EdingCNC, LinuxCNC, etc. you probably need to add a thing or two (such as a user interface that feels like some known control) and make everything work together. You know how much time and therefore money software development takes. Then you are hitting a price range where good support and a liberal trouble solving policy without having to bill every $10 becomes a necessity.
And then you have a product that is priced like the pros, but a lot of infrastructure is still missing. Take a professional CAM package and select the LinuxCNC postprocessor, for example…
Your Fanuc (or whatever) compatibility would help a lot.
It can be done, someday it will be done, but quite a few moons will pass before it happens I guess.
FlashCut CNC do a very nice job of the complete CNC control for hobby use. It’s cost is actually not that far from what I paid to assemble mine from scratch. If you value your time at all, it’s a great deal. It’s plug and play and it’s users seem to love.
I think it is probably a viable niche for a company to base a FlashCut-style offering on LinuxCNC, particularly if they have some software expertise in house. There is room for decent margins when you look at what controls like Centroid cost, which are quite a bit cheaper than Fanuc.
DaBit, we’ll need to comply with disagreeing. The article is about what users experience with the various controls. There are machines being shipped out of the box with these hobby controls, so it isn’t like all the poor users just couldn’t catch on together to activate these features.
Great Read!
I believe LinuxCNC and Mach have closed the gap since this article has been written but that doesn’t stop Pro operators from looking at Axis as if its an alien space craft. I have never operated a machine without EMC2. Its been almost a decade and I’m still learning.
Benjamin, they haven’t really. Remember that not ALL hobby controls have ALL these issues.
But, for example, Mach 3 and LinuxCNC have not become appreciably more Macro B compatible. They don’t have the complex cycles like the Haas pocketing cycle. They don’t have the level of lookahead and trajectory planning the pros have, though Tormach actually improved that for LinuxCNC. Tormach introduced a dedicated control panel that’s nice, but it’s only available for Tormach’s particular LinuxCNC flavor. Same with the PathPilot UI, which is awesome, but only for Tormach people.
I have to say, the Centroid Acorn may just be the most feature rich, easy to use and install control I have seen that is in the Hobby price range.
G71 for the lathe is now also available in Linuxcnc 2.9