Full Lightburn Control Guide

I’m running an Artisan with the 40w and 10w and after dabbling with this guide and Lightburn I finally have a working setup that’s reliable. I super appreciate all the time Skreelink put into developing and maintaining this guide and everyone else who worked through various challenges.

For me the most recent gremlin was the laser not firing on the second cut path. This was fixed with the simple ‘Emit S value’ switch in Lightburn GCode device setting, but that was a frustrating one. I find that if I stick with manual focal height and a specific work coordinate zero, which for simplicity sake I set via the touch screen, I’m now getting consistent results.

My last task is to nail down the process for exporting the Lightburn gcode and copying it to the Artisan so I can run the job disconnected from my laptop. The Luban transfer via WiFi is the plan.

If you followed the guide fully, you can just send to the touchscreen via Luban and slam through the origin sequence and completely ignore it. While mine’s a 2.0 and not an artisan, I assume it should be very similar. I just have the manual thickness maxed out to shorten the time it takes to return to the home position. All the height and positioning information is in the gcode itself.


Little moki someone posted on discord. I really should play Ori and the will o the wisps. :slight_smile:

I would suggest going through my latest laser guide, it supersedes this one. While the title is for IR/40W, as long as you have your focal length, it should work for the 10W as well.

Thanks,
I’ll check out the other guide.

Disconnected ops now working. As you suggest, I save GCode out of Lightburn, pull it into Luban Workspace and send to the Artisan via WiFi. I don’t have the full GCode header setup in Lightburn so I when I run the job I have to ensure Work Coordinates are set properly (zeroed for my particular jig). It seems to rely on the Z height calibration set in the Artisan so I have to input correct material thickness when starting the job. I know I can automate some of these behaviors in the header GCode but I’m happy with it now so not inclined to mess with it. I finally have the accelerated jog speed working so it’s much faster completing fill engraving.

Now I need a clean air solution for laser cooling. Recycling the smoke filled air inside the chamber quickly clogs the fan and internal cooling fins. Looks like it’s also time for a full cleaning of the linear modules.

BTW, I did try the GCode header from the guide to set Z height. The problem was that it would drop the head to the calibrated 0 platform focus height then raise to the Z height with material included. The resulted in the head crashing into any material thicker than 5mm, so that method had to go.

There’s a new method in the updated guide that’s leaner and removes the unnecessary movements to prevent crashing.

Hello @ all!

First many thanks for the work!
For new ones it would be nice to pin the latest version of the custom firmware or the github at first post, because i first flashed the “old” 4.4.19 version.

Is the new version still an advantage as of writing now the actual stock firmware is 1.20.3, or are the inline commands now part of stock firmware?

I used the 4.4.19 firmware with the lightburn 1.7.03 and also wanted to use the camera control from the other nice guide. But in the camera calibration LB always crashed. No I´m back on stock firmware 1.20.3 with LB Version 1.7.04(beta) and the camera setup worked fine.
But i still had no test of the greyscale dithering function so my question was if it is still in need to flash to custom firmware.

Many thanks!

The custom firmware is no longer needed. Just make sure you’re on the latest firmware.

1 Like

Skree, couple of observations on an Artisan. Curious if these seem right to you:

  1. If saving gcode to send to the machine via Luban, I found that I have to disable the x-21.6 crosshair offset (40w laser) or the gcode includes a that offset from x0 and the Snapmaker runs with it. When I’m running the job from Lightburn via direct USB connection then the crosshair offset doesn’t skew the workspace. I think this happens because both Lightburn AND the Artisan controller account for the crosshair offset. When I run the Lightburn gcode the job boundary (as indicated by the offset crosshair) is shifted left 21.6mm, but the laser correctly fires inside that boundary meaning the Artisan is accounting for crosshair offset.

  2. When starting jobs from the Artisan controller the jobs always use Work Coordinates to interpret 0,0 not Machine Coordinates. This is handy since it’s very easy to manually jog the laser to the right origin, then zero Work Coordinates.

  3. When running gcode from the Artisan controller there is no need for start/end gcode in Lightburn Device Settings. The controller will use the zero thickness Z height set during Z calibration process on controller. When you start a job the Artisan controller asks for the material thickness and raises by that amount.
    ?? Any other reason to use custom start/end gcode in this case (running gcode from Artisan controller)??

1; I do indicate to zero out the offset in the updated guide I linked before. I personally do not use a USB cable to run my laser.

2; That’s how all machines work, and is why I use header gcode to set the work origin via G92. Saves me having to manually jog anywhere. :slight_smile:

3; Part of the header was to make it fully automated, without having to set the thickness and origin by hand. However, if that’s what is easier for you, then go ahead. I don’t use the touchscreen to run projects, so I rely on the automation.

There’s no real right/wrong way to run it, and no real reason except customizability or other fancy tricks to require a start/end gcode. Some examples I can think of, however, mostly are for doing repeated projects.

You can use G92 to set your work origin to the same exact position every time, so no manual lining up in a start gcode. In the end gcode, you could have it where it just shifts up maybe 10cm to swap out your material for a new run, instead of all the way back out for faster restarts.

If you wanted to get really fancy with an old A series with loud drivers, you could use the end gcode to play a tune with the stepper motors to indicate it’s finished.

All in all, the start and end gcodes I provide, are to help establish a repeatable, fully automated setup to make production and lineup easier and smoother. If a different method works for you, that’s great. :slight_smile: As a side-note, I do NOT have an Artisan, so my experience solely runs on the 2.0 series. I do wish I had the Artisan and Ray to ensure all my testing and work is cross-compat, but that’s an issue for another day.

Got it. As always, appreciate you sharing your knowledge. I’m in the habit now of parsing through the gcode to make sure I understand what’s going on at the machine level. I assume you use an IDE. I found VSCode with gcode interpreter makes sifting through huge gcode files easy. I went that route to recover a complex engraving after a power failure by figuring out where it was in processing the file, then cutting a new file that started where it cut off.

If there’s anything you want tested on an Artisan, feel free to ask.

No IDE here, I read the gcode directly myself. It’s actually quite simple, as the bulk is pretty much points on a grid saying go here, go there. The beginning and end are usually where the variations are with specific machine setups and codes saying is it metric or standard, relative or absolute, this location means 0, or use this set of locations vs that set of locations.

I will say that’s likely one thing I don’t like about Lightburn, is the fact the bulk of engraving is done in relative movements and not absolute. Makes it harder to track down errors or such, but a backplotter such as ncviewer.com helps a ton with that.

1 Like

Ok thank you for the fast reply :slightly_smiling_face:

Just startet my first greyscale engravin and wondering why the SN2 is not just altering the power but also the movement speed. Could a print via USB cause this?

These are my settings:
SPEED: 5500 mm/min
POWER: 15-40%

It’s likely due to the sheer number of lines of code it takes for a grayscale image. Every time a line is sent, the controller waits for an ‘ok’ response before sending the next one. As such, sending tens to hundreds of thousands of lines bogs down the back and forth communication. As such, it appears to run slower, wherein it’s actually just having to wait for all the ok responses before sending the next line.

Other lasers, such as GRBL controllers, can get around this with a proper sender by ignoring the ok responses, and simply keeping the command buffer full. So it’s constantly feeding lines of code instead of waiting for a response each time.

In my experience, while grayscale is fun, it’s a pain to dial in correctly. Even the same material (say a plywood) might need different settings between batches of the same material. Using a dithered selection is usually always preferable. I generally use Stucki myself. :slight_smile:

1 Like

And again many thanks for the fast and extensive answer.
Now reflasched the 1.15.21 firmware and your latest on top. I tried to engrave again, once with USB and once direct from stick but my printer didn´t move faster than ~2000 mm/min on a 150x150mm picture. I tried to capture it with my mobilecam but it smoothes any fast moves so you can´t see the small variations in movement speed.

It’s a limitation in the controller on the machine itself. I get the same when running so many small gcode lines. Reduce your power a little to help prevent overburn. All of my machines exhibit the same slowdown.

1 Like

Im trying lightburn for the first time and im trying to figure out the start gcode provided with the guide. If i use lightburn can it not use the automatic thickness like it does in luban? The second question is about setting up the work origin thru start gcode. If i set my work origin using the touchpad will lightburn not use the saved work origin i provided with in the touchscreen.

Ok got it.

I just bought this ESP8266 ESP-01S with USB adapter Wlan WiFi module. Thought with that i could connect to the SN 2 via WiFi. Does anyone have experience with that, and knows how to get it working?

If you plan to use the touchscreen to set thickness and work origin, do not use the header. It’s there to fully automate the system, requiring you to input the thickness in your Lightburn project instead of using the built in system.

The 2.0 has built in wifi, what exactly was your aim? Trying to use Lightburn’s wifi connection? That only works with specific machines designed for it. If you’re looking for running programs via wifi with gcode directly from lightburn, you can use my drag/drop files.

1 Like

So if i dont add the start gcode header, i will always have to set my work origin and material thickness everytime i start job? Also finding the z offset, the obky i can think of finding the z offset is by starting a project via luban and reconding the z value. Do i have to subtract the material thickness for that number to be accurate? Or do i just input that number without subtracting the material thickness?

Without the header, you do have to set your material thickness and origin every time, yes. This guide is a bit dated, a new method and guide is here:

While the title says for IR 20/40W it actually works with all the lasers, you just need to know your focus height. To find the focus height for the 10W

1 Like

Thank you so much. I will try it out. I appreciate your help for this community!