CNC Controller Software
Today I spent a few hours experimenting with Mach3 vs. EMC2 (the leading Linux based alternative) for running my CNC mill. I was initially skeptical of EMC due to the fact that it didn’t seem to have a lot going for it except for the (lack of) price. After my experiments I’ve reached a few conclusions.
As for Mach3, it is a commercial product with a lot going for it as it gets recommendations from many people including my good friend Dave Hylands. Usually that is good enough for me, except it would have been more convenient for me to run something capable of good performance on a spare 500 Mhz K6 system I had sitting around. And another friend Stig Pedersen recommended EMC. Sure I might have been a bit hopeful for this older system but I figured that Linux should be better on such low-end hardware than Windows, right? Fortunately the Linux CNC project has a downloadable Live Image CD so it was easy enough to test.
Mach3 has a few things going for it:
- Absolutely dead-easy to get running on a modern Windows system;
- Moderately simple to set up with my Xylotek controller & Sherline mill;
- Quite a few basic “CAM-like” wizards to generate decent G-Code for single operations.
I was able to get up and running with this in a matter of minutes. My first experiments to create a circular pocket (last weekend) were qutie simple due to the simplicity of Mach3, so I figured more experiments were going to be trivial this weekend with an attempt to do basic surfacing. Unfortunately the CAM wizards are quite haphazd in design, they are neither consistent in layout nor in quality. It took me the better part of an hour to figure it out but eventually I was able to face my 3×4 inch aluminum block. Strike one for Mach3 in the sense that I had higher hopes.
Then I tried to boot into EMC2 using my intended target system. EMC doesn’t have any of the “nice” CAM wizards that Mach3 has, and it suffers from a lack of setup documentation. But heck that isn’t the open source way so I can’t say I’m surprised. In fact the documentation is really very, very poor by comparison and I wouldn’t say the Mach3 guide is that great. But eventually I managed to get a decent configuration from EMC with good performance.
This whole thing was generally unsuccessful on the low-end system but not without a lot of comedy; the basic units for setting up EMC are different than Mach3 (inches per second rather than inches per minute) so there was some nasty noises from my brand new stepper motors. Opps.
The conclusion is that a 500 Mhz machine is no where near good enough to run this software. I don’t care what their FAQ says, forget about it with such a system.
I also didn’t like the lack of keyboard configuration (or UI configuration in general) but I could probably learn to live with it. I also found the default interface (AXIS) to be a bit clumsy but later came to appreciate accept it after working with it for a few hours.
I made the rest of my test using my 3Ghz Pentium machine instead (which in retrospect was good because it was the same hardware as I was using for my Mach3 trials).
I found that EMC seemed to run my Xylotek stepper motors more smoothly. I distnctly heard a very different sound from Mach3 when I was aggresively moving the mouse. I was never able to observe a problem in the consistency of tracking e.g. it didn’t loose steps, but it was very disturbing anyways. No such issues occurred when using EMC. I was swayed by this quite a bit especially because the Windows box running Mach3 was also set up with quite a bit of other s/w I wasn’t willing to part with just yet.
Otherwise I’d say it came down to these things:
- Mach3 has a complex screen with many options I won’t use, while EMC is much simpler;
- Mach3 is more configurable and easier to set up than EMC;
- The CAM wizards in Mach3 are ok but not stupendous; the Newfangled Solutions versions are better than the default ones but cost more money; there are no such equivalents in EMC;
- EMC is capable enough to run 2.5D G-Code as long as you can generate it from other programs or from writing it yourself.
EMC takes some getting used to but appears to be a viable alternative for people who are willing to invest a little bit more patience than required for Mach3. I think I’ll stick with it although it won’t work on the system I originally intended to use for it. Until I pick up another system I’ll just dual-boot.
For those simple CAM operations I’ll probably end up using SheetCAM but that is a separate story.
Bob,
it’s interesting that you can hear a difference, My feeling is that this is because Windows is not a real RTOS while EMC with RTAI is. So when you wiggle the mouse, more CPU resources go to the mouse movemenets interrupting the kernel thread that bit bangs the pulses for the steppers, hence the audible difference.
Comment by Rvt — July 28, 2010 @ 5:42 amYes I’d definitely agree the different sounds are most likely due to the lack of absolute consistency in the stepper pulses on Windows. I suspect it still works ok, but I didn’t really want to find out. I’ve now been using EMC2 for several years and have been very pleased with it. I’ve even managed to make the keyboard work well for me, and I’ve recently stumbled into a project to use a game pad for control.
Comment by Bob — July 28, 2010 @ 8:19 pm