How do CNC Machines Work?

This will be basic overview of how CNC machines work, from the movement of the machine itself to the computer driving it.


Lets begin at the machine itself and how it moves around, the movement of the machine is driven by actuators – very precise motors which can be controlled with a very high degree of accuracy.

The most common actuators you’ll see used on CNC machines are stepper motors and servo motors. Each unique CNC machine will suite one of these motors more than the other, although typically it comes down to cost. Quite simply servos are better, however as you might expect they are more expensive.

Servos use something called “closed loop control”, this means the motor always knows where it is no matter what outside forces are at play. For example: if the motor was jammed for a fraction of a second whilst the CNC machine was in operation.

Stepper motors on the other hand use “open loop control”, which means unlike the servo motor, it doesn’t know where it is; it only does the movement and “hopes” it was made. However don’t let that make you think stepper motors are bad, as long as the right stepper motor is picked for the CNC machine and it has enough power, this won’t happen.


Drivers are what control the actuators. These drivers are high-powered devices which take signals generated from the computer and turn them into movement through the actuators, be it stepper or servo.

Each actuator will need its own driver, so if you have three stepper motors, you’ll need three stepper motor drivers.


A computer will convert G-Code in to many thousands of small motions that it’ll send one-by-one to the actuator drivers. In the hobbyist world there are two primary options:

  1. Use a PC with software like Mach3 for Windows or LinuxCNC for Linux. Typically these applications control your actuator drivers via the 25 pin parallel port on your PC, commonly referred to as the printer port. However it’s been many years since printer ports were common on PC’s, and it may be quite difficult to find one. The alternative is to use an external device that can be connected via a typical USB connection.
  2. A small embedded computer that will do all the CNC processing on board. An example of this is grbl which runs on an Arduino Uno microcontroller board.


This basic overview applies for every kind of CNC machine whether its a CNC router, plasma, laser, milling machine, lathe or 3D printer. They all use the same underlying infrastructure.