CONFIGURATION

GRBL configuration

Before you get started, there are a few things you should know about your engraver and how to set it up to get the most out of your jobs.
The heart of a laser marker is hidden in its control board, on which there is a small chip on which runs a software capable of transforming the commands it receives from LaserGRBL (which in jargon are called g-code commands) into the right impulses to move the motors and to control the laser.

This software is called GRBL, and needs to be configured through special commands or through a convenient configuration window available on LaserGRBL.

Here is a guide to grbl configuration:

English version: Grbl Configuration ENG
Italian version: Configurazione Grbl ITA
German version: Grbl Konfiguration DE
Portuguese version: Grbl-Configuration-PT-BR
Dutch version: Grbl-Configuration-DUT

LaserGRBL configuration

Given its simplicity, LaserGRBL avoids as much as possible confusing you with so many configurations. However is still useful to properly set up some information that LaserGRBL can not know about your hardware.

FIRMWARE TYPE

Grbl
GitHub Logo

LaserGRBL is designed to talk with control board based on Arduino Uno/Nano and GRBL firmware. This includes a lot of commercial and DIY laser engraver/cutter and CNC.

Smoothie [experimental]

LaserGRBL also have an experimental support for Smoothieboard with smoothie firmware. For more information about usage with smoothie please see this page.

Marlin [experimental]

Marlin firmware support is in a very early stage. It is assumed that LaserGRBL is able to communicate with Marlin, but the gcode generated by LaserGRBL could be not 100% compatible.

VigoWork [experimental]

In mid-2020 Vigotec has released a new model L7X with WiFi connection. This engraver uses a non-grbl compatible protocol and only work with their VigoWork software.

LaserGRBL implement a sort of emulation of this protocol but their protocol is buggy and undocumented, so expect issue. (tested with USB cable only, no WiFi support).

Other firmware

Engraver based on Ruida, Mach3, Benbox etc are not supported by LaserGRBL.

PWM SUPPORT

If your Laser does not support power modulation via ttl-pwm with S code, but only ON-OFF operation by M3-M5, please uncheck this flag.

All LaserGRBL feature that require power modulation will be hidden, and laser control will be done only via M3-M5 instead of S command.

LASER MODE

Starting from GRBL v1.1 there is a new feature of GRBL called “Laser Mode”. If you have “Laser Mode” enabled in your arduino, all the G0 rapid movement will be executed with laser turned off.

If “Laser Mode” is enabled in your hardware please check this flag, so LaserGRBL will render G0 movement correctly, also with external generated gcode files.

PROTOCOL

LaserGRBL can connect via standard USB/Serial protocol but also via WebSocket or Telnet using a small WiFi module that act as bridge.

Read WiFi with ESP8266 for more information and instruction.

STREAMING MODE

  • Buffered [recommended]: implement the “character-counting” streaming mode, as documented in grbl reference. Buffered is more optimized since it send more than one command to grbl/arduino queue preventing dead times.
  • Synchronous: implement the “simple-send-response” mode.  Synchronous send one command, wait for the complete execution and response (either ok or error) then send the next command.
  • RepeatOnError: is the same of Synchronous but add the feature to repeat command if grbl report error (max 3 times). Sometime could be useful with electrical noise on USB/serial line.

THREADING MODE

LaserGRBL claim to be faster than any others gcode streamer. Unfortunately not all hardware support all this speed. If you experience issues with your controller you can set slower modes.

  • [Slow] StatusQuery = 2000, LongSleep = 15, ShortSleep = 4
  • [Quiet] StatusQuery = 1000, LongSleep = 10, ShortSleep = 2
  • [Fast] StatusQuery = 500, LongSleep = 5, ShortSleep = 1
  • [UltraFast] StatusQuery = 250, LongSleep = 1, ShortSleep = 0
  • [Insane] StatusQuery = 200, LongSleep = 0, ShortSleep = 0