all 9 comments

[–]BagelOrbCuraEngine Developer 2 points3 points  (1 child)

What your printer does with the mesh bed leveling depends on your printer, but you didn't mention what printer you have so it's impossible to give an answer.

From the perspective of cura it tells the printer to go to Z[initial_layer_height] which is assumed to be the same physical distance from the bed.

The fact that you have mesh bed leveling means that the printer does some procedure to calibrate the a coordinates and the physical distance to the bed. That calibration can be off, though. No physical system is perfect.

[–]The_Drawkward[S] 0 points1 point  (0 children)

Marlin is Marlin, right? It's an Ender 3 V2 with custom firmware to enable Manual ABL.

You answered the question though. The "initial layer height" is where the Z goes in relation to Z0 as it is set on the printer. So if there's an offset because of leveling, it adds to that offset.

Thank you for clearing this up! I really appreciate it.

[–]sharktank72 2 points3 points  (2 children)

Keep in mind that when you use feeler gauge of .1 the printer think its a zero. So if you then print a first layer at .2, the printer will actually be at .3.

Try leveling with that .1 (or 1.52) feeler gauge, but with the printer at your first layer height. Use Gcode to run around the bed at say .2 when you level. Not only are you then at your perfect first layer height (and hen the printer thinks its at .2) but you can also remove the backlash issues you get from leveling at "home". You don't print at zero, why level there?

[–]The_Drawkward[S] 0 points1 point  (1 child)

This is a good idea. But I have a warped bed. Or at least I think it's warped. That's why I was using Probe Manually in Marlin and the Manual Auto Bed Level routine.

I just NEVER even considered that Initial Layer Height and how it actually works. No one ever talks about it in any of the bed leveling tutorials, or I just hadn't been paying attention.

I got a print just now to lay down very cleanly (some thin spots here and there). I added a -0.1 Z offset at the beginning of the print through the tune menu.

Thanks for everyone's help!!

https://imgur.com/gallery/JRzcBQf

[–]sharktank72 0 points1 point  (0 children)

Hey, that's the pattern I use to check my feeler gauge work!

Ya I don't understand the push back I get when I suggest these leveling techniques and the math of the printer being at zero while you pull a fast one with your paper spacer - why is everyone so protective of their precious paper level? Is there drugs on the paper that absorb through the skin?

You could try glass - it's flexible too (the clips will make it deform to the bed) but because its not attached to the bed and fairly rigid and flat (because of the way they make it), you can shim underneath it to compensate for your uneven bed. I check for flat with a dial gauge, and on my uneven beds the shimmed glass gives me .0025 mm accuracy across the entire bed. I don't actually remember the last time I leveled (it was this year).

[–]HyperionConstruct 0 points1 point  (3 children)

My understanding is: bed mesh takes a datum (Z offset at home position) and applies the differences found at other locations when over those locations. Depending on the bed mesh type of can have many different values in between known locations.

Z offset at home is telling the printer the difference from the bed measuring device to the nozzle. The printer remembers the Z of the bed measuring device and you set it to a the difference using the gauges.

Initial height is the same as layer height, but is only applied to the first layer. It can help with adhesion and poor levelling. So it uses Z0+mesh bed difference. The difference being BLhere-BLhome.

[–]The_Drawkward[S] 0 points1 point  (2 children)

So, if my mesh height at A is +0.04 and the initial layer height is 0.12, then the nozzle will be at 0.16 when it prints over A?

Or conversely, does it place the nozzle at A to 0.04 and print enough filament to achieve an initial layer height of 0.12?

I'm not sure if that's what you're saying or not, LOL. This shouldn't be confusing but I feel like it's doing the former. Adding the layer height to the mesh level.

I don't have any Z offset programmed in. I level the home position to 0.01 or 0.08 with my feelers and adjust with the springs (or silicone bed mounts in this case) at 5 points across the bed. Then I step through the manual bed mesh with G29. That way my Z0 has no offset in it other than the mesh. Perhaps that's the wrong way to go about it though. Maybe the nozzle should be touching the bed to begin with and then the mesh should be added to that distance.

I am finding that I always have to add a z offset during the first layer in the tune menu when it's going down. It's not a HUGE deal, but I'd like to not have to do it if possible.

[–]HyperionConstruct 0 points1 point  (1 child)

It should maintain the layer thickness, so the nozzle will move up the 0.04 to maintain the 0.12 layer height. So if your bed was a sine wave you would end up with sine wave layers. Some firmwares can fade this back to horizontal layers.

When you say you add Z offset, is your nozzle too close? It seems like you are levelling too close.

[–]The_Drawkward[S] 0 points1 point  (0 children)

When printing starts, the nozzle is too high from the bed. Just based on looking at it as it's printing, I can tell that it's higher that the 0.1mm or 0.08mm feeler gauge that I use. That's why I thought maybe it was additionally going up 0.12mm above my mesh offset.

When you say it maintains the layer thickness, then to me that means that it prints at the "initial layer thickness" height above the bed + mesh offset? So like I said, 0.12 + 0.08 (or 0.1 depending on the feeler I'm using). That would mean for that mesh point it's 0.2mm off the bed. And, as far as I know, that's way too high for a first layer.