Bed Sensor

If you want to use mesh leveling you need to know how far away the bed is. There are a couple of popular ways, each with some pluses and minuses.

A touch probe is probably the easiest. It is attached to the print head. It extends a probe lower that the nozzle. The head moves down until it touches and the probe moves back up. It usually takes at least 2 measurements and then moves on to the next location. It’s cheap.

An induction probe. A lot like touch except it looks at an induction field instead of touching. This does not work if the bed is not conductive, like glass. It cost a bit more, it’s a lot more sexy, you need a conductive bed.

Use the nozzle as a probe. Stick a strain gauge in the nozzle or the bed and when the nozzle touches the bed the strain goes up and you know where the bed is. If you put the gauge in the nozzle then the nozzle will move a tiny bit, and that’s not good. If you put the gauge in the bed you need one for each of the points the bed is held up, it cost more. You now know where the bed is inrelation to the nozzle. There is a trick. Use a probe to get the mesh and put a strain gauge at one point and use it to figure out the Z offset.

Other. There are other less common ways of generating a mesh.

With the 2 cheapest ways you know how far the bed is from the probe, not the nozzle. The nozzle is off to the side and up a bit from the probe. You need to know this. Off to the side needs to be kind of close, but the up has to be exact. In the firmware, compiled in to Marlin and, I think, in the initialization file for Klipper, is the X and Y offset from the nozzle to the probe. That is not going to change very much since the probe is bolted to the head. The Z distance can change. When you replace the nozzle you might screw it in a bit deeper for example. There is usually a way to help you find what this value is. The value can be set in the menus.