grblHAL (project wiki) is an open source gcode interpreter that runs on microcontrollers. It is a 32bit fork of the original open source grbl project, which doesn't have the power or features that modern microcontrollers allow. grblHAL is under constant development and the creator and main developer Terje Io is very responsive to feature requests and bug fixes.
To run grblHAL on your PrintNC you'll need 2 main hardware components: A controller board and a sender pc.
grblHAL allows you to use an external microcontroller to generate the step pulses and other control signals for your CNC machine, so you don't need to worry about the connected PC being fast enough to control the CNC machine without losing steps or other interruptions. grblHAL generally runs on relatively low cost and open source hardware, and is a fast and inexpensive way to get a hobby CNC machine up and running.
grblHAL also allows you to switch between different “sender” software for different features or tasks, as the sender computer doesn't directly control the CNC machine's motors, spindle etc.
You're convinced? You're going to use grblHAL to run your new PrintNC or other CNC machine? Excellent. Here's a list of wiki pages you can check out. Otherwise read on below for more information on how to get started.
If you think there's something missing, or would like to help expand this wiki, check out the grblHAL Documentation To-Do page
For the grblHAL hardware controller board there are a range of options available, at different price points and complexity levels to get working with your machine:
Board | Cost | Complexity | Capability | Details |
---|---|---|---|---|
Flexi-HAL | US$115 | Low | High | Designed in collaboration with the PrintNC community. “Successor” to the GRBLHAL2000. Chip-down design that doesn't require a 3rd party development board to be soldered on after PCB manufacturing, fully isolated USB-C connection |
GRBLHAL2000 | US$115 | Low | High | Very similar functionality to the Flex-HAL. Current version is the “EST” (Electronics Standardisation Team) revision. Based around the highly capable Teensy 4.1 development board. |
PicoBOB | US$18 | Low | Med | Designed to be a very cheap entry level controller that's capable of running grblHAL. Works with the ubiquitous “Mach 3 parallel BOB” boards that come with PrintNC kits. |
T41U5XBB Kit | US$90 | Med-High | High | Kit of parts. Requires DIY soldering of through-hole components. |
Other Boards | grblHAL supports a wide range of controller boards, including common 3D printer boards from BTT, Fysetc and MKS. Many of these are capable of running a PrintNC, but the process to wire up, configure and build firmware etc. is considerably more complex. Not recommended for people who aren't comfortable configuring and building their own firmware, figuring out board maps etc. |
As a controller board we recommend the Flexi-HAL or GRBLHAL2000, and for a sender PC the easiest option is a Windows PC running ioSender, which is sender software that currently has the best new user experience as it was developed by the creator of and main contributor to grblHAL.
The GRBLHAL2000 is a breakout board for a Teensy 4.1 microcontroller, generally costing under US$150.
It was designed and released as an open source project by PrintNC community member Drewnabobber so anybody can order a batch from a PCB fabrication service. That's a somewhat complicated process though, and the minimum order is generally 5 boards.
Fortunately PrintNC community members around the world have been ordering and building batches for the community, so you can look on the GRBLHAL2000 marketplace page, or join the #GRBLHAL channel on the Discord to find a pre-built board near you.
The newest version of the GRBLHAL2000 is the EST (Electronics Standardization Team) revision, which includes breakout boards for Limit/Probe sensors, and User Buttons. These connect to the board via RJ45 (ethernet) cable, and make wiring up your machine much simpler.
There is also an inexpensive open source I2C Jogger Pendant available, which extends the functionality and usability of your CNC machine.
Most of the day-to-day interactions with your PrintNC - homing, jogging, probing, loading and running jobs - will be mediated through sender software.
While ioSender is highly recommended for best compatibility with grblHAL, there are other excellent options available for a variety of operating systems:
Software | Operating System | grblHAL Compatibility | Notes |
ioSender | Windows only | Excellent. It is the recommended sender for getting started as all machine settings are available in GUI. Updated in line with new grblHAL features as they are released. |
For a broad introduction to the ioSender interface and features: “One Sender to Rule Them All?” post by Phil Barrett on grbl.org |
UGS | Linux, Mac, Windows | ||
bCNC | Linux, Mac, Windows | Gcode generators for surfacing and other simple operations | |
CNCjs | Linux, Mac, Windows | GRBL but not grblHAL compatibility so functionality will be missing. It is able to run gcode, but can be unresponsive when jogging. | Attractive and beginner-friendly UI. Client/Server model so can be run on a RaspberryPi and accessed remotely. |