Cura flavors -- Lulzbot Edition vs Creality Slicer vs vanilla

Maybe this has been asked a zillion times, but I couldn’t find an answer via google or the forum search.

I’ve been 3D printing for a while but I still feel like quite the n00b, so I’m going to ask a n00b question. What’s the difference between the Cura you download from Ultimaker and the “custom” Cura editions? My first printer was a Lulzbot Mini and it came with Cura Lulzbot Edition, my second printer was an Ender 3 and it didn’t come with a custom slicer so I downloaded vanilla Cura, and my most recent acquisition is the new Creality CR-6 which came with something called “Creality Slicer” which is clearly just another custom edition of Cura.

What does “Lulzbot Edition” for instance do for me? Does Lulzbot Edition just come pre-installed with a machine profile for the Lulzbot range, and if I copy-paste the values over to vanilla Cura they become the same thing aside from the cool green color scheme and the Rocktopus splash screen? Or will cloning the machine settings in vanilla Cura miss some important custom Gcode and my printer will break itself trying to do some unsupported maneuver?


If you have a LulzBot printer, CuraLE has support (profiles and firmware) for all of their printers, past and present. If you have a Creality printer, the same might be true for their printers but given some of the issues with Creality firmware, I’m not sure I’d put much faith in their slicer. If you have an Ultimaker printer, then Ultimaker Cura is the obvious choice.

Ultimaker Cura is also a viable choice regardless of what printer you have. It has support for a variety of other printers including Creality (but not LulzBot). Ultimaker Cura is also the most advanced in terms of features.

I have a LulzBot TAZ 6 and I use CuraLE most often but have used Ultimaker Cura, PrusaSlicer, Simplify3D, KISSlicer, and IceSL on some parts. I use CraftWare’s GCode viewer.

Ah, that sheds some light. So when you say Ultimaker Cura has “support for a variety of other printers … but not LulzBot” do you just mean it doesn’t have support out-of-the-box or do you mean you can’t make it work even if you try?

I’ve copied the machine settings from one to the other as seen below, but I’m afraid to hit “go” for fear that LulzBot Edition has some baked-in magic and Ultimaker Cura will break something.

Do you think copying the settings will work?

I had heard of Slic3r but haven’t tried it. How hard is it to switch over from using Cura? For instance are the settings called vaguely the same thing?

I meant it doesn’t have “out of the box” support for LulzBot printers. I have added my TAZ 6 as a Custom printer with both the Single Extruder and the Dual Extruder V3 tool heads. I have successfully sliced and printed with both. I copied as much of the settings as I could.

My TAZ 6 is connected to an RPi running OctoPi / OctoPrint so I use Ultimaker’s OctoPrint Connection plugin.

Slic3r is a decent slicer. I have it installed but I haven’t used it much (I’ve added my TAZ 6 as a printer). PrusaSlicer is based on slic3r but has advanced beyond it. I have my TAZ 6 defined as a printer in PrusaSlicer as well but haven’t actually printed anything with it yet.

When you define your LulzBot printer in any of these other slicers using CuraLE as the base, the “variables” in the Start GCode and End GCode have to be dealt with. The format for specifying them and the names will most likely be different.

As I said before, I use CuraLE most of the time but the other slicers have features that CuraLE doesn’t have and when one of those features can be used to make the object I’m printing better, I’ll use an alternate slicer. That’s why I have configured my TAZ 6 in all of them and printed at least a 3DBenchy in many of them.

The Cura LulzBot Edition has built-in hardware profiles for all LulzBot printers as well as firmware. This means it can re-flash any printer. It also knows the bed dimensions of every printer (although you could configure that manually using any other slicer).

Cura LE also has some machine profile plug-ins in that help it a bit when using filament profiles and bed-leveling. It’s best to use an example to describe this…

With Cura LE, the ‘Start’ G-Code has a number of variables built into that reference things from the filament profiles. These don’t exist in Ultimaker Cura (they do have a concept of g-code variables … just not the ones needed to support the LulzBot printers.)

For example, here are a few snippets from the Start G-Code:

M140 S{material_bed_temperature_layer_0} ; start bed heating up
M109 R{material_soften_temperature} ; soften filament before homing Z
G28 ; Home all axis
G1 E-20 F100 ; retract filament
M109 R{material_wipe_temperature} ; wait for extruder to reach wiping temp

It will then perform the G-codes that wipe the extruder, followed by:

M109 R{material_probe_temperature} ; wait for extruder to reach probe temp

And then it will probe for the automatic bed leveling system.

Anyway, all of those names enclosed in curly braces { } are variables. The filament temperatures come from the filament profiles but can be overridden in the job settings. When I search in Ultimaker Cura – I can’t find them. They don’t seem to have the concept of these various temperatures (probably because most other printers don’t have a leveling system based on continuity testing between the nozzle and the bed corners.)

These seem to be plug-ins added to Cura by LulzBot. Unfortunately again… Ultimaker made enough changes to the underlying mechanism for plug-ins that you can’t just move the plug-ins over.

What you can do is go into the Start G-Code and manually replace all the variables with hard-coded values. But those values might be a little different depending the filament being used (so it was really nice that Cura LulzBot Edition made it possible to reference the values from the filament profiles … so you never need to manually edit the G-code when switching filament types.)

Even better: you don’t have to hardcode the exact values, since you can use math in the g-Code between square brackets [ ].

For example if you use print temperature minus 50 degrees as your soften temp, you can just use this in your start G-code in CURA:

M109 R[{material_print_temperature}-50] ; soften filament before homing Z

in place of this line in CURA LE:

M109 R{material_soften_temperature} ; soften filament before homing Z

If you replace all of the CURA LE-specific variables (such as material_soften_temperature, material_probe_temperature, etc.) with standard CURA variables and some math, then you might not need to change the g-code manually for different materials.

Note that you can use * instead of + or - if you want to set the soften temp or whatever based on a multiplication factor instead of a constant difference.