Step Type:

Drag to rearrange

Now that homing to Z max works correctly, we need to measure the new length of travel for the Z axis and enter that value as the axis maxima in the M208 command in config.g so that when you home to Z max it sets the correct distance from the bed.

First, heat the bed and nozzle to normal printing temperature. This will cause the bed to warp and deform just like it would during a normal print and cause the hotend to lengthen slightly. Remove filament if any is loaded and clean the nozzle tip.

Next, move the print head to the center of the bed and lower the nozzle until it's just touching the surface. Now send G92 Z0.

Now that we've established Z0 we must measure the distance to the Z max endstop. Send G1 S3 Z300 F600. This will send the X axis gantry up to the top of the frame and stop when the endstop is hit. And when the endstop is hit, it will set the M208 Z maxima value to the resulting distance it took to get to the endstop.

Now send M208 to see what the Z axis maxima was set to. Edit config.g and alter the M208 Z value to match the newly measured value.

Note that whenever you level the bed, or even when the bed is heated up, the position of Z0 at the bed surface in relation to the position of the Zmax endstop, can change. This is the downside of an endstop at the high end of travel.

We can use a macro to automate the measurement routine and use M500 to save the results to config-override.g and then have M501 at the end of config.g to load the saved values. If you've already used this guide to PID tune your heaters, you probably use M500 and M501 already.

Using the macro shown in the image, the new M208 Z maxima is as follows: M208 Axis limits X0.0:235.0, Y0.0:235.0, Z-0.5:228.2, which is about 1mm less than there was originally estimated. See here for a copyable text version of the macro.

Your contributions are licensed under the open source Creative Commons license.