Thursday, September 8, 2022

A4 home-made Laser Engraver firmware update Grbl 0.9 to Grbl 1.1h

 A few year ago I've build a Laser Engraver out of a an old scanner and an old printer.

This laser engraver it's based on grbl ( version 0.9. I would like to update the software I use for engraving, moving to the new version of LaserGRBL (

You can find my blog post about this scanner here:

LaserGRBL software is really easy to use, also it has the SVG to G-Code function, that makes the print process really easy.

Warning! Laser diodes drive are emitting visible and invisible laser radiation and they are extremely dangerous! Their light can permanently damage the eyes. You must never look into the working diode even without the lens or point it on a reflective surface. Laser beam can cause burns or fire. This is usually a Class IIIb laser. Everything you do at your own risk.

I'm updating to grbl 1.1h. You can find releases hex in the grbl page, unluckily in order to use grbl for a 2 axis laser engraver like mine, you have to recompile the grbl binary, making some changes to the config.h file.

You have to change the homing procedure. Just edit the config.h file commenting out the following lines

//#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.

then add the two lines below:

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

Also, if you like me do not have a variable power laser driver, you should comment out the following line in order to disable the variable spindle capabilities


Now, just follow the Compiling Grbl instructions you can find here: Eventually you can upload the generated firmware to your hardware.

It's a simple process, but to make things easyer for you can find my compiled hex below, it's compiled for Arduino Micro board with ATmega328.

Now you should be able to use your grbl software.

First thing you have to do is update the default grbl settings, I'm using the one below. Please note that you have to compute at least your motor/mm steps to update the settings. You can find instruction on my blog post linked above, or searching on the web for this.

Just for sake of information, find below my grbl settings:

$21 = 1         (hard limits, bool)
$22 = 1         (homing cycle, bool)
$23 = 3         (homing dir invert mask:00000011)
$27 = 5.000     (homing pull-off, mm)
$100 = 37.975   (x, step/mm)
$101 = 94.956   (y, step/mm)
$110 = 100.000  (x max rate, mm/min)
$111 = 100.000  (y max rate, mm/min)
$130 = 212.500  (x max travel, mm)
$131 = 274.400  (y max travel, mm)

Last but not least, in order to use LaserGRBL on an engraver without the laser PWM modulation (i.e. VARIABLE_SPINDLE disabled), you have update the software settings disabling the "Support PWM" checkbox.

Done, you should now be able to engrave your SVG files.


  • read risk disclaimer
  • excuse my bad english