<p>I just installed my BLTouch clone (Marlin 1.8) on my Anycubic i3 Mega Ultrabase and finding confusing information about the <code>Z_PROBE_OFFSET_FROM_EXTRUDER</code> or the <code>M851</code> command.</p>
<p>I understand <code>M851</code> command does the same as <code>Z_PROBE_OFFSET_FROM_EXTRUDER</code> in the Configuration.h. (see <a href="https://marlinfw.org/docs/gcode/M851.html" rel="nofollow noreferrer">marlin docs</a>)</p>
<p>So according to Marlin, this value is the distance of the nozzle to the distance of the triggering point of the sensor.</p>
<p>If I manage to measure that accurately, Marlin could probe the bed, knowing distance of probe to nozzle, add a margin for perfect distance (around paper thickness) and my bed would be forever perfectly measured with every autolevelling process and perfect distances could be calculated.</p>
<p>Instead, I find tutorials around the <code>M851</code> (e.g <a href="https://3dprinting.stackexchange.com/questions/5857/z-offset-on-autoleveling-sensor-setup/5858#5858?newreg=7ba284617c6d4de7834be73f67dd4e6b">here</a> telling to manually level the bed, then take the current Z-value of the extruder and put that into the <code>M851</code> value. In my understanding it makes little sense, as it has no reference to when the sensor triggers, its distance to the bed.</p>
<p>Sure, maybe this way it can get an understanding of slight derivations in the planarity of the bed, but it would not have automatically &quot;levelled&quot; my bed, just compensated for imperfections.</p>
<p>I am confused by the amount of tutorials that suggest so. Whats the case now? Is Marlin not really able to really level to my bed?</p>

[{'answer_id': 15488, 'author': '0scar', 'author_id': 5740, 'author_profile': 'https://3dprinting.stackexchange.com/users/5740', 'pm_score': 2, 'selected': False, 'text': '<p>What may be confusing is the use of the naming of the mechanism &quot;Auto Bed Levelling&quot;, or short ABL, does not make your build plate to level itself with respect to the frame of the printer<sup>1)</sup>. Hence you are instructed to always tram (level is rather misleading as it doesn\'t involve bubble levelling, instead it is meant to tram the bed with respect to the X- and Y-axis) the build surface as good as you can.</p>\n<p>The ABL process could better be described as &quot;Height adjusting to scanned bed geometry&quot; or something like that, as that is exactly what is being done. The <code>G29</code> command scans the bed surface and (depending on the firmware options) it generates a mesh or a plane through the measured points. When printing, the nozzle will follow the bed height geometry and fades this out over about 10 milliliters (depends on setting). So, if you do not tram the bed correctly, you will end up with a skew bottom of the print as the fade out will cause the printer to print eventually parallel to the X- and Y-axis.</p>\n<p>Note that specifying the Z-offset in the firmware is rather useless, you cannot measure this beforehand. It is far better to do this later using <code>M851</code>.</p>\n<p><a href="https://3dprinting.stackexchange.com/a/5858">This answer</a> describes in some more detail how the offset is generated and applied to the scanned surface.</p>\n<hr />\n<p><em><sup>1)</sup> It is possible to actually level/tram the bed (e.g. in Marlin firmware), but that are different processes. E.g. a tramming assistant is available when using the <a href="https://marlinfw.org/docs/gcode/G035.html" rel="nofollow noreferrer"><code>G35</code></a> G-code. And, automatically, (for specific printers) possible on build plates that are moved up/down by several lead screws (look into <code>NUM_Z_STEPPER_DRIVERS</code> in Marlin\'s Configuration_adv.h file). But still, this maintains a certain level, it does not scan the complete surface, that can be achieved by the ABL process.</em></p>\n'}, {'answer_id': 18698, 'author': 'Saar', 'author_id': 32596, 'author_profile': 'https://3dprinting.stackexchange.com/users/32596', 'pm_score': -1, 'selected': False, 'text': "<p>Just thought that BLTouch could automatically measure the nozzle height. If it goes down slowly till nozzle touch the bed and then push down a little more then it will see sensor isn't moving anymore then it means nozzle already pushes the bed down. Beds are usually have springs and shouldn't hurt to push it a little (~1mm) by nozzle. Not sure if such function is implemented. Just an idea. This procedure doesn't need to be used every time. Could be an option after changing the nozzle or other adjustments affecting the nozzle height.</p>\n"}]
['https://3dprinting.stackexchange.com/questions/15447', 'https://3dprinting.stackexchange.com', 'https://3dprinting.stackexchange.com/users/26517/']