Lightburn + Rotary Guide

This is going to be a quick guide on the settings/required modifications to use the rotary module with Lightburn.

I am sorry, but it will require following the beginning of my full lightburn control guide. Mainly flashing the custom firmware (as of writing, make sure you’re on the latest 1.14.3 before loading the custom firmware and do NOT turn the machine off until it’s done).

Follow along until the GCode header/footer section, for the rotary you only need M3 S0 in the header, and M5 in the footer.

In this guide, my equipment used is as follows;
Machine: Snapmaker 2.0 A350
Tool: 1.6W Laser
Accessory: Rotary Module
Material: Cherry wood.
Software: Lightburn 1.3.01 (current as of writing)

After following the above guide until the header/footer as outlined, you should now have a machine with custom firmware, and the snapmaker setup as a GRBL M3 with M3 S0 header and M5 footer.

First step is going to be enable the rotary in Lightburn, this is done by opening the menu Laser Tools and clicking Rotary Setup. This will open a window with the Rotary options. Set them as follows, except for the material diameter, this will of course be set to your own material size.

Screenshot 2022-12-22 143234

Ticking the Enable Rotary button of course, enables output for rotary. In my testing, the Mirror Output was required, else it was flipped in the X axis. Since the rotary is its own axis and not an extension of another (like a bed roller), we select A, since it works in degrees. This is the main Lightburn settings, but keep in mind there IS minimal gcode modifications necessary after export.

When you begin to setup a project, it will have to be rotated 90 degrees, so sideways in the view. As an example of using this image (internet find, not my photo):


Rotate 90 degrees into the corner like this:

The reason for this is, it seems Lightburn expects an X axis laid chuck instead of the snapmaker’s Y laid chuck. So with the rotary active, it moves in X/A. We’ll be reversing it so it moves in Y/B. If you look at the black and white image, it swaps X with Y and Y with B. So B will scan up/down, and Y left/right in the preview, but opposite on the rotary. (basically imagine looking at the snapmaker from the touchscreen side.)

While not required, it’s optional to change the scan angle. At default 0, it will move Y for the scanning, and the rotary for the interval. You can modify the scan angle to 90 degrees to have the rotary do the scanning, and Y do intervals. Settings for the example are as follows, though I should have reduced the laser power to maybe 75%)

These settings, of course, depend on your projects and tests. :slight_smile: Try a -45 degree scan so Y AND B have to work together. The final setting you will need in Lightburn is use Center Left as your origin. This will make your origin the tailstock end with the image center on the laser. Use Top Left to make the image scan right of where you put the dot, or Bottom Left to make it scan left. In my example, I just used center.
Screenshot 2022-12-22 152118

That’s it! Your project is ready to export, yes, export. There’s some modifications to be done before it can run. Currently you will have to run the project via the touchscreen, as I haven’t tested/figured out full control for origins yet. But I’ve got some ideas, so stay tuned. :slight_smile: Click the Save Gcode button while you’re at it to save the file to your desktop. If it’s the first time you’re saving gcode, when you’re inputting the name, make sure it ends in .nc, Lightburn might try using .gc first.

Open the resulting .nc file in your favorite text editor, I used Notepad++ in this example. You will need to simply replace A with B and X with Y. It might take awhile, it finds thousands of lines. :wink:
B
Y

Click save, place the .nc file onto the USB, and shove it into the snapmaker. Start it as you would any normal file, remember your origin is going to be toward the tailstock so it’ll start there, and work towards the chuck.

That’s it! :slight_smile: Hopefully this leads to many of you getting cleaner and faster projects, or taking this base guide and coming up with your own ideas on how to improve. Maybe make a post-process batch script to do the replacements for you.
As always, I’ll try to answer any questions to the best of my ability. I’ll go ahead and answer this one; no, don’t trust the preview. :wink: It seems to draw in the opposite direction. Remember, we flipped X and Y, that’s why it’s wrong.

5 Likes

Wow - that turned out well. Glad to see it does work. Did you use “Stucki” mode for that? When I last tested the rotary (LB: 1.2.04) I was getting blotchy results with “Grayscale”. I hope to retest this soon with 1.3.01 once things calm down after the holidays.

Yes, I used stucki. The settings I posted were the exact ones used in the burn.

EDIT: This was done a long while ago when I was first testing inline. This is done in grayscale mode.


It was what let me know I had to mirror the image.

1 Like

Here’s a bit of a sneak peek of what I should be releasing this evening.

And it’s done… I’m so cold.

1 Like

With LightBurn 1.4.05 it seems that the extra steps of manually editing the .nc or rotating the image is no longer necessary. Here are the steps that I performed.

Use Laser Tools > Rotary Setup and set as follows, except for the Object Diameter which is based on the material you are engraving.

image

Place the image as you normally would. In this case I am just writing the word “TEST” with a solid fill.

image

image

You then can use User Origin as normal

image

The only frustrating thing is that LightBurn does not calculate themin_b(mm) and max_b(mm) parameters that Snapmaker expects for running boundary checks (note, even though the header says the units are in mm for the B axis, they are actually degrees). This means that when you do a boundary check with Snapmaker it will make a fully 360 degree rotation. If the boundary check on the B axis is important for your application, you can edit the .nc file by looking at the header:

;max_x(mm): 30.21
;max_y(mm): 9.64
;max_z(mm): 0
;min_x(mm): -0.21
;min_y(mm): 2.36
;min_z(mm): 0
;Header End
; LightBurn 1.4.05
; SnapMaker device profile, user origin
; Bounds: X-0.21 Y2.36 to X30.21 Y9.64

Then using the formula Angle_BAC = 360 * (max_x - min_x) / (pi * diameter)

image

Which for my example would be 360 * 30 / ( pi * 80 ) = 43 degrees. Since I used a bottom center origin I would set the min_x/max_x to zero and add the following min_b/max_b:

;max_x(mm): 0
;max_y(mm): 9.64
;max_z(mm): 0
;max_b(mm): 21.5
;min_x(mm): 0
;min_y(mm): 2.36
;min_z(mm): 0
;min_b(mm): -21.5
;Header End
; LightBurn 1.4.05
; SnapMaker device profile, user origin
; Bounds: X-0.21 Y2.36 to X30.21 Y9.64

LightBurn 1.5.01 is now out, and we’d love to know how everything is working for Snapmaker users. If anyone has issues, please let us know via Support@lightburnsoftware.com or on our forum - I’ve made a recent post for a select few 2.0 users that have reported laser firing inconsistencies.

Thanks for using LightBurn, and happy making!

1 Like

Interesting - for me boundary scan worked out of the box, no modifications needed… Also, no need to calculate anything - what of course needs to be done is to enter the correct object diameter or circumference.

@Hauke what version of LightBurn/Snapmaker firmware are you using? Does the header produced by LightBurn include min_b/max_b parameters?

@Colin-LightBurn I’ll try 1.5.01 and let you know.

Here are the first lines of the .nc file, which I suppose answer all your questions :slight_smile:

;Header Start
;header_type: laser
;file_total_lines:21976
;max_x(mm): 42.21
;max_y(mm): 10.42
;max_z(mm): 0
;min_x(mm): -0.16
;min_y(mm): -0.16
;min_z(mm): 0
;Header End
; LightBurn 1.4.03
; SnapMaker device profile, current position
; Bounds: X-0.16 Y-0.16 to X42.21 Y10.42
G21
G91
; Scan @ 400 mm/min, 25% power
M107
M05
G0 B28.407 Y0.067 F0
; Layer C00
G1 B0.344 F400
M03 P25 S63.75
G1 B1.303
M05
[...]

EDIT: Just installed 1.5.01 and re-generated the GCode (perhaps with slightly different positions of the objects) - still looks good, and new: Thumbnail!

;Header Start
;header_type: laser
;file_total_lines:10590
;max_x(mm): 42.21
;max_y(mm): 10.19
;max_z(mm): 0
;min_x(mm): -0.16
;min_y(mm): 0.07
;min_z(mm): 0
;thumbnail: data:image/png;base64,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
;Header End
; LightBurn 1.5.01
; SnapMaker device profile, current position
; Bounds: X-0.16 Y0.07 to X42.21 Y10.19
G21
G91
; Scan @ 400 mm/min, 100% power
M107
M05
[...]

Only thing that bothers me: Lightburn folks told me they’d include inline power for Snapmaker with 1.5 - I can’t find it - can anyone?

It seems to not be an option, it’s just how it exports now. Swapped my device to snapmaker, output an image, and it does marlin style inline;

; Image @ 1500 mm/min, 100% power
M107
M05
G0 X137.33 Y150.083 F6000
G0 Z0
; Layer C00
G91
G1 X0.625 F1500 I S0
G1 X0.08 I S255
G1 X0.16 I S0
G1 X0.08 I S255
G1 X0.08 I S0
G1 X0.08 I S255
G1 X0.159 I S0
G1 X0.08 I S255
G1 X0.08 I S0
G1 X0.16 I S255
G1 X0.399 I S0

Not for me it seems - tried a vector image and a bitmap, same result… I’m confused. I even created a new machine, to make sure it is not a legacy profile thing…

The code you show I get only if I use the generic Marlin machine, but then again the rotary setup is A-axis, not B.

Guess I’ll write Lightburn support…

Thanks @Hauke! At least with my Snapmaker (firmware V1.18.2_20240116) it uses the min_b/max_b parameters for the boundary scan.

Perhaps to get a bit more clarity: @Skreelink @dirtdevil do you install the Snapmaker machine using the “Snapmaker (Marlin)” template in Lightburn, or do you use the “Marlin” (generic) template? My GCode I posted earlier is based on the “Snapmaker (Marlin)” template, and I do not need to do anything to get the min/max lines into the GCode, Lightburn does it without further ado.
When I create a machine from the generic Marlin template, in the machine settings dialog I have the option to explicitly selecting “Inline”, but no option to select the B-axis for the rotary. If I use the Snapmaker template, I have B-axis, but no inline option, and the GCode does not include inline power commands.
Also, using the generic Marlin, I do not get min/max lines, my GCode then looks more like that Skreelink posted.

So, how did you set up your machine?

I’ve not tested using the snapmaker profile for the rotary yet, so I can’t really chime in.

@Hauke. I used the “Snapmaker (Marlin)” template and was not having issue with min_x/max_x/min_y/max_y…the problem is that min_b/max_b is not produced by Lightburn.

In other words, my Lightburn behaves the same as yours:

  • I have the B-axis available
  • I get the min_x/max_x/min_y/max_y in the GCode
  • I do not have inline available

The issue appears that newer versions of Luban added min_b/max_b into the GCode recently and, at least with my Snapmaker 2.0, with the firmware specified above, uses those min_b/max_b are now required for a correct boundary scan. My guess is that this is a change in behavior recently with Snapmaker firmware, which is why I was asking if you are running the same version of firmware as I am.

1 Like

Sorry for being obtuse… Now I get your point. I’ll check, but most likely not in the next days - might be two to three weeks until I have time, sorry.

That said: I found Lightburn support very approachable, and they seem to be interested in having Snapmaker well covered (I assume that we as Snapmaker owners are not a small number), so you may ask them to include min/max_b, I guess they’ll have this quickly implemented.

EDIT: While you’re at it: Ask them when Inline comes for Snapmaker :slight_smile:

No worries @Hauke . It’s certianly not urgent, more of a curiosity at this point :).

I’ve made a feature request here that can be voted on:

I don’t know enough about the pro/cons of inline support, but I’ll research it. Thanks!

1 Like

Was faster now than expected - spontaneous rotary project came up :slight_smile: Can confirm: New firmware → B-Boundary no longer working (with the same GCode from past then)…
Bummer!

1 Like