Flashing Grbl Firmware

If you want to update the GRBL version installed on your engraver to have all the advantages of the latest v1.1 version, or if you need to re-program it after some error, of if you want to move a benbox engraver to grbl, LaserGRBL allows you to do this by installing from a list of selected firmware.


Some machines need a “custom” firmware to work, for example, because the manufacturer used pin connections other than the standard used by grbl. In these cases it is necessary to contact the supplier to get the customized firmware.

Target Board

Here you should select your arduino board.

Arduino UNO is the big one. Usually you can find it in a sort of “sandwich” with motor driver CNC shield.

Arduino Uno
Arduino Uno

Arduino Nano is the small one. Usually you can find it embedded on the top of a motor driver board.

Arduino Nano
Arduino Nano

Firmware version

Here is a list of the firmware available for install via LaserGRBL flash tool.

v1.1h, original 20190825

This firmware comes directly from official grbl site. File is the same you can download from here [1] without any customization.

[1] https://github.com/gnea/grbl/releases/tag/v1.1h.20190825

Released 25 august 2019.


v1.1h, custom, XY Homing 20190830

This firmware comes from master branch of gnea/grbl aligned to the commit of 30 august 2019.

This firmware was compiled with some changes to file config.h to perform homing only on XY and to set “zero” after homing cycle.

// NOTE: Defaults are set for a traditional 3-axis CNC machine. Z-axis first to clear, followed by X & Y.
// #define HOMING_CYCLE_0 (1<<Z_AXIS) // REQUIRED: First move Z to clear workspace.
// #define HOMING_CYCLE_1 ((1<<X_AXIS)|(1<<Y_AXIS)) // OPTIONAL: Then move X,Y at the same time.
// #define HOMING_CYCLE_2 // OPTIONAL: Uncomment and add axes mask to enable

// NOTE: The following are two examples to setup homing for 2-axis machines.
#define HOMING_CYCLE_0 ((1<<X_AXIS)|(1<<Y_AXIS)) // NOT COMPATIBLE WITH COREXY: Homes both X-Y in one cycle.

// #define HOMING_CYCLE_0 (1<<X_AXIS) // COREXY COMPATIBLE: First home X
// #define HOMING_CYCLE_1 (1<<Y_AXIS) // COREXY COMPATIBLE: Then home Y

// Number of homing cycles performed after when the machine initially jogs to limit switches.
// This help in preventing overshoot and should improve repeatability. This value should be one or
// greater.
#define N_HOMING_LOCATE_CYCLE 2 // Integer (1-128)

// Enables single axis homing commands. $HX, $HY, and $HZ for X, Y, and Z-axis homing. The full homing 
// cycle is still invoked by the $H command. This is disabled by default. It's here only to address
// users that need to switch between a two-axis and three-axis machine. This is actually very rare.
// If you have a two-axis machine, DON'T USE THIS. Instead, just alter the homing cycle for two-axes.
// #define HOMING_SINGLE_AXIS_COMMANDS // Default disabled. Uncomment to enable.

// After homing, Grbl will set by default the entire machine space into negative space, as is typical
// for professional CNC machines, regardless of where the limit switches are located. Uncomment this
// define to force Grbl to always set the machine origin at the homed location despite switch orientation.
#define HOMING_FORCE_SET_ORIGIN // Uncomment to enable.

Custom, aligned to master branch @ 30 august 2019.


v1.1f, original 20170801

This firmware comes directly from official grbl site. File is the same you can download from here [1] without any customization.

[1] https://github.com/gnea/grbl/releases/tag/v1.1f.20170801

Released 01 august 2017.