The long-awaited moment has finally arrived.
However, in order not to damage your machine or your shield during the first start-up, some precautions should be taken.
Adjusting the drivers (not to be done if you bought my fully assembled shield)
We will start by putting the power of the drivers to zero to avoid any problem
To do this, simply turn the adjustment screws of the drivers fully clockwise.
Then turn a quarter turn counter-clockwise
Connecting the ESP32 GRBL shield to your computer
Connect the USB cable from your PC to your ESP32
Then, under Lightburn, click on the “Console” tab in the right column. You should see something like :

Now right click on the “Devices” button in the right column.
This will restart the USB/Serial connection between Lightburn and the ESP32.
You should see indications similar to the one below on the console:

If so, your computer and laser cutter connected as intended.
Otherwise, check carefully:
- That the USB connection speed is correct (Edit/Device Settings): it should be on 115200 bauds
- That the DTR control is activated (Edit/Device Settings)
- That your USB cable is a data cable and not only and charging cable and that its length is below 80cm
It is also possible that the USB driver is not compatible with your ESP32.
You should then download and install the right version by going here :
https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers
and choosing the CP210x Windows Drivers with Serial Enumerator version
If that still doesn’t work, it is possible that you have multiple devices on your PC that use the COM ports.
Go to your computer’s device manager (Windows key + R and enter devmgmt.msc)
Look for COM and LPT devices

Note the number of the COM port associated with the Silicon Labs CP210x driver installed just before and check that Lightburn is using the same COM port:

First trips
When starting for the first time, it is important to check that all axis behave as we expect and that movement occurs in the right direction and over the correct distance.
Do not click at this stage on the “HOME” button
Place the head of your laser machine by hand in the center of the work area (you must cut off the power to the machine to be able to move the head by hand)
As long as the “HOME” has not been selected, GRBL forbids the movements. As we cannot do a “HOME” yet at this stage, we will enter the following command in Lightburn console (console tab in the right column) to unblock the movements of the axes :
$x
Click on the “move” tab in the right column of Lightburn
You should see the following window:

Change the distance values to 10mm and speed by 10mm/s. This will allow us to check the direction of movement.
Click on the “right” arrow of the Lightburn interface
- If the movement goes as expected to the right -> all is well
- If you use my pre-assembled Shield (option F) and that the X axis is connected via a ribbon cable on your K40, the direction of movement should be correct. If not, please contact me.
- If your machine does not have a ribbon cable or if you have programmed your shield yourself and the movement is to the left, you have to adjust. The easiest way is to rotate the connector 180 degrees of your stepper motor to the Shield (if there is no ribbon cable) or change the settings of your machine in GRBL via the menu Edit/Machine Settings (parameter “X direction pin invert”)
- If there is no movement, if the stepper motor is skipping, or if the machine vibrates, go to the Troubleshooting section below.
Return the laser head manually to the central position (you must cut off the power to the machine to be able to move the head by hand) and check again that the X-axis movement (right and left arrow of the lightburn interface) is now working correctly
Click on the “down” arrow of the Lightburn interface (the one representing a downward chevron )

- If the movement goes down as expected -> all is well
- If the movement is upwards, you have to adjust. The easiest way is to rotate the connector of your stepper motor on the Shield 180 degrees or change the settings of your machine in GRBL via the menu Edit/Machine Settings (parameter “Y direction pin invert”)
- If there is no movement, if the stepper motor is skipping, or if the machine vibrates, go to the Troubleshooting section below.
Return the laser head to the central position (you must cut off the power to the machine to be able to move the head by hand) and check once again that the movement on the Y axis (right and left arrow on the lightburn interface) now work correctly.
If you do not have a motorized bed, skip this section (Go to Z-Axis adjustment)
Change distance value to 3 mm
Click on the “down” arrow of the Lightburn interface (the one representing a down arrow with an intermittent line)

We wait for the motorized bed to move up … up ! (see explanation earlier in this article)
- If the bed moves well upwards-> all is well
- If the movement is downwards, you have to adjust. The easiest way is to rotate the connector of your stepper motor to the Shield 180 degrees or change the settings of your machine in GRBL via the menu Edit/Machine Settings (parameter “Z direction pin invert”)
- If there is no movement, if the stepper motor is skipping, or if the machine vibrates, go to the Troubleshooting section below.
Return the laser head manually to the central position (you must cut off the power to the machine to be able to move the head by hand) and check again that the Z-axis movement (up and down intermittent arrows of the lightburn interface) is now working correctly
Z-axis adjustment
If you don’t have a Z axis (no motorized bed), make sure that GRBL is not set to request a Z axis homing, otherwise the homing will not go well.
If no motorized bed, enter the following command in the console
$Homing/Cycle1=
Adjusting the Z-axis (when you have a motorized bed) can be a bit … tedious.
The following steps only have to be carried out once. GRBL then stores the information in non-volatile memory and will not lose it.
- Check that your GRBL is correctly configured in Workspace coordinates mode (parameter $10 or Lightburn / Edit / Machine Settings)
- Check that your Z axis is not in relative mode (Lightburn / Edit / Device Setting / Relative Z moves only must be at 0)
- Check that your bed IS working upside down 🙂 i.e. if you request a downward movement via Lightburn / Move, the bed will go up
- Perform a homing, by clicking on the Home button in the lightburn window or by typing $H in the lightburn console
- Once the homing is finished, enter the command G10 L20 P0 X0Y0Z0 in the Lightburn console which will take the current position and consider it as the origin of all your axes
- Identify roughly what your focus value is (it takes roughly 50.8mm between the lens and the material), so if you are measuring 60mm between the top of your material and the bottom of the laser head, start with 60- 51 = 9mm
- Enter this value in the Material (mm) box – we don’t care about the actual thickness of the material at this point

- Draw a line with lightburn on your material with a power and speed compatible with an engraving (not a cut). Check beforehand in the layer parameters that the offset is indeed at 0!

- Look around this value, varying the material thickness value in lightburn which is the best value, i.e. the value for which the line is thinnest
- Once the right value has been found, we will readjust the Z of GRBL with the command G10 L20 P0 X0Y0Zmyz where myz must be replaced by the thickness of your material. Ex, if my plywood is 3.3mm thick, I will enter G10 L20 P0 X0Y0Z3.3
- Now put in the material (mm) box of lightburn the real thickness of your material
- That’s it! Your Z is calibrated!
Troubleshooting
When starting for the first time, it is necessary to set the maximum power allowed by the stepper motor drivers.
Normally, if you opted for option F when you purchased your Shield, the drivers have already been set.
However, the friction, motors, axes,… being different from one machine to another, it is undoubtedly necessary to adjust the settings.
If your axis does not move, or if it misses steps, or if it is noisy or even vibrates, do not hesitate to watch videos on youtube to learn how to adjust your drivers.
For my part, I apply the following method:
- I turn the adjustment trim pot of the offending driver until it locks by turning clockwise (on a DRV8825) – this puts the power to minimum.
- Put your laser head manually in the middle of the working area (need to cut off the power)
- Set a long movement on the offending axis: 100mm for the X axis, 80mm for the Y axis, 10mm for the Z axis
- Adjust a slow movement speed: 10mm/s whatever the axis you set
- Launch a movement on the relevant axis via lightburn
- During movement, very gently turn the driver adjustment screw counter-clockwise. The movement should start
- Look for the best compromise of steps miss and avoid noise / vibrations (by turning counter-clockwise), while remaining at the minimum setting (by turning clockwise)
If despite this your stepper motor continues to refuse to move or if it vibrates a lot, you probably have a wiring problem (bad connection of one of the 4 wires of the stepper motor) or bad connection in order. stepper motor leads.
Checking the end stops
We will check the 2 or 3 limit switches of the machine (2 when no motorized bed)
To do this, put the laser head in the center of the bed by hand (you must cut off the power to the machine to be able to move the head by hand)
Enter the command “?” in the lightburn console
The output should be something like:
<Idle | WPos: 0.000,0.000,7.700 | Bf: 31,127 | FS: 0.0>
This means that none of the limit switches are detected
If, on the contrary, you get something like :
<Idle|WPos:0.000,0.000,7.700|Bf:31,127|FS:0,0|Pn:XYZ|WCO
This means that your limit switches are reversed.
You will have to change them in the GRBL configuration
In the example above, Pn: XYZ means that the 3 limit switches are detected -> I would have to invert the 3 limit switches .
Unfortunately, this can only be changed in the GBRL settings file (your MachineName.h file) and you must recompile GRBL and then reload it in your ESP32 (see article GRBL ESP32 installation )
As a reminder, it is impossible to load the SW via arduino IDE in the ESP32 if it is mounted on the shield, however, it is possible to update via the GRBL ESP32 web interface (ESP3D menu, and yellow cloud icon)
Example on my K40 to invert the limit switches of the X and Y axes.
#define INVERT_LIMIT_PIN_MASK (bit(X_AXIS)|bit(Y_AXIS))
Once you get a response like :
<Idle|WPos:0.000,0.000,7.700|Bf:31,127|FS:0,0>
(ie without the mention Pn:….), Your end sensors are correctly configured.
We will now check that they are working well …
Put the laser head manually in the center of the X axis, and at the top stop of the Y axis (you have to cut the power to the machine to be able to move the head by hand).
Check that you get a response like :
<Idle|WPos:0.000,0.000,7.700|Bf:31,127|FS:0,0|Pn:Y|WCO> at the command “?”
Only the Pn:Y information must be present.
If not, you have a wiring problem, check everything!
Put the laser head manually in the center of the Y axis, and in the left stop of the X axis (you have to cut off the power to the machine to be able to move the head by hand).
Check that you get a response like :
<Idle|WPos:0.000,0.000,7.700|Bf:31,127|FS:0,0|Pn:X|WCO> at the command “?”
Only the Pn:X information must be present.
If not, you have a wiring problem, check everything!
Return the head to the center of the working area by moving it by hand (you must cut off the power to the machine to be able to move the head by hand)
With a medium thin screwdriver type, press the limit switch of your motorized bed. While you press, check that you get a response like:
<Idle|WPos:0.000,0.000,7.700|Bf:31,127|FS:0,0|Pn:Z|WCO> at the command “?”
Only the Pn:Z information must be present.
If not, you have a wiring problem, check everything!
At this point, your end stops should be working correctly
First Homing
Be alert because the movement will probably be quite fast.
In the event of a problem, you will immediately press the emergency stop button on your machine to prevent the axes from crashing.
Press the “Home” button of the Lightburn interface
If you followed my setup in the GRBL installation article , the X and Y axes start their homing and once they are done, the Z axis performs its homing.
If movement does not take place in the correct direction, stop the machine immediately with the emergency stop button. Attention, the “Stop” button of the Lightburn interface has no effect on a homing maneuver!
Modify in the “edit / machine settings” menu the “X homing direction invert” and / or “Y homing direction invert” and / or “Z homing direction invert” parameters according to the reactions you observed during the first homing.
Retest the “home” button and adjust the Z axis homing direction if necessary.
If you get to this point, you should have a machine capable of performing a homing operation.
Checking the distances traveled
If you are using my settings and you have a K40, there shouldn’t be a problem.
Start an engraving of a 100mm x 100mm square via lightburn
Measure the square achieved, in case of deviation, you can use the menu function Edit / machine settings / Calibrate axis to modify the settings.
As a reminder for the X and Y axis:
A K40 uses MXL pulleys and belts. The number of microsteps per mm is 39.37 if you use my 4 microsteps per step (stepper motor driver setting via jumper).
A K40 uses MXL pulleys and belts. The number of microsteps for one mm is 39.37 if you use my preco of 4 microsteps for one step (adjustment of the stepper motor driver via jumper).
A more standard machine will use BT2 belts and pulleys. The number of microsteps for one mm will then be 40 if your setting is 4 microsteps for one step (stepping motor driver setting via jumper).
For Z axis :
If you use the design of JP. Civade for the motorized bed, you probably used a BT2 belt and 4 microsteps for one step. The threaded rods have a pitch of 0.8mm per turn of the screw.
The adjustment for the Z axis is therefore 500 microsteps for 1mm
Laser firing test
If you have a machine with the new digital panel, it is completely unplugged and its laser test button no longer works
If you have an old machine with the potentiometer, the latter is normally unplugged as well as the laser test button
To carry out the tests, it is therefore necessary to go through lightburn.
In Lightburn / Edit / Device settings, check that the option “enable fire laser button” is enabled
In the move tab of lightburn, you can now do laser fire tests.
Power up 14% and click the Fire button.
Attention, to stop the laser shot, you must press this button again
If all went well, you can try a cut.
With the shield v2, it takes 45% -50% of power to have 10mA in the tube
With the shield v3, it takes 30% to have 10mA in the tube
For my part, I never go above 11mA in the tube my tube to avoid damaging it
Well done !!
Well done, at this point you have a K40 with all new electronics able to work with Lightburn, a motorized bed and lots of new features!
You still have to learn how to use Lightburn in detail: link to the manual