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.


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.

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

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.

Other firmware: engraver based on Ruida, Mach3, Benbox etc are not supported by LaserGRBL.


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.


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.


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.


  • 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.


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 = 200, LongSleep = 1, ShortSleep = 0
  • [Insane] StatusQuery = 100, LongSleep = 0, ShortSleep = 0