- Joined
- Oct 16, 2019
- Messages
- 6,876
I suspect that issues with LinuxCNC revolve around the fact that most people are more familiar with Windows (or Mac), and that LinuxCNC has a fairly steep learning curve. If you aren't familiar with the Linux environment and how to do seemingly simple things, it can be a struggle. Having to use a DOS-like terminal for many commands/functions during setups has been a challenge for me.
I'm sure once you get used to it it's fine, but for a novice (me) it's been painful.
Second reason LinuxCNC may not be the best option for a beginner is due to its extremely powerful & flexible nature, there are countless options, features, commands, functions, and other details that may need to be worked out. Getting your head wrapped around the basic architecture and jargon can be daunting.
And there's no customer help number... it's all community-based forum support. Documentation, while helpful as a general guide, is usually outdated.
If you're willing to brave the learning curve, LinuxCNC looks to have pretty amazing capabilities. 9-axis synchronized motion, built-in PLC ladder functions, ability to control just about any type of motor, actuator, whatever. Stuff like adjusting the feedrate based on real-time spindle load and tool center point control like the big boy CNC machines have.
I think LinuxCNC should be fairly easy for a beginner to get working... but that's for simple machines: routers, plasma cutters. For something more complicated (like my 4-axis mill with lots of other nice-to-haves like an ATC, spindle orientation, PDB, 5th axis) LinuxCNC is less intuitive.
My earlier comment about 'real time' vs Windows wasn't intended to be a dig, or to imply that a real-time OS kernel is superior to Windows-PC based CNC motion control. If you offload the heavy lifting (trajectory planning and precise signal timing) to a dedicated motion controller, then there's no issue. The advantage of a real-time OS is valid when comparing Mach 3 through a PC's parallel port to LinuxCNC through a parallel port.
The only fundamental advantage I can see now is that Windows-based systems can be slightly less responsive to user inputs than a real-time system. By this I mean that pushing a feed-hold button on a Windows system with a separate motion controller (Smoothstepper, UCCNC, any of them) results in some lag or latency (delay). The separate motion controller's buffer has to empty before it can process the new input signal. A large buffer (maybe for a slow PC or big look-ahead) can result in noticable delays. Small buffer, smaller lag.
If you've ever operated a 'real' machine with a dedicated CNC system (Fanuc, Haas, Siemens, etc.) you don't notice any latency when spinning the handwheel or pushing control buttons. Even on old machines.
This isn't limited to Mach 3/4, UCCNC, or other modern(ish) PC-based controls. My 2006 Emco lathe appears to have a Fanuc 21TB control, but it's actually a Windows 7 PC running Emco software that's been designed to mimic the Fanuc user interface. This also has a bit of latency in the controls... switch to a real Fanuc controller and everything is instant.
Not a deal breaker, but a half-second feed-hold delay during a rapid down in Z can cause some puckering.
-R
Thanks for your very thoughtful post.
As a CNC noob my experience thus far has been with my two-axis plasma cutter that runs off an Arduino Uno. Using LinuxCNC for a three-axis router will be a big step up in complexity to be sure.