Does LaserGRBL contains virus or malware?

LaserGRBL is open source, it mean that everyone can see its source code and check if the program can do something malicious: it does not do.

However it was reported that some antivirus warn about potential malware:  these reports are false positives usually caused by heuristic engine. Read more

LaserGRBL can also trigger some firewall. It’s all normal: LaserGRBL connect to internet to check for its own updates.

PC Requirement

LaserGRBL is compatible with Windows from XP to W11.
64 bit OS is strongly suggested in order to use all the features of LaserGRBL.

LaserGRBL need Microsoft .NET framework (v4 or latest) installed on the machine. This is by default in W10 but for older Windows version you should download and install from internet.

There are no special hardware requirements (an entry level CPU and 2GB of ram is enough) but more RAM and better CPU provide better speed performance in the image processing.

On Intel i7-7700 with 16GB an engraving of 400x600mm @ 10 lines/mm (24 megapixel) is processed with dithering engraving in about 2 min. producing about 14’000’000 lines of gcode.

MAC or Linux version?

LaserGRBL is a software for Microsoft Windows OS.

Linux Users

It is easy to install LaserGRBL in linux using PlayOnLinux via this script

As alternative you can run LaserGRBL in linux with wine 5.0 and wine mono 4.9.4 (wineprefix 32-bit) and windowsdll gdiplus. read more

Mac Users

You can try to run LaserGRBL on Mac with a Windows emulator or in a virtual machine. Maybe you can give a try with PlayOnMac

How does it work?

LaserGRBL talk to your engraver in a standard language called g-code, that it was originally intended for CNC numeric control machine.

G-code include a series of command for positioning, moving, tool management. LaserGRBL use only a reduced set of command, but the full g-code set contains many more commands (read more).

The most important are:

G-CodeFeature / Behaviour
M3/M4Turn laser ON
M5Turn laser OFF
S1000Set the power value to 1000
F200Set the speed at 200 mm/min
G0 X10 Y20Fast move (positioning) to the point X10, Y20 at maximum feed rate
G1 X30 Y20Linear move to the point X30, Y20 at programmed F speed
G2Draw arc
G90/G91Absolute positioning / Relative positioning
G92Set current position
A full documentation of g-code can be found here: https://reprap.org/wiki/G-code

A software called “grbl” that run inside the controller board interprets these commands and translates them into the corresponding motor movements and laser pulses.

Grbl on controller has a knowledge of the size of the machine, the number of motor steps to make a millimetre etc, this is known as “grbl configuration”. Having a correct grbl configuration is mandatory for the machine to have proper behaviour. (read more)

Does LaserGRBL work with my engraver? What engraver do you suggest to buy?

LaserGRBL work with any engraver that use Grbl as controller firmware. This also include a lot of mounting kit from ebay, bangood, aliexpress, amazon.

There is a multitude of brands that produce laser engraver, some are of good quality and power, others are just toys. I suggest to read “buy” section for a list of tested and well supported grbl engravers.


LaserGRBL does not connect to my engraver

As already mentioned LaserGRBL work only with boards that implement Grbl. If you are sure that your board is Grbl compatible and you experience connection problem please verify that you are using the proper COM port and connection speed.

Note that some engraver may need a driver installed in order to be visible from the computer (read more). Please refer to the information provided by the seller.

Help! Some buttons/options is missing in my LaserGRBL

LaserGRBL detect GRBL configuration and remove (hide) some options if not compatible with your firmware/configuration.

  • M4 Dynamic Laser Power Mode is available only if your controller is updated with Grbl v1.1 or next, with “laser mode” enabled in grbl config ($32=1)
  • Homing button ($H) is available only if Homing feature is enabled in grbl config ($21=1)
  • Speed and power override is available only with Grbl v1.1 or next
  • Line2Line engraving needs PWM support, if you uncheck “Support PWM” LaserGRBL remove the options
  • Centerline tracing is available only on 64bit OS
  • Z-Axis jog support can be enabled via menu “GRBL, Settings, Jog Control”

This list includes the most common cases, but it is certainly not exhaustive.

LaserGRBL also allow to add as many buttons as you want via “custom buttons”. With custom button you can create a button and insert the G-Code to recall when the button is pressed or released. For example is possible to create a button to turn on the laser at low power for focusing or trace a frame around job. “read more”

This image has an empty alt attribute; its file name is addcustom-300x85.jpg

Axis direction is wrong

LaserGRBL follows the Cartesian plane convention, where the position 0,0 is in the lower left. The X’s are increasing towards the right, the Y’s are increasing away from the observer.

If your engraver responds in reverse, on one or both axes, you need to configure the controller to reverse axis motion (parameter $3). This configuration is accesible via menu “Grbl – Grbl Configuration”

I have written a guide to most important parameter.
Please read this page and download the guide.

Job size is wrong

It is the responsibility of the control board to correctly translate the positions from millimetres into motor steps. To do this, it needs to know how many motor steps are equal to 1mm

This parameter, called “travel resolution” (parameter $100, $101) is accesible via menu “Grbl – Grbl Configuration”.

I have written a guide to most important parameter.
Please read this page and download the guide.

My engraver is moving too slow

You set a speed in LaserGRBL, but engraving occurs at slower speeds.

Laser does not reach the set speed at runtime

During processing LaserGRBL always command the speed you requested.
However, there are reasons why the engraver may move slower.

The first, and of course, is that the laser has to slow down when changing direction. The second is that the machine may be configured with a lower speed limit (keep in mind that LaserGRBL signals it to you by framing the field in red).

Both of these parameters are set in the grbl configuration, and are stored inside the control board. These are the acceleration and maximum speed parameters.

Well balanced values are usually supplied from the factory. You can try to modify them, but beware that this could lead to the machine having less accurate results.

I have written a guide to most important parameter.
Please read this page and download the guide.

My engraver is moving too fast

If your machine is moving too fast between job part, the positioning could be inaccurate.

LaserGRBL always commands “G0” fast positioning, to make movements between “white parts” of the job. These movements are performed at the maximum speed set.

Maximum speed also affects the burning speed, as it will never exceed the maximum speed set on the machine.

Maximum speed (parameter $110, $111) and acceleration (parameter $120, $121) are stored inside controller board. This configuration is accesible via menu “Grbl – Grbl Configuration”.

I have written a guide to most important parameter.
Please read this page and download the guide.

Inaccurate results and misalignments

There are two possible causes of these situations: mechanical problems or configuration problems.

Common mechanical problems

  • your engraver has improperly tensioned belts
  • loosened screws, mechanical backlash
  • engraver slips and moves on the work table when the laser shakes
  • it has dirt in the guides
  • it has bent guides
  • the laser module is not firmly screwed on its support

Solution: make sure that the axes move smoothly and without resistance, that the screws are all tightened, that there is no mechanical backslash and that the belt are tight (but not too much). Make sure that the machine cannot slide on the support surface due to the movement of the laser. If necessary fix it with L-shaped plates.

Common Configuration problems

  • too high acceleration
  • too high speed

Solution: Once you have solved mechanical problems, if the positioning still remains inaccurate, it means that your engraver is configured to be able to handle very high speeds and accelerations, but in reality it cannot (not with the necessary precision). The inertia of the movement of the laser head causes it to move beyond the commanded movements, accumulating errors and offsets. In this case you have to configure your engraver by lowering the accelerations and / or speeds.

If the motors block during the movement, doing some weird noise, it means that they are going too fast for their electromechanical characteristics. You have to lower the maximum speed configured for your engraver.

Keep in mind that LaserGRBL always commands “on white” movements at maximum speed and acceleration, so it is important that these two values are configured to an adequate value. An adequate value is a value that allows you to obtain a good speed without losing precision.

I have written a guide to most important parameter.
Please read this page and download the guide.

My laser does not reach the power I set

You set a power (S-Max) in LaserGRBL, but engraving occurs at lower power.

Laser does not reach the set power at runtime

This is perfectly normal when you activate the “M4 – Dynamic laser power” mode.

During processing LaserGRBL always command the laser power you requested (possibly scaled to respect the grayscale value of the current point/pixel) but when you enable “M4” the laser power is adapted automatically by the controller board to compensate for accelerations and decelerations due to changes in direction, as well as the maximum speed limits set.

Please read “My laser does not reach the speed I set” for more information.

My laser does not burn! My laser stop working!

If this is your first time using your laser, and you’ve never seen it turn on, check the wiring carefully. The laser connects to its control board usually with 3 wires: ground (usually black) power supply (usually red) and PWM / modulation control (usually white). Also check the correct orientation of the connector.

Quick tip: always cleanse your laser lens!
A dirty lens can cause you to lose more than 30% of the laser power. For cleaning you can use a cotton swab dipped in isopropyl alcohol, or specific wipes for optics and photography.

Quick tip: always check your focus!
The key to engraving is all in focus. If the laser is not in focus, it does not burn. Some lasers provide the ability to focus by rotating the lens, other lasers have a fixed focus distance and require you to move closer / further away from the piece to be engraved. Keep in mind that the shape of a laser diode is always a bar, not a dot.

Check with your seller what type of laser you have and the best focus distance.

Well focused VS bad focused laser

In order to obtain the best focus you should turn on the laser at the lowest possible power, you can use a custom button for this. I suggest you focus on a matte, non-reflective black cardboard to get the best view of the focus point.

Keep in mind that some very light materials reflect much of the laser light, and are therefore more difficult to engrave/cut.

Quick tip: how to detect a died laser diode
If your laser worked before but it doesn’t work now, your laser may be dead. A dead laser usually continues to emit its light but in a very dim and diffuse way. Furthermore, it is possible to understand that the laser is dead even by observing its pattern.

If the pattern projected by the laser shows spot doubling, bubbles, waves etc, the laser is probably dead.

Why did this happen? What can I do?

Well, laser diodes are not eternal, and their lifespan tends to shorten a lot if they overheat.

Usually the modules that are sold together with engraver are designed to work at their maximum power, which means they are always under stress condition. Using them continuously for a long time and at full power can lead to premature death.

I suggest using them at 90% maximum or inserting cooling cycles (you can find them in the LaserGRBL configurations).

However, if your laser has stopped working, and you are looking for a reliable replacement, try looking at the end of the “buy” section of this site. I have collected a couple of manufacturers that supply lasers with a better thermal-electronic design, whose diodes are guaranteed for a longer life.

Over-burned edges

Laser head need to decelerate each time a direction change is needed. This results in a higher persistence of the laser spot on the edge areas, where the direction is reversed.

Engraver with grbl firmware v1.1 (or higher) can take advantage of M4 dynamic power mode to compensate this issue. Configuration parameter $32 must be enabled to use M4.

If your engraver is equipped with grbl v0.9 or older, M4 option is not available for you.

Grbl M3 vs M4 laser mode

“Problem detected” message: hang or disconnect during engraving

Grbl was widely used and claim to be stable and and robust. Also LaserGRBL was strongly tested and does not show evident issues. Both can manage programs with million of gcode lines without problem.

However some user experience issues of valid gcode lines reported as error or random hang/reset during engraving. Why?

Unexpected board reset
Unexplainable errors
Weird message in command console
TX buffer stuck

It is difficult to answer these questions in a general way. Every engraver is different, different in power transformer, different motors, different cables, different drivers, different arduino clones (really few people use the original arduino, which has more reliable components and serial chip).

Manual ResetUser press reset (thunder) button during job.
Manual DisconnectUser press disconnect button during job.
Manual AbortUser press abort button during job.
Stop RespondingMachine stopped giving status and position feedback: hardware or power issue
Unexpected ResetMachine reset autonomously: hardware issue, power issue, or safety alarm
Unexpected DisconnectMachine connection is lost: check cable and USB connectors
Machine AlarmMachine throw an alarm and stop executing job (safety alarm, hard or soft limit..)


1. Offline controller and displays

Protocol between LaserGRBL and the machine does not foresee that there are multiple systems trying to control the laser. If LaserGRBL is controlling the laser any other display or controller on the machine can only disturb the communication.

Machines equipped with an offline control display require this to be turned off or disabled in order to use them with the LaserGRBL.

2. Power saving options

When you leave your computer turned on for engraving, the operating system may apply “power saving” modes such as suspend, or selectively disable some peripherals.

Be sure to turn OFF any power saving option, in particular those who regard USB power saving.

For more info read How-to-Disable-USB-Selective-Suspend

3. Underrated Power supply

Current demand of motors and laser diode can be very high. If the power supply is underrated it is possible that its output voltage drops, causing the control board to reset or hang.

Usually a 12V 2A power supply is at the limit if used with a 20W laser + motors. It is preferable to use a power supply capable of delivering 3-5A of current.

Make sure the power supply is strong enough for your engraver.

4. badly plugged cables, damaged USB connectors

USB sockets and connectors suffer from deterioration with use. Check the good connection between the connector and the plug, if necessary try a different USB port or a different cable.

5. Electrical noise generated by stepper motor

Stepper could generate very strong electrical spike on power line that can go back to USB line. The cable is the first inquired. In my experience I have tested 3-4 different cable and only one is 100% reliable. Good USB cables should be short, thick (well shielded) and possibly with ferrite.

If you use a laptop plug it to the power line and do not run with battery. Doing this you have grounding through main power line.

Place your USB cable far from motors and DC line, to minimize induced noise.

Add a pair of capacitor parallel to DC line, one elettrolitic of 47uF 50v and one ceramic of 0.1uF. this is called “decoupling” and could help in case of electrical noise.

6. Electrical or radio-electrical noise by other devices

Fluorescent light, relais, fridge motors, compressors, pump, elevators, drills and other devices like these can be sources of strong electromagnetic and radio-electric disturbances.

These disturbances can affect USB-Serial communication (causing communication errors) as well as cause unexpected restart of the engraver control board.

7. High stepping resolution with high feed rate

Grbl is awesome but Arduino is a limited hardware.
If you use a high step/mm and you want to perform very fast movement Grbl should generate a lot of stepper pulse. Generating pulse is not the only work for Grbl: it also manage communication, check for limit switch and hardware buttons, send position and status etc…

If you are asking your Arduino to do more than it can do you could experience issues. In this case you can try to:

8. Soft limit, hard limit, or safety stop

If machine is configured for soft limit ($20=1) the machine will check every command it receives to make sure that the movement does not exceed the size of the configured work area. If a command is sent that exceeds the size of the machine, the board rejects it and signals the “soft limit” error.

If all of this is unexpected, make sure you have configured the machine size correctly in the grbl configuration, and that you are not doing an oversized job.

If machine is configured for hard limit ($21=1) the machine actively sense the pressure of the mechanical limit switches positioned at the end-of-stroke of the axes. If one of the limit switches is pressed, the machine goes into alarm and aborts the job.

Be aware that electrical noise can often be the cause of false trigger on the limit switches. You can add some filtering capacitor to improve noise rejection. Of course, if your machine does not have physical limit switches you should disable hard limit in grbl configuration.

If machine has any sort of additional safety system (like Ortur’s which have an acelerometer sensor and fire safety alarm) the work could get stuck due to these safety features.

It’s for your safety and it is not LaserGRBL’s fault.

9. Poor quality arduino clones

For original Arduino, quality matters the most. They do use best smd/through hole components, best pcb fab house they can get. The boards are fully tested before being shipped.

The clones/compatibile are cheaper, but to reduce cost they also reduce quality and reliability.

Even if the clones normally work well sometime some clone could be faulty. Sometime this faulty is evident (they simply doesn’t work) sometime they are more subtle. They look working but sporadically has issues specially when stressed.

If you experience random issues and everything else fail try using a different Arduino board.

Also note that clones with the CH340 serial chip suffer from communication problems, while the arduino (original or clone) that mount the 16u2 chip did not show any sort of communication problems. (read more)

Workarounds (for poor arduino clone)

LaserGRBL can slow down its TX/RX thread to prevent serial communication problems with poor/faulty Arduino clone. Try with this set-up if everything else fail.

Slow down LaserGRBL communication with the engraver

Anyway, this is just a patch and it is not certain that it will work. If the problem is electronic, you need to fix it by electronic side!

Alarm state – ‘$H’/’SX’ to unlock

More info about alarm states can be found here: machine and alarm state

If the control board is configured with “homing enabled” ($22 = 1) when the engraver is powered on it starts in “alarm” state. You can exit from “alarm” state in two ways:

  • by giving an unlock command (“padlock” button)
  • by homing correctly (“house” button).

When you push the homing button the laser move until limit switch is sensed

Example of machine doing homing

Of course, you should have physical limit switches on your engraver, otherwise the homing procedure fails and the machine remains in alarm status.

When you do the homing procedure, the limit switches must NOT be initially pressed, i.e. the laser must be far from them. Otherwise the procedure fails.

If you don’t have limit switches, disable $ 22 in configuration.

Soft Limit Error

If you have activated “soft limits” in the configuration ($20=1), the machine will check every command it receives to make sure that the movement does not exceed the size of the configured work area.

If a command is sent that exceeds the size of the machine, the board rejects it and signals the “soft limit” error.

If all of this is unexpected, make sure you have configured the machine size correctly in the grbl configuration, and that you are not doing an oversized job.

Issue with SVG files

SVG support is in an early state of development.

SVG file are managed by LaserGRBL “as is” to keep all the information contained into the file, this is why you cannot set size and offset of engraving job inside LaserGRBL. If you want to change the result, you should change the SVG file with your favorite editor.

Due to its “open standard” nature, the SVG format is the victim of several implementations by the various programs that manage it: inkscape, adobe illustrator, coreldraw and many others.

This means that it is really difficult to manage every possible variability of an SVG file correctly, which is why LaserGRBL has chosen to adapt as much as possible to the file format generated by inkscape – as this is a good free vector editor. If the file was produced with other graphics editor you can expect some problems.

However there are some things that are not supported in LaserGRBL at all:

  • the writings (text, font)
  • the shape filling (only border are traced)
  • different management (engrave, cut) for different layer or colors

For texts simply select the option, present in all graphics programs (and therefore also in inkscape) to transform the text into paths.

For the fill, use some hatch tool provided in the graphic editor, or as a plugin.
For inkscape I suggest eggbot

How is “Estimated time” computed? Why it is so wrong?

Each segment has its own programmed execution speed and its own length (length of the segment, or lenght of the arc).

The tracing movements G1, G2, G3, are performed at the speed F set in the GCode, the jump movements – not tracing – are performed at the maximum speed set by the machine (grbl parameters $ 110, $ 111).

All these data are known, so it is possible to calculate the estimated time for the job as the sum of theoretical execution time of each segment (segment length * theoretical executing speed).

In reality no segment will really run at the programmed speed as the tracing of a segment is made up of a phase in which the laser head accelerates, a phase in which the speed is linear, a phase in which it decelerates.

The accelerations and decelerations are necessary to be able to obtain the changes of direction (between non-consecutive segments) and the changes of speed (between tracing and non-tracing movements) without loosing precision.

If you drive your car, you know, you can not afford an U-turn at 130 km/hr, isn’t it?

These accelerations and decelerations are controlled by the grbl parameters $120, $121. These data are also known, however the formulas to take them into account when “estimating” the times can be very complex. In fact grbl (the firmware) chooses from time to time, in real time, how and how much to accelerate or decelerate, based on the angle of incidence of the next segment. If they coincide or almost, it may not even decelerate, if they are at 90 ° or 180 ° it must decelerate almost to a stop before starting off with an acceleration ramp.

This complexity makes it very difficult to take these data into account when “estimating required time” which is therefore based only on theoretical linear constant speeds.

The projected time, on the other hand, is calculated runtime, during the execution of the work, as a projection between the percentage of the work already done, and the missing work, compared to the time already passed. This projection is quite accurate and refines itself while the working progress, but it can be very accurate after just a few minutes.

Normally there is not (there shouldn’t be) such a huge difference between estimated time and projected time, because the acceleration and deceleration phases should have little effect on the total job.

However, if your configuration of the parameters mentioned above ($110-$112 and $120-$121) is limiting, this can result in a slow execution, and therefore in a big difference between the two times.

All these parameters are set in the grbl configuration, and are stored inside the control board. These are the acceleration and maximum speed parameters.

Well balanced values are usually supplied from the factory. You can try to modify them, but beware that this could lead to the machine having less accurate results.

I have written a guide to most important parameter.
Please read this page and download the guide.