I just got this setup and working thanks to Timofey’s macro. I think it will answer your question and potentially help others to use this method if I describe my observations of how the macro works:
First, the macro taps a given point, and set’s the printer’s z to the “true” 0 where the nozzle contacts the bed (assuming you have set up tap successfully per the documentation).
Next the macro moves the tool head to scan the same point without contact. (important that your offsets are correct here).
Then it finds the difference between the tap and scan and saves that as a G Code Z offset. A few things to note here:
- This is the same kind of Z offset used when adjusting it from fluid/mainsail for fine tuning your first layer. It was displayed just the same in mainsail for me.
- Its worth noting that this is only valid for this temperature and subsequent bed mesh. It is likely to change slightly at different temps.
- If you try to do a paper test at this point (before the mesh) the results will be shifted by the offset.
The last and crucial step is performing a bed mesh using the scan or rapid scan method. As the coil is now calibrated to the right distance from the nozzle tap (thanks to the G Code Z Offset), a loaded bed mesh created by the scan will essentially cancel out the G Code Z offset.
This last part tripped me up for a while, as the bed mesh will appear to be shifted. It is indeed shifted and should match very closely to that same G Code Z offset value found as the difference between the tap and scan.
In my case, probing in the middle of my bed is generally the low point. The mesh after running the macro showed a minimum that corresponded near perfectly to the offset. At this point doing a paper test is a good confirmation that you are good to go. It should occur right around absolute Z 0.1mm.
One other mention, the scan will vary with coil temperature. Ideally you want the coil to remain the same temperature from the tap until the mesh is complete.