Recommended Layer Heights: Multiples of 0.04mm (between 0.08mm and 0.28mm)

these new settings based on multiples of 0.04mm is fine also for the Original?
I’ve just installed Luban but if I select Original machine the layers are not updated with values multiples of 0.04mm. I’ve tried to select a new 2.0 machine and for these new machine the value are multiples of 0.0.4mm.

You don’t need to be microstepping the z axis once you get beyond 2 to 5mm of layer height.

Using M420 S1 Z2 tells the printer to phase out the mesh over 2 mm if z height, for example.

Yes. I originally wrote this recommendation for the original Snapmaker. It uses similar geometry.

I don’t remember if the stepper motors were 1.8 degrees per step or 0.9. I think they’re 1.8 per step otherwise the printer would be slower.

If they are 1.8 degrees per step, increments of 0.4 are preferable. If they are 0.9 degrees per step, then you could use increments of 0.02 (but you could also use 0.04 because that is just double the whole step height.)

Thanks quarky42 for the explanation.
If I’ve understood well I expect that Luban SW apply multiples of 0.04mm (or 0.02mm) also for the Original not just for the 2.0 models.

Hope Snapmaker team could test and add this improvement in the next Luban release and/or let us know why has not been yet implemented.

The way I read it, I’m not sure that it does, but it certainly should have it’s default profiles aligned to layer heights that are evenly divisible by 0.04. I use full Cura, not Luban which is based on Cura, but still wanted to share what I’ve found out with others regardless of what software they use.

You certainly can go in and manually specify any layer height you want and make it that way, butit would be best if it was the defaults.

On V1 I found it tricky, but possible to print at 0.08mm layer height. I wouldn’t want to go any lower than that. So my custom profiles are something like this:

Layer heights:
0.08 - Ultra Fine (Ludicrous Slow Mode)
0.12 - Fine (Very Slow)
0.20 - Medium
0.32 - Max Thickness (Fastest)

Besides prints where I wanted max detail, I also used Ultra Fine for trying to weld clear PETG together at 99 to 100% infill to maximize the transparency effect. It will never be perfectly clear, but it certainly helps and is pretty neat if you don’t mind it taking forever. It’s always fun to experiment with something new. I made a pair of knife scales with this method. The texture on the outer finish had a decent grip to it pretty much by accident. Some people polish solid PETG by the way, to enhance the effect further.

Thanks, I really appreciate all you’ve done and all you’ve shared with us!

I have the Original ones and I think I’ll use the Layer heights you’ve posted, thanks!

In the subject you suggest between 0.08mm and 0.28mm but your fastest height is 0.32mm.
Have you made some tests and you thing 0.32mm is the best for fast printing or 0.28mm would be better?

What about “Top Thikness” and all the other settings (Outer Wall Speed, Inner Wall Speed…) that has been changed on 2.0 models?

I’m sure that the background of this “magic numbers” is true since I’m an electrical engineer and working with synchronus (and asyncronus) AC servo motors. These motors also have a thing called cogging torque (not so fine as with stepper motors since there are less poles).

My settings for the Snapmaker Original are multiples of 0,04 mm so I did the same for the profile of my A250 in Simplify3D. It’s working great BUT:

If Snapmaker team knows about this, why aren’t they changing the values of the leveling procedure?
0,05 mm as the finest step will not lead to the desired goal.
Maybe they calcualte internally with 0,04 mm and just don’t show it but I think the don’t since the motors are “singing” at some points (since there is a leveling mesh).

Can anyone from the team confirm my theory?

Like with a lot of 3d printing there are rules of thumb, there is always room for some level of variation.

The rule of thumb for max layer height is 75% of the nozzle width which is 0.3mm. However 0.3mm is not aligned to the whole 0.04mm division, so either 0.28 or 0.32mm are good. That isn’t to say that 0.36mm is automatically bad, it just means that somewhere around there you will start to have negative effects. If you tested this very carefully (in the way that CNC Kitchen does things on YouTube for example) you’d find that the effects start to be noticable at a certain point and continue to get worse the more you increase the variable. The point of diminishing returns is 75% percent of the nozzle width, but feel free to experiment a little. 0.28 and 0.32 layer heights are conservative enough that they can just be used. Anything beyond that is up to you and your own testing.

Line Width has its own rule of thumb. I’ll go about 120 to 150% of the nozzle width as a conservative value, and even if I’m pushing it to the edge of what I’m comfortable with, I’ll do about 88% to 200% of the nozzle width as a maximum usable range. At those outer limits you may start to notice that it effects the quality of the print.

I may not care about some effect at 200% of the nozzle width because I really really really want a single wall tool that has a single wall width of 0.8mm thick and the little bit of curl at the edge of the extrusion line won’t matter for the purpose I’m going to use that tool. (I’ve actually done this). If I tried to use 2 walls to make 0.8mm thick, there will be a seam and maybe it is important that this tool I’m making needs to not have a seam. So, all of these print settings have trade offs and sometimes those trade offs don’t matter and you just want to print fast and nice looking… So the ranges of desirable settings is wider, but maybe you want to make a tool that fits a very specific job, so now some settings are more critical than others because of how they effect the printed object.

I’m just trying to share some of my experience to give you a reasonable range, but you really should try things out for yourself, make adjustments, and try and see what the effects are first hand.

Snapmaker isn’t perfect. Limited personnel, limited time, limited resources. Luban itself is limited in order to try and simplify things for users.

I agree that they should make this change, but then again they were supposed to release the design of V1 as open source already. I haven’t seen the source code for their firmware, for their touch screen, and my V1 is not updateable or upgradable in the way they described when they asked for funding to make it in the first place. Snapmaker isn’t perfect. They’re better than M3D in some ways, worse in other ways.

Use Luban as a starting point. Maybe eventually try Cura and see if you can get the same results. Then try and learn more about Cura and get even better results. I absolutely love the adaptive layer heights in Cura. I can let the slicer decide what layer height is best at every layer based on the geometry of the part. I tell it I want a 0.28mm first layer, maybe, for example. Then I tell it I want a 0.24mm standard layer height Then I tell it I will allow a 0.08mm max deviation from that standard in steps of 0.04mm. The slicer takes my inputs and it decides where to apply different layer heights between 0.16 and 0.32mm to my part so that layers with less detailed (less curved parts in z axis) areas get thicker layer heights for faster printing and layers that need more detail in the z axis get thinner layer heights, taking more time only for the layers that need it. I’ve fallen in love with this one setting and there are so many more other useful ones, but they all take time to learn.

Luban is meant to be easier to pickup and to get started. With that comes the fact that it will never be truly and fully optimized in all regards. I do hope that Snapmaker at least makes simple and common sense changes to their default printing profiles so that they can make small improvements to print quality. Maybe they decided that the small improvement to the print quality isn’t worth the time to make the change, to test it, and to release it.


I’m not new to 3D printing and to the Snapmaker experience since I have 3 of their machines (beta SM1, stock SM1 and SM2.0 A250) as well as an Ultimaker 3. The Snapmaker team grew to a good size for a small company and I like their way of thinking ybout their product. Since I got my A250 a few days ago I can finally sell my crappy Ultimaker 3 (very poor print quality on flat, vertival surfaces) which did cost more than 4 times as much as the A250. The only thing about this expensice machine is that it can do very fast traveling (I’m working with PET-G so I dont need to go faster at printing than 60 mm/s).

Cura is a very good slicer but I don’t like it.
They provide really good upgrades to their functions but I just love the abilities of Simplify3D more.

But this is all off topic and doesn’t reffer to my post.
I just ment that doing 0,04 mm steps in the slicer software will not work as good as it can be since the bed leveling will always add a few hundredths…

@Edwin did we have some [quote=“rojaljelly, post:23, topic:4083”]
But this is all off topic and doesn’t reffer to my post.
I just ment that doing 0,04 mm steps in the slicer software will not work as good as it can be since the bed leveling will always add a few hundredths…

Snapmaker are aware of this problem and hopefully will fix it sooner than later

The error you’re talking about is absorbed by the first layer. The error that 0.04mm layer heights helps with is the error present at each layer of the print. You either didn’t watch the video I posted or missed a very key understanding from it that has to do with the very nature of stepper motors themselves and how to get the most repeatable results out of them possible. I won’t try and explain it all here, and if you’ve seen my posts, I’ve got no problem going into detail. So, if it is too wordy for me to explain, it’s a rather advanced concept.

I will add though, to clarify, that it is important to fade out the usage of the bed mesh over the first few mm of z height. There is no need to microstep the z motors for the whole height of a print. That is why I mentioned the M420 S1 Z2 command. The 0.04mm layer height really makes more of an impact after the microstepping of the z axis is faded out and he consistent layer height really helps with the remainder of the print. Some might want to change that command to Z1 and fade out the bed mesh even sooner.

And Cura, like several other slicers, is very good, but it takes experience to use it. I’m still constantly learning, but as a free open source product I wasn’t comparing it to a paid product that costs $150 or around there. The main reason I mentioned Cura is the fact that Luban is based on Cura. Someone that has learned Luban could get similar results from Cura and then have a whole new world of settings opened up to them. If you don’t like Cura and haven’t used it lately then you likely haven’t seen much of what they’ve added so far. Just like I wouldn’t begin to comment on Simplify3D because I don’t use it enough to really weigh in on whether or not the heat variation wizards and other stuff they’ve added are worth it.

This whole thread really has very little to do with Simplify3D or what slicers people prefer other than your mention that you prefer it. So really that’s a non-starter. If you would like to create your own thread on the benefits and uses of Simplify3D, please do. It’s a great product otherwise there would be no market for it. This thread was meant to help others be aware of the natural full step height change of the z stepper motors so they could consider trying this in their own prints. Someone asked why the developers haven’t made this change in Luban for the V1 yet, and really it comes down to them mostly ignoring V1 users largely over the last year. This is how I feel as an early backer of their first product. Your point about how many people they’ve added doesn’t change how they’ve been treating V1 backers this whole time.

The best thing they’ve done for V1 backers was to give their Kickstarter backers (and only their Kickstarter backers) a significant head start. Since I pre-ordered directly from them they have done nothing for us. I still helped them get their first product launched and waited a long time to receive it, but when it came time to deliver on their promises, they left us V1 pre-orders out. They haven’t even delivered their open source promises yet as far as I know. Maybe I missed something. I’ve been wanting to replace their anemic controller for a long time.

Source has been available for a long time. They just don’t go out of their way to announce it. People asked a long time ago and got it.

True, source isn’t available for the Touch Screen. Probably won’t be.

Thanks guys for all the information!
To be honest I just understant that the magic number of 0.04mm does it worth but if I go in Luban and try to Customize the settings it is not really clear to me what do change and what to keep for my Original.
There are too many parameters and I think Snapmaker Team should test and apply this magic number also as default settings for the Original.
I can choose and change the “Layer Height” but what about “Initial Layer Height”, “Wall, Top and Bottom Thikness”, “Speed…” etc… ?

Hey @Bullone,
You could go with the magic number at layer height, initial layer height, top and bottom thickness
Wall thickness should be a multiple of your extrusion width, this means a multiple of your nozzle diameter (like, you print with stock 0.4mm nozzle, it would good to take a wall thickness of 3 x 0.4mm = 1.2mm for example).
Initial Layer height is the first layer,- it should be bigger than your other layers. Like initial layer of 0.2mm, rest printing with 0.8mm.- It is good for layer adhesion.

Hej, thanks for all the good info. I’m new to 3D-printing but quite technical so I understand your reasonings. Great help. I haven’t read all posts so maybe this is answered? Follow on question to layer height and width is speed. What role does it play in the different scenarios? Eg increase layer width or slow down speed, etc, etc.
And yes I will do some testing but if you have some experience and pointers I’d be grateful. All fascinating learning.
Grateful for all the posts in the Forum.

1 Like

Too slow and the area near the nozzle may heat up and warp, plus the print would take forever. Too fast and the extruded filament may not bond well with the layer underneath or the layer underneath may not have cooled enough and the added filament causes the layer under it to deform a little.

Speed can affect stringing.

There is usually a range of speeds for any given printer, filament type, and even sometimes the color of filament can make a difference.

What you will begin to learn about speed is when you start to have a problem, you’ll search for what causes that problem and you’ll see info recommending a slower or faster speed depending on what it is.

For any type of filament there is usually a good starting speed. You might be able to go faster, but it’s just a general speed that often works well for people.

For PETG which I use a lot you can usually start with 30 to 40 mm/s print speed and it’ll usually come out good. The first layer should be around 15 to 20 mm/s to give the liquid filament time to hit the bed on the first layer and solidify before the head moves too much.

PETG can stick to the bed well if the bed is clean (using isopropyl alcohol to remove any oils that may have gotten on the bed from touching it.). But it doesn’t like to stick to the bed if it is being pulled by the nozzle too hard from being moved too fast.

Travel speed is just the speed between two non-extrusion moves. Say the nozzle just finished laying down a long line of plastic and now it needs to move to the next starting position. You want travels to be as fast as the printer can handle without jerking the print around and the print coming loose.

Sometime when there is filament oozing out of your nozzle, like as the very start of a print job just before it does the homing sequence, grab that filament with tweezers and slowly pull it out. That is like a slow travel move… The filament is dragged out of the nozzle and creates a long thin string. Then another time grab the oozing filament with tweezers and pull really fast. You’ll see the filament is much more likely to break off cleanly. You want fast travel moves to save total print time and it is one factor that helps reduce stringing.

YouTube channels like CNC Kitchen, CHEP, Thomas Sandladerer, and others demonstrate the effect of many print settings and help you see what to look for. I suggest you check them out and others that get recommended to you by YouTube as you start to watch those videos and “like” them with the thumbs up. YouTube will start to recommend more videos like that.

A sign of moves that are too fast is when you get layer shifts in the print (Google search that term if you are unsure what that means: 3d printing layer shift example) or if the print comes loose, or even if you see distorting in the walls. A belt driven printer can handle moves in the 125 to 200 mm/s range. A screw driven printer might be doing good to move at 75 or 80mm/s. (That’s just an approximate starting point. My V1 Snapmaker would start to grind at the stepper motor and loose steps as in the motor would skip turns and the print head wouldn’t move as far as it should at much over 75mm/s. )

Stringing that I mentioned earlier are also affected by retraction, print speed, travel speed, fan speed,and print temperature. So these settings are all additive. If you have really bad stringing you could change any one setting and see if it gets better or worse, or as you gain experience you’ll eventually just know that to reduce stringing you may lower the print temperature a little as long as the filament still comes out and still bonds well to the layer below it, you might raise travel speed a little, you might increase retraction length or retraction speed. You also may see some videos on how to print a small test object that creates the worst case scenario for stringing and you could learn how to change the temperature in the gcode file every 1cm of height (10mm of height / your chosen layer height, rounded to a whole number is the number of layers you skip in the gcode before adding a command that changes the print temperature.). So you can see after a print job what effect print temperate has on stringing. My explanation here is meant to introduce the topic to you. If you want to try it sometime, search Google. Search YouTube. There are tons of examples OR you may come across something about this and now you have an introduction to the concept dm so the next time you see anything about it you’ll have a small head start.

3D Printing is an education. It is like a class that you take yourself, at your own pace, and what you get out of it really depends on what you are willing to read, watch, and learn. There is always a chance to learn something new, experiment, and grow. The number one most frustrating thing I see are beginners the assumed the programs and the printers were just going to do everything for them. 3d printing isn’t hard, but there is a lot of details and a lot of things that you can do (once you know how) to change how your print comes out, how much plastic is used, how much time, and the finish quality.). So, if you are willing to read / watch videos, try, fail, make a change, try again, and learn, you’ll do fantastic at this! If you are not willing to learn and grow, maybe take up the long lost art of watching grass grow, I don’t know. (No, I don’t mean you personally, I’m just making a statement about commitment here… The fact that you are here asking questions and reading is already a sign that you are on a good path, just when in doubt read more, find more YouTube videos, be patient with yourself because you are learning!)


Terrific. Many thanks for what may be obvious to the experienced but a great intro for me. One of my first tests was to print out 3DBenchy in the black PVA and then the white PVA included with the printer. I noticed differences in the hull where the white made a poorer job. A few layers were sticking out creating a small ridge. The same on the top of the cabin. The black PVA made a very nice job out of it. So you’re right - even colour makes a difference.
And thanks for the pointers. I’ll be watching Youtube for some time to come :smiley:and testing, testing, playing.


And with 16 level microstepping, the increment drops to .0025mm per microstep, which is a very small distance (around 0.1 thousandth of an inch). The accuracy of manufacturing for the snapmaker (leadscrews, carriage lengths and positions etc.) is most likely not that good, and assembly will definitely not be that good.

Also, as the bed heats up, parts of it will move by as much as 0.015mm due to expansion of the aluminium in the spider frame, but it won’t be even across the bed. The point is that you will be VERY lucky to have any part of the bed line up perfectly with a full step position on the Z axis, particularly as the bed heats up, and the chances of the entire bed surface being flat and in sync with the Z axis is almost exactly zero. All this means that the Z axis will be microstepped pretty much all of the time, regardless of your slicer settings - there are no magic numbers.

Another take away is to calibrate your Z axis with the bed hot if you can.

The point of using full steps instead of microsteps is that the microsteps are not as repeatable.

They are not as strong as full steps of the motor.

Even if you are on a microstep and you make a full step, the error in the microstep you land on is repeated instead of randomized by hitting a different position on the motor that has a different error. Different errors add up constructively and deconstructively. Landing on the same error or deviation over and over again is far less noisy in the output.

There are videos that demonstrate the power of using full steps for z layer height. I certainly didn’t invent this. The microsteps simply aren’t as accurate or as repeatable.

Any error in the initial height is absorbed by the first layer. The next layer that is put on top of it is more consistent. The next layer after that is even better.

I do agree with you that you should always calibrate with a heated bed.