I'm using Marlin 1.1.0RC8 to control an MPCNC, using a RAMPS1.4. We've just added a touch-plate to do Z-probing, which works nicely for a single probe (I just want calibrated height for variant bit-lengths, not bed-leveling, but I think it amounts to the same thing). I've set it up in Marlin as FIX_MOUNTED_PROBE, which seems closest.
I can make it do a G38.2 Z-50
, G92 Z12.6
(which sets Z to the height of the touch-plate, 12.6mm), which is ok to be going on with, but it seems I'm having to hard-code the Z offset, which I'm sure should really be set by eg Z_PROBE_OFFSET_FROM_EXTRUDER
or M851
.
My feeling was that I should be able to invoke a G-code G30
, and it would do a nice fast-slow double tap, do the equivalent of a G92 Z+zzz
to set that height and then withdraw to a safe height. And after a bit of config, it does exactly that...
... except it doesn't do anything with the height that it measured! Seems odd. The G30
code seems to be an elaborate way to move the head up by the clearance amount, via a touch-plate (with the added excitement of being able to crash the bed if anything goes wrong)! What's the point?
Have I misunderstood what G30
is meant to do? I've read the docs here, and traced through Marlin_main.cpp
and there really is no "outcome". Unless I've missed something?
G28
that axis. I can't see that it makes any difference, but I'll go through the code later and see if that's what's wrong. $\endgroup$