How to calculate the proper layer height multiples?

  • We all know, that the best layer hight is, when you have multiples of full steps. If it is not, sometimes steps get skipped and end up bad layer-to-layer adhesion when one height step missed a tiny bit and then the next catches up, creating an extra-thick layer. For example, this was printed somewhat deliberately, and here, the extra spaced layers are perfect for delaminating the print with just a fingernail:



    Delaminating Print



    The Ender 3 I have uses the following Z-Rod:




    • Diameter 8 mm

    • 4 flutes

    • ca 13 Threads per inch


      • That is according to the table, a 2 mm pitch for one thread.

      • As a result, it's an 8 mm pitch for each of the 4 threads.




    The firmware (Marlin) I use claims in configuration.h that the NEMA17 motor would be using 400 Steps per mm in Z. configuration_adv.h tells that the microsteps on the Z-axis motor are 16.



    In the printer's menu, Babystepping is in increments of 0.049 mm (though some rounding error seems to be there: 5 Babysteps are 0.250 mm).


    Note that this is only an issue on printers without high-quality microstepping drivers for the motors.

    Is the image in your question actually something you're having a problem with? It looks unrelated to layer height being a multiple of whole step, so aside from your question being valid and meaningful as stated, there may also be an XY problem here.

    @Mark: Indeed, I switched to using multiples of 0.04 on my Ender 3, but I don't think it actually helped anything. As tested here, the A4988 stepper drivers which are stock on Ender 3 don't seem to have a serious problem with microstepping accuracy, and I think that's especially true if you're moving by more than 1-2 microsteps (typical layer move is between 35 and 100 microsteps) at a time. If there's interest I might do some test prints and post an answer (or a new Q & A) with the results.

    @R.. the picture was created by purposefully setting the layer hight to accumulate an error that ticks over.

    @Trish: You mean something like 0.2-0.04/16? I'd like to try to reproduce it. Do you perhaps have a really early Ender 3 that had bad stepper drivers or had them in the wrong mode? I seem to recall that being an issue they fixed early on. The test print looks like it has more problems going on than just inconsistent layer height.

    @R.. 0.2125 layer height (+1/4 microstep) and doing all the movements in *absolute* movements instead of *relative* forced the result, as the target heights were as a result at 0.2125 mm (for the stepper that's effectively a 0.2 mm), 0.425 (0.4), 0.675 (for the stepper that's, depending on rounding or truncting, 0.6 or 0.7), 0.9 (here they are both 0.9) and so on.


  • that the NEMA17 motor would be using 400 Steps per mm in Z. configuration_adv.h tells that the microsteps on the Z-axis motor are 16.




    Easy. There are 400 microsteps in a millimeter, and 16 microsteps in a full step. So, there are 400/16=25 full steps in a millimeter. So a full step is 1/25th of a millimeter, or 0.04 mm. Your layer height should be a multiple of this.



    As your leadscrew has a lead of 8 mm (i.e., a full rotation will move the Z-axis by 8 mm), a full step is either 8/200=0.04 mm (for a 1.8 degree stepper) or 8/400=0.02 mm (for a 0.9 degree stepper). So, apparently, you have a 1.8 degree stepper (and this is the most common type of stepper).


License under CC-BY-SA with attribution


Content dated before 7/24/2021 11:53 AM