LinuxCNC

When a machine has to move precisely and predictably, hobby firmware runs out of road. LinuxCNC is the open-source, hard-real-time controller that drives everything from converted mills to plasma tables and lathes.

Licence · GPL-2.0 (free) Platform · Linux + real-time kernel Axes · up to 9, kinematics-aware Use · mills, lathes, routers, plasma
TL;DR

LinuxCNC is the serious end of open-source machine control. It runs on a PC with a real-time kernel and a hardware interface (often a Mesa FPGA card), giving you deterministic step generation, closed-loop control, custom kinematics and a configurable HAL. If you are retrofitting a real machine rather than running a desktop router, this is the reference platform.

What it is

LinuxCNC is a software motion controller: it reads G-code, plans trajectories, and emits the step/direction or servo commands a machine needs — all under hard real-time timing so motion never stutters. Its defining feature is HAL (the Hardware Abstraction Layer), a signal-wiring system that lets you connect inputs, outputs, encoders, spindles and logic like a virtual breadboard. That flexibility is why it dominates ambitious retrofits.

Where it wins

Where it still hurts

The AI angle

The interesting frontier here is adaptive control: ML models that tune feeds and speeds from spindle load, detect tool wear from vibration, or optimise toolpaths for a specific machine's dynamics. LinuxCNC's open HAL and Python interface make it an unusually good substrate for wiring those signals in.

Start here

← More CNC & CAM tools