Home

LinuxCNC

LinuxCNC is a free, open-source software suite for controlling computer numerical control (CNC) machines such as mills, lathes, routers, and plasma cutters. It provides a real-time control environment that interprets G-code and drives machine motors and actuators through a hardware abstraction layer. LinuxCNC runs primarily on Linux and historically requires a real-time kernel to achieve precise motion timing.

The project originated as EMC2, the Enhanced Machine Controller 2, and later was renamed LinuxCNC. It is

LinuxCNC interfaces with hardware through HAL, which allows software to interact with various motion controllers, I/O

Users interact with LinuxCNC through graphical front ends such as Axis and other user interfaces, as well

Applications include hobbyist CNC mills, commercial machine tools, educational labs, and research projects. The software emphasizes

released
under
an
open-source
license
and
maintained
by
a
community
of
developers
and
users.
devices,
and
sensors.
Supported
hardware
ranges
from
traditional
parallel-port
systems
to
modern
external
motion
controllers
and
Mesa
electronics
cards,
enabling
multi-axis
control
with
encoder
feedback
and
limit
switches.
The
software
outputs
standard
CNC
commands
such
as
G-code
and
M-code
and
supports
a
variety
of
coordinate
systems,
work
offsets,
and
kinematic
configurations
for
different
machine
geometries.
as
textual
command
interfaces.
Configuration
is
performed
via
human-readable
INI
and
HAL
configuration
files
that
describe
the
machine,
its
axes,
drives,
and
I/O,
allowing
customization
for
different
toolpaths
and
workflows.
LinuxCNC
supports
multi-axis
machines,
typically
3-axis
or
more,
with
additional
axes
enabled
through
appropriate
kinematics
and
hardware.
precision,
repeatability,
and
flexibility,
but
requires
some
technical
setup
to
integrate
hardware
and
tune
real-time
performance.