Guide · 3 min read

GRBL, grblHAL and the controller box

The free firmware inside many hobby CNC machines, where it came from, and what the makers in the record use.

Between your computer and the motors sits a small box of electronics: the controller. Its job is to read G-code one move at a time and turn each move into precisely timed pulses for the motor drivers. On a lot of hobby machines, the software running inside that box is GRBL or grblHAL.

GRBL

GRBL is free, open-source firmware. Its project page describes it as "a no-compromise, high performance, low cost alternative to parallel-port-based motion control for CNC milling" and says the main version "runs on an Arduino with a 328p processor". It "accepts standards-compliant g-code", supports arcs and circles, and plans its speeds ahead: it will "look up to 16 motions into the future" so it can accelerate smoothly into corners. It's released under the GPLv3 licence.

grblHAL

grblHAL is a descendant of GRBL for more powerful chips. Its README says it is "based on the Arduino version of grbl" and "mainly aimed at ARM processors (or other 32-bit MCUs)", with drivers for "more than 15 different processors". It also has an open plugin system for adding features. When I read the repository on 1 November 2026 it listed a latest build dated 20261015.

What the machines in the record use

MachineController and motors, as published
SainSmart 3018-PROVer V232-bit board, GRBL (version not published). Power supply 24V/4A.
SainSmart 3020-PRO MAX V2Grbl V1.1 with 32-bit TB67S109 drivers; upgraded offline controller
SainSmart 4040-PROOffline controller CTL4040; GRBL on a 32-bit MCU, TB67S109 drivers. NEMA 17 steppers.
SainSmart 3020-PRO UltraGRBL; offline controller included
FoxAlien Masuter ProControl box with e-stop and home buttons; firmware not published. 12V/5A supply. Steppers 1.3 A, 0.25 Nm.
Two Trees TTC450 Pro (500W)GRBL; 3.5" touch screen
Two Trees TTC450 UltraGRBL; external 3.5" touch screen
FoxAlien Masuter Pro Max 2x2Control box included; firmware not published. NEMA 17 steppers.
SainSmart 4040-PRO MAXGRBL on a 32-bit MCU, TB67S109 drivers. Offline controller CTL4040 sold separately.
Onefinity ApprenticeRedline CNC controller. Open-loop 1.2 Nm NEMA 23 motors. Computer required.
SainSmart PROVerXL 4030SGRBL 1.1h, 32-bit MCU
MillRight CNC Carve King 2MillRight boards on an Uno running GRBL. NEMA 17 steppers, dual Y.
FoxAlien Masuter 3SController box with shortcut buttons; supports an offline controller. Four NEMA 23 closed-loop steppers, 2.2 Nm.
Makera Z1NEMA 17 steppers (Z1); closed-loop NEMA 17 on the Z1 Pro. Max travel 1,200 mm/min.
SainSmart PROVerXL 4030 V2GRBL 1.1h. Closed-loop NEMA 23 steppers.
FoxAlien XE-PROOpen-source grbl; offline control built in. NEMA 23 closed-loop steppers, 5,000 mm/min.
Sienci Labs LongMill MK3 30x30SLB-LITE controller, grblHAL. Closed-loop NEMA 23, 1.2 Nm.
Two Trees TTC6050GRBL; 3.5" touch screen
SainSmart PROVerXL 6050 PlusGRBL 1.1h. Open-loop NEMA 23 steppers.
Makera Carvera AirMakera controller
Onefinity Gen 2 Elite WoodworkerRedline CNC controller. Closed-loop 2 Nm X/Y, 1.2 Nm Z. Computer optional (15" screen option); WiFi, Ethernet.
MillRight CNC Mega V 2 (19x19)GRBL by default (Masso G3 Touch +$2,200). Closed-loop motors.
Carbide 3D Nomad 3Not published. Carbide Motion control software.
FoxAlien CL-4x4Controller box with 2.4" touchscreen for offline use. Four NEMA 23 closed-loop steppers, up to 3.5 Nm.
MillRight CNC Mega V 2 XL (35x35)GRBL by default (Masso G3 Touch +$2,200). Closed-loop motors.
Sienci Labs AltMill MK2 4x4SLB-EXT controller with e-stop. Closed-loop steppers; "over 600IPM".
Carbide 3D Shapeoko 5.1 Pro 4x2Not named. Optically isolated electronics, internal supply, 110/220V.
Sienci Labs AltMill MK2 2x4SLB-EXT controller with e-stop. Closed-loop steppers on all three axes; about 600 in/min.
Next Wave CNC Shark HD520Colour touch-screen pendant
MillRight CNC Mega V 2 XXL (50x50)GRBL by default (Masso G3 Touch +$2,200). Closed-loop motors.
Makera CarveraMakera controller; ATC and auto probing
Inventables X-Carve Pro 4x2Not published
Carbide 3D Shapeoko HDM V3Not published
Inventables X-Carve Pro 4x4Not published
Sienci Labs AltMill 4x8SLB-Ext, grblHAL. Closed-loop NEMA 23 steppers.

Not every maker uses GRBL. Onefinity uses its own Redline controller; Carbide 3D doesn't name its controller but ships Carbide Motion as the software to run it. The practical difference for a beginner is which sender programs will talk to the machine. GRBL-based machines generally work with the free GRBL senders; a machine with its own controller usually comes with its own software.

How GRBL reads a job

GRBL's documentation describes its G-code parser in terms of modes. Commands set states that last until changed, "so you don't have to constantly tell the parser how to parse it", and the states are grouped into "modal groups" that can't be active at the same time. The docs give the defaults GRBL starts in, including G21 (millimetres), G90 and M5 (spindle off), and list the groups it supports: motion (G0, G1, G2, G3 and probing moves), coordinate system (G54 to G59), plane, distance, feed rate, units, program and spindle state, among others.

For a beginner, the useful takeaway is that the units mode decides whether a file is read in inches or millimetres, and GRBL starts in millimetres unless the file says otherwise.

The software that talks to GRBL

A GRBL machine needs a sender program on the computer. Two widely used free ones:

Because both are written to work with any standard GRBL machine, a GRBL machine can be run from more than one program.

32-bit

You'll see "32-bit" on several spec sheets. SainSmart describes the 4040-PRO as running GRBL "on a 32-bit MCU", and the 3018-PROVer V2 as having a "32-bit control board". The original GRBL ran on an 8-bit Arduino chip; the 32-bit boards run later firmware on newer chips. The spec sheets don't say what that changes for the user, so I won't guess.

Sources

Read on 1 November 2026. Quotes are copied from these pages.