Jump to content

Recommended Posts

Posted · First Layer Thickness – Compensate for Z Offset? (FDM)

Typical settings for "normal" quality: layer thickness 0.15mm, first layer 0.3mm... but the actual settings are irrelevant.

 

The usual advice is to set the Z offset on the printer so that a piece of paper is lightly gripped between the nozzle and the build plate.  Let's say, for the sake of argument, a piece of paper is 0.1mm thick (but measurements suggest the result of the above procedure could be as much as a 0.15mm gap).

 

The gap is there for very good reasons: if the gap were eliminated, any unevenness in the build plate would result in the nozzle ploughing into the bed.

 

The problem is this: (for the first layer only) the slicer is extruding filament for a 0.3mm gap, when the gap is actually averaging 0.4mm.

 

To me, this implies I need to tell Cura that when Z=0 there is a 0.1mm gap, so that for the first layer it prints a 0.3mm layer with Z=0.2.  Am I right?  And if so, how do I do that?

  • Link to post
    Share on other sites

    Posted · First Layer Thickness – Compensate for Z Offset? (FDM)
    13 hours ago, CrazyIvan2 said:

    To me, this implies I need to tell Cura that when Z=0 there is a 0.1mm gap, so that for the first layer it prints a 0.3mm layer with Z=0.2.  Am I right?  And if so, how do I do that?

    No need to do that 🙂 The printer automatically takes the Z offset into account when reading the Z values from gcode. For a 0.3mm layer, it's not supposed to be exactly 0.3mm from the build plate, it's supposed to be 0.3mm + Z offset. So when the gcode says Z0.3, if you have a Z offset of 0.1mm, the printer will move to Z0.4 but it's still only going to extrude enough for a layer 0.3mm high.

     

    If it didn't have that Z offset as a gap, there wouldn't be enough room for the filament to come out and form a layer of the correct height because it would squish up against the bottom of the nozzle (and potentially clog it as more filament comes out).

     

    Would be pretty bad in some cases if you had to take the Z offset into account when setting the height Z height of the gcode - I installed a linear rail upgrade on my printer which moves the print head up from its stock position, so right now I'm running at a Z offset of -2.2mm. Wouldn't want to try and print a 0.3mm layer at Z-1.9 because I'd prefer not to dig a trench in my bed.

    (n.b. I have in fact dug a trench in my bed by forgetting to change the Z offset after I installed a new nozzle. It's not a fun experience, unless you consider buying a new build plate fun.)

      

    13 hours ago, CrazyIvan2 said:

    Let's say, for the sake of argument, a piece of paper is 0.1mm thick (but measurements suggest the result of the above procedure could be as much as a 0.15mm gap).

    If you want to be precise about it, buy a feeler gauge. If you're a bit 😕 about the height of regular paper, try receipt paper. But first, try it after setting it with regular paper and see what results you get. If it's having trouble adhering to your build surface, consider reducing your Z offset.

  • Link to post
    Share on other sites

    Posted (edited) · First Layer Thickness – Compensate for Z Offset? (FDM)
    12 hours ago, Slashee_the_Cow said:

    The printer automatically takes the Z offset into account when reading the Z values from gcode. For a 0.3mm layer, it's not supposed to be exactly 0.3mm from the build plate, it's supposed to be 0.3mm + Z offset.

     

    I think there might be some flexibility in terminology here, leading to misunderstanding or at least miscommunication (and re-reading my first post I can see I might have confused things).

     

    I understand "Z offset" as a calibration, telling the printer where to position the Z motion for Z=0.  So when told to position at Z=0.3, it goes to what the printer has been told is Z=0, plus 0.3mm.  So far as the controller and the slicer are concerned, the nozzle is at 0.3mm above the datum plane.

     

    Physically however, the gap is 0.3mm + 0.1mm*, +/- undulations in the build plate.

     

    (* or whatever your "paper thickness" is, preferably equal to the maximum deviation in the build plate)

     

    12 hours ago, Slashee_the_Cow said:

    Would be pretty bad in some cases if you had to take the Z offset into account when setting the height Z height of the gcode - I installed a linear rail upgrade on my printer which moves the print head up from its stock position, so right now I'm running at a Z offset of -2.2mm. Wouldn't want to try and print a 0.3mm layer at Z-1.9 because I'd prefer not to dig a trench in my bed.

    (n.b. I have in fact dug a trench in my bed by forgetting to change the Z offset after I installed a new nozzle. It's not a fun experience, unless you consider buying a new build plate fun.)

     

    Exactly.  We are agreed that setting Z=0 as the nozzle in contact with the build plate is a very bad idea.

     

    12 hours ago, Slashee_the_Cow said:

    So when the gcode says Z0.3, if you have a Z offset of 0.1mm, the printer will move to Z0.4 but it's still only going to extrude enough for a layer 0.3mm high.

     

    But that is my point, and I'm surprised nobody else thinks this is an issue.  It would be good to tell Cura to increase the extrusion on the first layer, so that the additional "safety margin" layer height is not under-extruded.  I guess that's why the first layer is set to double the standard layer thickness, so as to reduce the percentage under-extrusion to an "acceptable" amount.

     

    Wouldn't it be better to tune out the under-extrusion?  Then the inherent errors in the build plate would result in a plus or minus extrusion error, rather than always biased towards under-extrusion.

     

    Initially I was thinking to tune out the under-extrusion by telling Cura what initial gap to compensate for, but now I think specifying a percentage increase in extrusion might be the easier way to go, although the percentage will vary according to first layer height.

     

    12 hours ago, Slashee_the_Cow said:

    If it didn't have that Z offset as a gap, there wouldn't be enough room for the filament to come out and form a layer of the correct height because it would squish up against the bottom of the nozzle (and potentially clog it as more filament comes out).

     

    Sorry, I don't agree with that at all.  All the other layers are printed at the calibrated gap, so I see no reason the first layer would not.  Risk of gouging notwithstanding, if the nozzle were in contact with the build plate at Z=0, there would be a 0.3mm gap for a 0.3mm first layer.

     

    If there's not sufficient gap, the extruder just slips (probably, at least on my printer) and little harm is done.  There's no way to make up for too much gap though, and it seems to me the safety margin is leading to (overall) under-extrusion, therefore reduced adhesion and lower quality printing on the underside.

     

    Pending some solution being built into Cura to provide an extrusion percentage increase for the first layer (presuming it's not there already and I just haven't found it), I think this might be another candidate for my first layer override solution when it came to reversing the inside-to-outside line ordering:
    https://community.ultimaker.com/topic/46627-how-to-increase-first-layer-print-success-with-poor-bed-adhesion

     

    Edited by CrazyIvan2
    Grammar, clarification
  • Link to post
    Share on other sites

    Posted · First Layer Thickness – Compensate for Z Offset? (FDM)
    2 minutes ago, CrazyIvan2 said:

    I understand "Z offset" as a calibration, telling the printer where to position the Z motion for Z=0.  So when told to position at Z=0.3, it goes to what the printer has been told s Z=0 plus 0.3mm.  So far as the controller and the slicer is concerned, the nozzle is at 0.3mm above the datum plane.

     

    Physically however, the gap is 0.3mm + 0.1mm*, +/- undulations in the build plate.

    You don't want to be the exact layer height off the bed. The Z offset makes sure there's enough room for the filament to take the desired shape (or as close to it as possible). If I'm printing a 0.3mm layer, 0.6mm wide lines from my 0.4mm nozzle, I don't want to be exactly 0.3mm off the bed. The filament isn't going to magically squirt 0.1mm on each side perpendicular to the nozzle direction. The Z offset means there's a little bit of room for the filament to spread out appropriately but not so much room that it just squirts out an uncontrolled tube of filament.

     

    (And if I'm only printing 0.4mm lines? Then without the Z offset I'd still have to get completely clear of one extruded bit before I could extrude again or else there isn't enough free space below the nozzle for the correct flow to come out.)

     

    14 minutes ago, CrazyIvan2 said:

    But that is my point, and I'm surprised nobody else thinks this is an issue.  It would be good to tell Cura to increase the extrusion on the first layer, so that the additional "safety margin" layer height is not under-extruded.  I guess that's why the first layer is set to double the standard layer thickness, so as to reduce the percentage under-extrusion to an "acceptable" amount.

    You can increase how much it extrudes on the first layer. Just go to Material > Flow > Initial Layer Flow. I have it set to 105%, not to compensate for under- or over-extrusion, but to make sure there's plenty of filament laid down on the bed for all the important first layer adhesion, but not so much it affects the geometry significantly. (FWIW I use 150% first layer thickness  anyway.)

     

    It's got nothing to do with making sure a "safety margin" isn't underextruded. It's not trying to print with that taken into account. If I have a 0.3mm initial layer at 0.6mm line width (as I often do) and my Z offset is calibrated so that the nozzle is ~0.1mm from the bed, it's only going to extrude enough for a 0.3mm layer at 0.6mm line width. Because the gap is so small, the filament is in a prime position to form a line 0.3mm tall and 0.6mm wide. And it's not going to underextrude, because the flow rate is exactly what I want for the result I'm aiming for.

     

    If my regular layer height is then 0.2mm, the gcode command will tell the printer to move to Z0.5 for the second layer (0.3mm for the first + 0.2mm for the second). And the printer will move to Z 0.5mm plus the Z offset. You don't want the nozzle flat against what you're trying to extrude. As I said, it can't form the intended size, not to mention that when it does lines side by side (infill, top/bottom, walls, whatever) if it was at the exact height the nozzle would scrape against what I've already printed and damage that... and the nozzle.

     

    28 minutes ago, CrazyIvan2 said:

    Sorry, I don't agree with that at all.  All the other layers are printed at the calibrated gap, so I see no reason the first layer would not.  Risk of gouging notwithstanding, if the nozzle were in contact with the build plate at Z=0, there would be a 0.3mm gap for a 0.3mm first layer.

    Every layer is printed at the exact same Z offset. If your Z offset puts the nozzle about 0.1mm above the bed, and you're using 0.2mm layers every layer (no thicker first layer) the gcode will say Z0.2, Z0.4, Z0.6, etc. But the nozzle will physically be 0.3mm, 0.5mm, 0.7mm, etc. from the plate.

     

    30 minutes ago, CrazyIvan2 said:

    If there's not sufficient gap, the extruder just slips (probably) and little harm done.  There's no way to make up for too much gap though, and it seems to me the safety margin is leading to under-extrusion, reduced adhesion, and lower quality printing on the underside.

    The extruder is a stepper motor. It can't "slip". It can skip, but you need to give it a decent shove to do that. And while the stepper motor might not be powerful enough to drive my car, it's more than powerful enough to try and push plastic at 210° out the end of a nozzle, whether there's room for the plastic or not (when it's that hot... it doesn't put up much a fight). If there's not room, then it'll just start to clog the nozzle as it keeps trying to push out more filament than can physically fit out the end of the nozzle. Eventually (and by that I mean "can easily happen in 30 seconds") the filament basically "bakes" itself into the end of the nozzle and becomes solid. Then what you need is to stop printing, grab a nozzle cleaner, find someone with better vision than me (trust me, trying to use a nozzle cleaner when you have no depth perception is an exercise in futility), set the hot end to "incredibly %#(@ing hot" and hope that softens it up enough that you can clear it out.

     

    But if I may be blunt... 🥊

    FDM printers have been around for over a decade. If this was an actual problem, someone would have realised it and fixed it long before now. We all like to think we have "why does it seem like I'm the first person to think of this" moments, but unless you're me finding a decent lump of chocolate cake wedged in where my chair's armrests connect, knowing that it's been there for either 1 or 5 days, and decide to eat it anyway, the chance someone else has already thought of it is ridiculously high.

  • Link to post
    Share on other sites

    Posted · First Layer Thickness – Compensate for Z Offset? (FDM)

    Well, a lot to pick through there.

     

    Slip or skip, does it really matter what to call it when extruder stepper is unable to force filament forward and ratchets back with an audible click?

     

    If new ideas aren't welcome, perhaps I won't bother.  Just because nobody has thought of something before doesn't make it invalid.  Fresh pair of eyes and all that, and I do have a lifetime's engineering background even if I am relatively new to FDM printing.

     

    Sure, all the layers have the same Z offset.  Of course they do.  That means all the layers are printing with the correct distance between the nozzle and the substrate except the first layer (and probably the second layer too, because the under-extrusion means the fist layer isn't thick enough).

     

    Of course, this all becomes irrelevant if using a raft, as the first few layer errors are in sacrificial print.  What I'm talking about is making the first layer of an actual print the same quality as the rest of the print, when it is printed directly onto the bed.

     

    So, with the nozzle 0.4mm above the substrate (ie the print bed) for the first layer, and Cura printing a 0.3mm layer, tell me where the extra filament is coming from to properly fill that gap?  The filament isn't going to press onto the bed as well as it could, therefore reducing adhesion, and the line won't be wide enough to fuse to the next line.

     

    What is your resistance to the idea of extruding enough material so that the first layer prints with the same coverage as subsequent layers?  Thanks for telling me about Initial Layer Flow, I would never have guessed that's what it meant.  That's the only useful contribution so far.  I shall experiment with making that 133%, which is what I think it needs (assuming 0.3mm layer height and 0.1mm nozzle gap at Z=0).  The proof will be in the pudding.

  • Link to post
    Share on other sites

    Posted · First Layer Thickness – Compensate for Z Offset? (FDM)

    ...and the results are in.

     

    I used a feeler gauge and set the Z=0 gap as accurately as I could to 0.1mm, bearing in mind I only have an adjustment resolution of 0.05mm.  I prepared a test model in the form of a 60mm disc 1.2mm thick, and sliced it with default settings (0.3mm first layer, 0.15mm other layers) but out-to-in line ordering.  No brim, raft, or skirt.

     

    I then sliced it again with 133% initial layer flow.

     

    FD12A83B-9FC9-483E-8D2C-FA2DB34D20BA.thumb.jpeg.300f13b28ff5cc4c70c9122f0849c529.jpeg

     

    The photo shows the underside of each, printed directly in contact with the bed.  The lower is the 133% print, note how smooth it is compared with the top at default settings.  I didn't get much in the way of extruder skips, perhaps one or two.  I suspect it can be fine-tuned.

     

    The gaps in the underside must result in lower adhesion.  What I don't understand yet is why the walls don't show the same thing.

  • Link to post
    Share on other sites

    Create an account or sign in to comment

    You need to be a member in order to leave a comment

    Create an account

    Sign up for a new account in our community. It's easy!

    Register a new account

    Sign in

    Already have an account? Sign in here.

    Sign In Now
    • Our picks

      • UltiMaker Cura 5.9 stable released!
        Here comes Cura 5.9 and in this stable release we have lots of material and printer profiles for UltiMaker printers, including the newly released Sketch Sprint. Additionally, scarf seams have been introduced alongside even more print settings and improvements.  Check out the rest of this article to find out the details on all of that and more
          • Like
        • 5 replies
      • Introducing the UltiMaker Factor 4
        We are happy to announce the next evolution in the UltiMaker 3D printer lineup: the UltiMaker Factor 4 industrial-grade 3D printer, designed to take manufacturing to new levels of efficiency and reliability. Factor 4 is an end-to-end 3D printing solution for light industrial applications
          • Heart
          • Thanks
          • Like
        • 7 replies
    ×
    ×
    • Create New...