LinuxCNC
GPL-2.0
- Platform
- Linux
- Licence
- GPL-2.0 Open source
LinuxCNC is machine-control software that turns a PC into the controller for a real machine: milling machines, lathes, 3D printers, laser cutters, plasma cutters, robot arms and hexapods. Unlike the browser front-ends in this category it is not a viewer for someone else’s firmware — it is the motion controller itself, running on a real-time Linux kernel and driving the motors directly.
Key Features
- Real-time motion control — the software runs on a Linux kernel patched for deterministic timing, so the pulses that move the axes are generated on schedule rather than whenever the scheduler gets round to it. This is the property that separates it from a G-code sender.
- Machine types well beyond 3D printing — the project describes support for mills, lathes, 3D printers, laser cutters, plasma cutters, robot arms and hexapods, which is why it is common in machine shops and retrofits rather than only in makerspaces.
- Hardware abstraction layer — HAL lets you wire the control logic to a particular set of motors, encoders and I/O without rewriting the controller, which is what makes it adaptable to home-built and converted machines.
- G-code interpreter with a documented standard — a full interpreter for machine G-code, with the reference documentation published as part of the project.
- Multiple front-ends — the control software is separable from its graphical interfaces, so the same machine can be driven from a full desktop panel or a simpler touch-oriented screen.
- Packaged for Debian — distributed as Debian packages (the userspace package is linuxcnc-uspace) rather than as a container, because it needs low-level access to timing and hardware.
- Long-lived project — the current stable series is 2.9.x, developed in the open on the project’s own repository, with a documented release history.
Why use LinuxCNC?
It is the option that treats the PC as the controller instead of as a peripheral. That costs you a dedicated machine with a real-time kernel and a parallel-port or Mesa-card interface, and it buys you precise, repeatable motion control on hardware you can repair and understand. For a lathe or a converted knee mill where a controller board is not an option, it is often the only open-source route.
Use cases
- Converting a manual mill or lathe to CNC control.
- Driving a plasma table or laser cutter where the motion control matters more than the user interface.
- Teaching CNC concepts with hardware you can inspect end to end.
- Running machines that need coordinated multi-axis motion a hobby controller cannot provide.
Requirements
A dedicated x86 PC with a real-time Linux kernel (the project ships Debian-based images), a supported motion-control interface, and the machine itself. It is Linux-only by design — the real-time patch and the hardware access it relies on are not portable.
Alternatives
- CNCjs — a lighter, browser-based interface for machines that already have a Grbl, Marlin or Smoothieware controller.
- OctoPrint — print-host software aimed at 3D printers rather than general machine control.
Views: 3