CNC Control Penchant (and a new pendant)
The switch to Linux CNC was not without some trepidation. I left a machine control system (MACH3) that has worked well for me for over a decade. When something old still does its job very well there is no need to make a change. (It’s a shame human corporate careers don’t follow that philosophy. 🙂
The truth is , MACH3 is still a perfectly fine CNC machine control program. It’s a tool that just keeps working. The problem I have been bemoaning is the computer operating system with which it must operate within, has left it in the dust and moved on to a better social life.
Yes, I have kept the old OS on my old machines, but as I add additional machines and CNC computers to my shop, the old OS, which must have a license to prove it is legal, is no longer provided or can be installed on new hardware. The MACH3 license is a site/owner license so I can run as many copies as I need. The problem is the computer operating system.
So now my go-to is the Linux OS and CNC software called LinuxCNC (a.k.a EMC2).
I am very fluent in the Linux OS, as I have been working with it almost since it was first created. No, I am not a guru, but let me say, “I know the language.” That helps a lot.
I feel sad that I can not highly recommend Linux CNC to every (hobbyist) as a replacement for MACH3. It definitely CAN be a replacement for those folks where editing and rewriting software at the program level and working with Linux at the system command line level, are no problem.
There exists a large amount of documentation. However, Linux CNC is still evolving and I have to be very careful when searching for a documented solution for any issue I may be having. The obsolete material is never deleted (and probably shouldn’t be) so it is up to the reader (me) to search for the kernel of truth among all the chaff.
Enough of he gloom. If you understand Linux and like to play with software, Linux CNC is a great alternative for low cost machine CNC control.
One thing I wanted to have, that I find almost indispensable when zeroing in a new run on any of my CNC machines is a remote control Pendant. It is a hand held controller that moves the machine in all axes to set the start point of machining operation. It can be done with the computer keyboard, but a pendant is far more up close convenient.
That function is not available on a stock LinuxCNC install. Many pendant variations have been documented in the LinucCNC wiki, so it has been done. I found one I like using a low cost game controller pad and functions to duplicate LinuxCNC key presses. I will post an article after I have some experience in its use. I do have it installed on two Linux CNC machines.
The install was definitely not plug and play, but quite doable. A young fellow has a YouTube video that helps. I am very satisfied to have a low cost pendant available on all my machines.
I had one pricey commercial pendant I used with MACH3 but switched it between my machines. Whichever one was in current use. Its like drug addiction, once I got hooked on using the pendant it was hard to live without using again… Ha!
The point here is that I had to do some serious research and code hacking to get that feature installed with LinuxCNC. I realize from the many folks I have assisted with CNC machining, this is far too complex. Many people just want and need a system that helps them just do the machining.
Building new functions into a machine CNC software program is a hobby or perhaps a service business all to its own and separate from pure machining skills. LinuxCNC requires skills in both hardware and software areas or a access to a support system at least on the software side.
My favorite tool lust is Tormach CNC machines. Here is where a professional organization has adapted the Linux system into a well supported tool for their hardware. People buy their machines to get the most use from them. Not to rebuild the software on which they operate.
This proves to me that a Linux OS is perfectly reasonable and practical solution for the loss of a good Microsoft live kernel OS. There may be a market to be exploited for a Linux or other UNIX based live kernel OS for machine control. But I am not going to hold my breath.
The reason for using the PC to do the critical pulse (step) timing was driven by the government National Institute of Science and Technology (NIST) creation of the first edition of EMC. Built using Windows NT, it soon adapted to the Linux OS due to concerns over the stability of the real time Windows NT kernel.
This OS change with EMC led to the creation of the various MACH series of Windows OS based machine control software developed and written by Art Fenerty. Both were built on the PC hardware because it could be done.
That is NOT the case today. MACH4 requires a hardware pulse generator. LinuxCNC is moving to an internal PC card made by Mesa Electronics, that conditions all the timing signals in a super parallel port. That’s because the standard printer parallel port does not exist on new PCs. The Mesa card is perhaps what Tormach is using. I have no idea, but is what I would be using, or something similar in a commercial application.
A New Age
I believe the age of the PC (Personal Computer) OS kernel doing the timing is just about over. There is no future in that direction as the personal computer hardware and OS has changed significantly. I have read that the LinuxCNC developers are adamant about not designing and depending on an external pulse card. That will limit serious commercial application for using the newer generation of personal computer. Creating new, low cost, non PC-based, CNC computing hardware, and making it available is not a serious issue to overcome. It already exists.
The PC is destined to become just the display for a “smart”, low cost, CNC controller with an embedded (Linux or Arduino OS?) processor. All timing will be in the smart controller with I/O from the processor through direct CPU pin (buffered) output to a break-out type interface to the Stepper drivers.The picture shows a readily available $30 smart CNC controller that does all this.
How do I know? This is EXACTLY how CNC operates with 3D printers. There is absolutely no reason this can not be done with machine tool CNC, except for the need of heavier motor drivers. I currently have hundreds of fault free CNC operation hours on the controller pictured.
The old school dumb controller is virtually dead. I have worked with the Arduino software code in my “intelligent controlled” 3D printers, This is where I would be placing my bets (low cost intelligent controllers) and would be spending my time exploring CNC programming as a hobbyist. My current investment in ancient technology is the reason I do not.
Check this LINK. It’s not the machine that interests me, but how it is controlled. No tool changers, pendants or other “big boy” features. It’s a toy today, but the writing is on the wall.
The old school control will continue because of the existing old hardware. Just like me, the old investment in tools has value. Tools, the hardware, can last for a very long time. Some point is reached where repair is no longer feasible. The old ways will be abandoned and new technology takes hold. Here is an interesting read of the history of numerical machine control.
3D printing does not have a legacy burden to drag its development. A 3D slicer program produces garden variety G code that can be run on any CNC controller. MACH3 or LinuxCNC could both be used for 3D printer control. It’s probably been done. But they are not the systems of choice.
So I do what I need to do as I am interested in what the machine tool can do for me. I like to know and play with how it does it, but developing software is not my prime objective. I am thankful for legacy methods and software that let me enjoy what I can make with the power of computer controlled machine tools.