Basic usage

LaserGRBL User Interface

  1. Connection control: here you can select serial port and proper baud rate for connection, according to grbl firmware configuration.
  2. File control: this show loaded filename and engraving process progress. The green “Play” button will start program execution.
  3. Manual commands: you can type any G-Code line here and press “enter”. Commands will be enqueued to command queue.
  4. Command log and command return codes: show enqueued commands and their execution status and errors.
  5. Jogging control: allow manual positioning of the laser. The left vertical slider control movement speed, right slider control step size.
  6. Engraving preview: this area show final work preview. During engraving a small blue cross will show current laser position at runtime.
  7. Grbl reset/homing/unlock: this buttons submit soft-reset, homing and unlock command to grbl board. On the right of unlock button you can add some user defined buttons.
  8. Feed hold and resume: this buttons can suspend and resume program execution sending Feed Hold or Resume command to grbl board.
  9. Line count and time projection: LaserGRBL could estimate program execution time based on actual speed and job progress.
  10. Overrides status an control: show and change actual speed and power override. Overrides is a new feature of grbl v1.1 and is not supported in older version.

Connect to arduino-grbl

Connection config

LaserGRBL constantly checks for COM ports available on the machine. The list of ports allows you to select the COM port which your control board is connected on.

Please select the proper baud rate for the connection according to your machine firmware configuration (default 115200).

Pleaser refer to grbl config.h BAUD_RATE macro if you want to change this value.

Connection response

When connected to proper port grbl reply with welcome message showing Grbl firmware version.

If your arduino is a clone with CH340G serial adapter, please be sure to have the proper drivers installed in your OS. Google for “arduino CH340G” if your system does not recognize serial port.

Arduino clone with CH340G USB-Serial adapter

Please refer to grbl documentation if you are experiencing connections problems: Github Grbl

Load G-Code and send to machine

If we have not a program under execution we have the ability to load a file from disk. Use file open button near “Filename” box, or from file menu.

Load file and send

LaserGRBL support G-Code with .nc and .gcode extension. If your file has a different extension but they are G-Code, you can rename your file to use this extensions.

LaserGRBL also support opening pictures and raster images in bmp, jpg, png and gif file format.

Multiple passes

Since v2.7.3 LaserGRBL include a numeric switch to perform multiple passes. If set to values different from one LaserGRBL will repeat loaded program multiple times (the set number of times) decreasing the counter at each pass.

Speed and power overrides

Override interface

Override interface allow to speed-up or slow-down the effective engraving speed (as well laser power) in real time during engraving process.

Speed overrides is a new feature of grbl v1.1, so it not available in older grbl version. This feature was implemented in grbl in a tricky commands interface:

0x90 : Set 100% of programmed rate.
0x91 : Increase 10%
0x92 : Decrease 10%
0x93 : Increase 1%
0x94 : Decrease 1%

LaserGRBL try to made it simple, like setting value in a slider control. A background worker thread send the right number of increase/decrease commands to reach settled target.

Note: this feature works only if you have not modified overrides section of your grbl config.h file.


Jogging interface

Jogging interface allow to manual positioning laser head. Two sliders control speed and size of step, corresponding to each arrow click.

The small home button send G0 X0 Y0 command.

Advanced usage

Custom buttons

LaserGRBL support custom buttons. Right-click in button area to add a new custom button.

Add custom button

In custom button you can write a set of G-Code instruction to execute customized actions.

There is 3 types of custom buttons:

  • Button
  • Two State Button
  • Push Button

Custom button of type “Button” contains a block of GCode to be executed on click. This could be used to launch a series of gcode instruction i.e. for trace a frame around an image or set a new zero position.

“Two State Button” contains two block of GCode. The first action is executed on a first click, then the second action is executed on a second click. This is very useful for action like toggling laser on-off to see its position.

Toggle laser ON/OFF

“Push Button” is similar to “Two State Button” but the first action is executed on mouse down, the second is executed on mouse up.

Custom Buttons support a series of variables that can be used in expressions. Here is the full set of supported variables:

left	Left margin of loaded image (X)
right	Right margin of loaded image (X)
top	Top margin of loaded image (Y)
bottom	Bottom margin of loaded image (Y)
width	Width of loaded image
height	Height of loaded image
jogstep	Actual value of jog step cursor
jogspeed	Actual value of jog speed cursor
WCO.X	Actual value of WCO X (Work Coordinate Offset) use .X .Y .Z
MPos.X	Actual Machine position. Support .X .Y .Z
WPos.X	Actual Work position. Support .X .Y .Z

Raster Image Import

Raster import allows you to load an image of any kind in LaserGRBL and turn it GCode instructions without the need of other software. LaserGRBL supports photos, clip art, pencil drawings, logos, icons and try to do the best with any kind of image.

It can be recalled from “File, Open File” menu by selecting an image of type jpg, png or bmp

Raster import dialog is made up of 5 parts:

Import Raster Image dialog

  1. Parameters: transform original image in grayscale or black and white.
  2. Conversion tool: choose between tools suitable to various types of images.
    1. Line To Line: for grayscale PWM pictures
    2. Dithering: for grayscale dithering tecnique
    3. Vectorize!: produce the best result with logo and hand drawn images
  3. Tool options: contains a specific set of parameters for each different import tool.
  4. Rotate, crop and flip tools
  5. Image preview and original image tab

Grayscale conversion parameters

Resizing Original image could be bigger or smaller than the image that we want to engrave. Resize option allows to choose the most appropriate scaling method.

  • High Quality Bicubic: suitable both for enlargement and reduction, produce smooth images interpolating pixels.
  • Nearest Neighbour: preserve hard edges scaling the image without smooth any pixel.

Different resizing algorithm produce different output upscaling/downscaling images

Grayscale and RGB sliders

If you open a coloured image, conversion from colour to grayscale is needed. You can choose between a predefined colour to grayscale formula (SimpleAverage, WeightAverage or OpticalCorrect) or select the “Custom” option and manually define the dominance of each RGB component.

Grayscale conversion options

“Custom” is useful when importing graphic images such as clipart, and we want to control the darkness/lightness of individual colour.

Brightness, contrast and BW threshold

With brightness and contrast you can darken or lighten the image, as well as increase the contrast.

With BW option you can activate a threshold on the image: pixels brighter of the threshold will be considered white, darken will become black.

BW threshold remove red pixels in this example

All of these options affect how the various tools process the image and produce the final result.

Since different materials behave differently when they are engraved with laser, it is essential to play with these options to find the best combination for the desired result.

Line 2 line grayscale conversion

With “line to line” tool you can engrave high quality images with realistic shades of grey. Your laser must support power modulation.

Note that not all engraving materials are suited for this process: some materials does not react linearly with laser power end they exist only as burned or not burned state making it difficult to reproduce a grayscale. In these cases we suggest to use “dithering” tool.

Select picture file

Once opened the image file, we select Line To Line tracing. You can act on brightness and contrast to enhance light and dark tones.

Raster import tool and parameters

Press “Next” button to open “Target Image” dialog

Here you can select the engraving speed, as final image size and engraving offset. You are now ready to engrave your image!

Ready to go!

1bit dithering conversion

Not all engraving materials react linearly with laser power. This means that under a certain power the material is not marked, above this power becomes black without the possibility of shades.

In these cases we suggest to use “dithering” tool. Dithering technique try to reproduce shades of gray by pixelating image of incredibly small black dots.

Dithering detail

To use dithering tool simply open a picture with LaserGRBL, then select “1bit BW dithering” tool from tool options.

Raster Import dialog

Use a high quality resolution to obtain the best engraving result.

Overall view of final engraving

Image vectorization

The vectorization tool is the most powerful instrument of LaserGRBL. This tool allows you to open any logo downloaded from the Internet (or drawn freehand) clean graphical elements of disturbance like whiskers, spots or watermarks, and engrave it with the best vector quality.

Vectorization is provided by Potrace alghoritm, by Peter Selinger.

Original imagePotrace output

There are no limits in the power of this tool, which together with the brightness and contrast controls allow optimum results with any type of image.

Vectorization follows black borders inside image and create vector paths. To do that it first decide what is black and what is white, using a threshold.

Play with brightness and contrast controls to include or cut-out the lighter areas of the image.


Vectorization tool options

Spot removal

With spot removal paths with smallest area of the threshold will be removed from the final output. This is useful to remove small spots. Do not use if you if you want to preserve small details of the image.

Without spot removalWith spot removal


Smoothes the sharp edges, producing a softer image

Without smoothingWith smoothing


Simplify and optimize detected paths to minimize final segments count. This is only an optimization in G-Code line count that has a minimal effect on the image.


Sometimes an image with a too high resolution produces details that we would like to avoid, for example: jagged edges, stains, strokes erased with the eraser… Downsampling allows to lose all these details and keep only the main theme of the image.

Without downsampligWith downsampling


By default Vectorization tool provide only border tracing. If you activate filling, a special filling pass is performed before drawing vector borders.

Without fillingWith filling

  • Show pagesource