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
| Machine | Controller and motors, as published |
|---|---|
| SainSmart 3018-PROVer V2 | 32-bit board, GRBL (version not published). Power supply 24V/4A. |
| SainSmart 3020-PRO MAX V2 | Grbl V1.1 with 32-bit TB67S109 drivers; upgraded offline controller |
| SainSmart 4040-PRO | Offline controller CTL4040; GRBL on a 32-bit MCU, TB67S109 drivers. NEMA 17 steppers. |
| SainSmart 3020-PRO Ultra | GRBL; offline controller included |
| FoxAlien Masuter Pro | Control 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 Ultra | GRBL; external 3.5" touch screen |
| FoxAlien Masuter Pro Max 2x2 | Control box included; firmware not published. NEMA 17 steppers. |
| SainSmart 4040-PRO MAX | GRBL on a 32-bit MCU, TB67S109 drivers. Offline controller CTL4040 sold separately. |
| Onefinity Apprentice | Redline CNC controller. Open-loop 1.2 Nm NEMA 23 motors. Computer required. |
| SainSmart PROVerXL 4030S | GRBL 1.1h, 32-bit MCU |
| MillRight CNC Carve King 2 | MillRight boards on an Uno running GRBL. NEMA 17 steppers, dual Y. |
| FoxAlien Masuter 3S | Controller box with shortcut buttons; supports an offline controller. Four NEMA 23 closed-loop steppers, 2.2 Nm. |
| Makera Z1 | NEMA 17 steppers (Z1); closed-loop NEMA 17 on the Z1 Pro. Max travel 1,200 mm/min. |
| SainSmart PROVerXL 4030 V2 | GRBL 1.1h. Closed-loop NEMA 23 steppers. |
| FoxAlien XE-PRO | Open-source grbl; offline control built in. NEMA 23 closed-loop steppers, 5,000 mm/min. |
| Sienci Labs LongMill MK3 30x30 | SLB-LITE controller, grblHAL. Closed-loop NEMA 23, 1.2 Nm. |
| Two Trees TTC6050 | GRBL; 3.5" touch screen |
| SainSmart PROVerXL 6050 Plus | GRBL 1.1h. Open-loop NEMA 23 steppers. |
| Makera Carvera Air | Makera controller |
| Onefinity Gen 2 Elite Woodworker | Redline 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 3 | Not published. Carbide Motion control software. |
| FoxAlien CL-4x4 | Controller 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 4x4 | SLB-EXT controller with e-stop. Closed-loop steppers; "over 600IPM". |
| Carbide 3D Shapeoko 5.1 Pro 4x2 | Not named. Optically isolated electronics, internal supply, 110/220V. |
| Sienci Labs AltMill MK2 2x4 | SLB-EXT controller with e-stop. Closed-loop steppers on all three axes; about 600 in/min. |
| Next Wave CNC Shark HD520 | Colour touch-screen pendant |
| MillRight CNC Mega V 2 XXL (50x50) | GRBL by default (Masso G3 Touch +$2,200). Closed-loop motors. |
| Makera Carvera | Makera controller; ATC and auto probing |
| Inventables X-Carve Pro 4x2 | Not published |
| Carbide 3D Shapeoko HDM V3 | Not published |
| Inventables X-Carve Pro 4x4 | Not published |
| Sienci Labs AltMill 4x8 | SLB-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:
- gSender, from Sienci Labs. Its README says it's "totally free", "accepts standard, grbl-compliant g-code from all the common CAM programs" and is "designed to be generic so any standard grbl or grblHAL CNC will work". Sienci's LongMill page names it as the sender most of its customers use.
- Universal G-Code Sender (UGS), "a Java based, cross platform G-Code sender, compatible with GRBL, TinyG, g2core and Smoothieware", per its README. SainSmart lists UGS among the control programs for the 3018-PROVer V2.
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.
- GRBL documentation: commands (github.com/gnea/grbl, doc/markdown/commands.md)
- gSender README (github.com/Sienci-Labs/gsender)
- Universal G-Code Sender README (github.com/winder/Universal-G-Code-Sender)
- GRBL README (github.com/gnea/grbl)
- grblHAL core README (github.com/grblHAL/core)
- Sienci Labs LongMill MK3 30x30 product page
- SainSmart 4040-PRO product page
- SainSmart 3018-PROVer V2 product page
- Onefinity compare page
- Carbide 3D Shapeoko 5.1 Pro product page