Tormach, EMC, LinuxCNC, Mach3, Mach4 etc.
EMC was developed by NIST, an agency of the government of the USA.
Most developments of US agencies, including EMC, are public domain.
They are not and may not be copyrighted. Anyone is free to use them
as they see fit.
The various versions of Mach, and many other CNC control systems are
derived from the public domain version of EMC.
Tormach's version of LinuxCNC is derived from LinuxCNC, which does
claim GPL copyright. Tormach has indicated that they intend to comply
with those GPL requirements. Indeed, some of the work that they sponsored,
updates to the trajectory planner, have already been integrated back
into the LinuxCNC repositories. Some other parts of their product, like
the PathPilot GUI, are possibly only partially covered by GPL. Tormach has
indicated that they want to contribute technology back to LinuxCNC but
wish to do so in a fashion such that other vendors cannot directly
copy their PathPilot GUI.
Tormach's other changes to the LinuxCNC code base may or may not be
integrated back into the main LinuxCNC repositories depending on how
the community feels about them. None the less, they will be available
under the terms of the GPL license.
Tormach is offering their implementation of LinuxCNC as a product that
is supported by them provided that you have purchased their equipment
and do not modify the software. If you utilize it on other hardware or
modify the software, then you must support yourself.
The Tormach implementation runs on a Linux distribution controlled by
Tormach and requires specific Mesa interface hardware to run. If you
want to design screens or write scripts, this is outside the realm of
things that Tormach will support. If you want to run on a different
distribution of Linux, you are on your own. Obviously it will not
run on a Windows based machine.
Mach4 is derived from prior versions of Mach and is a descendant of the
original EMC released by NIST. It runs on modern Windows machines and
can be extensively customized by both vendors and users.
LinuxCNC's motion control is tightly integrated with the real time
operating system and motion control devices must be able to communicate
with the operating system software in real time if you are using their
standard control model. This is possible in Tormach's case because the
Mesa hardware that they chose is plugged directly into the computer's
internal card slots.
The Mach family uses a looser integration of the motion controller, or
parallel port driver, with the operating system software. This allows
the use of external devices that communicate with USB or Ethernet and
which can tolerate communication delays of up to a couple of seconds.
Not that a delay that long is desirable. Vendors supporting Mach4 are
trying to shorten that delay as much a possible, perhaps to as little
as 1/10 of a second. Still, that requires that the motion control
device be intelligent and capable of responding to limits, probing,
threading and similar tasks itself rather than depending on the host
based software.
Windows cannot be relied upon to respond like a real time control
system. The parallel port drivers have effectively been a simple real
time operating systme which runs Windows as a task. This is becoming
nearly impossible with modern versions of Windows. No 64 bit versions of
Windows allow this, and the 32 bit version Windows 7 is the last one on
which a parallel port driver has been implemented successfully.
The Mesa hardware which Tormach is using requires real time management.
Because of this it is unlikely that a plug-in for Mach4 will be attempted.
It may be possible, but it would end up behaving like other motion devices
under Mach, ie. loosely coupled.
The jest of these observations is that Tormach's version of LinuxCNC and
Mach4 are really two different animals, each with their own place.
Regards,
Steve Stallings
www.PMDX.com