Personally, I'd skip Mach3 completely. I've had it on a few machines over the years and there is always something that annoys the living daylights out of me. It came on my Novakon NM200 and if it wasn't diving the Z axis into the ground the minute you turned your back, it was failing to turn on and off the spindle when it was supposed to. I put Flashcut on it and it's been a machine you can rely on 100%.

Regards Linuxcnc, I attempted to install it about a year ago to have a look, but it did not like the spare PC I happened to have. Over the last year, I collected a few more spare PC's and decided to try it again. The install went as easy as other Linux things I have been doing (I have Linux Servers at the shop, MythTV at home).

Right out of the box, it opens up in the gui called "axis". I guess while it has everything a guy needs for your average 3 axis machine, you find yourself wondering how to use it because it is so bare compared to any other control you have ever used. You conclude that you have to immediately memorize key commands because frankly, stuff you need to use and think should be up front visually is buried 3 levels deep in the upper menu.

I figured I would go to their HELP menu and find some help, but I only found ABOUT Linuxcnc. So, I had to hit the various manuals to figure out what I had to do to configure it for a machine and then how to operate it. The basics are handled by a gui called stepconf. This gives you a visual window to adjust various settings... pin configurations for step, dir, enable , etc. It is here you also set accelerations, home routines and minimum and maximum travel rates. There is a handy set of tools there to allow you to check the actual motion of each axis before you leave to see how your machine will react to your settings.

While using the stepconf gui, you feel like your missing an awful lot of options or settings you should be seeing, but you are prompted to save the configuration and the window closes. You find out that the next thing you do is re-open the main control window (axis) and attempt to home the machine, set a program zero, and run a file..... beyond the homing routine, you really wonder how to do any of the following without key commands.

When your tired of the minimally featured user interface called axis, which only took me a few minutes, you stick your nose back into the books to figure out how you can use one of the other user interfaces they tell you exist. Well, you find out that you can simply change the gui by editing an INI file. Easy enough. Open the INI, edit the line, and relaunch the program to see the changed GUI. It seems ANY of the alternative gui options will jar your memory as to what a control usually looks like. That's about the time you start to wonder why the stepconf program just didn't offer you the gui options right there in the "setup dialogs" they offered.

So, indeed, the other window options actually look like a control !... jog buttons, code edit window, Yep.... this looks familiar. So, at this point, you find that you can actually "play" with the machine. See how it reacts, see if you selected accurate accelerations and travel rates. In my case, I had some debounce issues that HAD to be addressed in order to play. Struck me again that I did not see anything regards debounce in the setup gui. A few days of research, a few discussions in the forum, and I found that you have to add debounce manually to the HAL file (which is another config file in addition to the INI).

After some starts and stops to get what I was to add correctly addressed in the file, the machine homes like expected. Back to playing. Motion is good, speed is good... accelerations could use a touch up. So, I opened up stepconf, adjusted the accels that bugged me, saved the config, opened the main program and the machine would not home ! That's because you really can only use stepconf ONCE ! Anything you change or add to the INI or HAL will be overwritten. And I guess it is too much work to just add a little line of text to the stepconf gui that TELLS YOU THAT ?? This is what has bugged me so far. I design in depth user interfaces for databases. I tend to put what is needed to operate the development in the gui to make things clear to users. And, its EASY to do such ! But given that Lcnc has been out so long, I doubt we will see this easy stuff attended to. Stepconf should disappear after you use it once !

My examination to date ? It does not have the majority of very common things most have been used to seeing up front in other controls. It IS an incredibly powerful program that allows you to pretty much do whatever you want or need to do, but all virtually by editing config files manually. And, the tough part with that is finding out what it is you need to add or adjust to those config files, especially if your not a linux gearhead/programmer type. For example, if you wanted to have a simple feed hold / restart option, you have to search for the code someone may have used to create that function, then add that code in hopes that THEIR overall specific configuration will not collide with something you may have already added to your config.

It seems there is no end to what you CAN do, but you have to do a lot of legwork that other programs already have right there, up front for you to turn on or adjust in their setup gui. You also can not "adjust" things on the fly. I'm used to being able to start a job, and if I decide I would like to loosen the accelerations without starting over, I can put the machine in feed hold, pop open a config file from within the main control program, adjust it, save the config, and continue the job with the new rates. Seems Linuxcnc only recognizes "adjustments" when the main program is opened as it must read the configuration files (and there can be numerous files) to apply the information.

I'm going to keep on learning about it... heck, its FREE and it's clearly a more stable control than Mach3. Jury is still out regards Mach4, not that I would use it. If I am spending money, it will be on Flashcut. THAT works like a dream.

Hope this gives some insight to LinuxCNC from a newbie. For mach insight, just go look into its forum full of "discussions".