G30 - did something change a while back?

I've been meaning to ask this for a while but it's fairly trivial so I kept forgetting.

I have a bit of odd behaviour when homing Z - it's been like it for few months. After doing G30 I do a 5 mm move to drop the bed. What's been happening for a while now is that there seems to be another 5mm of movement that is associated with doing G30. So I get two 5mm movements and end up with the bed at Z=10mm.

I just tested by doing G30 on it's own and can confirm that the bed drop to Z=5 after my switch triggers. I've checked the Wiki and can't for the life of me see where this extra 5mm movement comes from. Is it normal behaviour? If so it's no big deal as I can just take out my extra Z lift lines.

The relevant parts of my config.g are this:

M574 Z0 S0 ; Define active low and unused microswitches
M574 X1 Y1 S1 ; Define active high microswitches
M574 U1 V1 S1 ; active high switches for when temporary U and V axes are employed during homing the upper XY
M558 P1 X0 Y0 Z1 F180 T6000 I0 ; use this for Metrol Switch
; Set Z probe type to modulated, the axes for which it is used and the probe + travel speeds
G31 P700 X0 Y0 Z-0.4; Use this for Metrol switch. Use less negative to move closer to bed, more to move further away.

Home Z is this:

TO; select a tool - any one will do
M109 S140; heat to 140 and wait

M906 X400 Y400 Z1200; reduce motor currents

; Lift Z relatively to current position
G91 ; set movement to relative
G1 Z5 F600 ; move up 5mm
G90; set movement to absolute

; Go to first bed probe point and home the Z axis
G1 X180 Y180 F18000 ; more or less the centre of the bed

If this behaviour is how it's supposed to be, could some one point me to the documentation that explains it. BTW, I don't use any form of level or flatness compensation - just a single probe at the centre of the bed.

Just speculation here, but you don't have a dive height set in your M558 command, so perhaps it's using some internal default of 5mm. What happens if you add a dive height value with M558 Hnnn ?

Actually, looking again, it could also be related to your relative Z moves before actually probing. Those moves appear to be manually setting your dive height, so both 5mm moves would equal 10mm, since after probing it would return you to whatever height you were at before probing, and since you've dropped the bed by 10, that's what you're left with.

I think if you set your dive height to 5mm, and remove those two 5mm moves and just probe you'd end up with the expected bed position after probing.

Good catch - that's what it is. I just entered M558 H0 through the console, then did G30 and the bed stopped at Z0. BUT I had an error message:
"Error: Z probe was not triggered during probing move"
Then I entered M558 H1 followed by G30 and the bed moved to 1 mm after the probe triggered.

In conclusion, I'd say that if no "H" parameter is used, then the dive height defaults to 5mm. Also a dive height of zero cannot be used (which makes sense).

The Wiki is ambiguous about this though, and there is no mention of a default value. It says quote

"Hnnn Dive height (mm). When using mesh bed compensation or running G30 commands with specified XY coordinates (for example from the bed.g file), the firmware moves the Z probe to this height above where it expects the bed to be before commencing probing".

But, I'm not using mesh compensation or any XY coordinates in my G30 so I assumed that no "H" parameter was necessary. I guess the change in behaviour happened when dive height was introduced.

Now that I know the what, why and how, I can enter H5 in my M558 and take out the "manual" 5mm moves.

(but the documentation ought to updated).

Cheers

Edit - On second thoughts I'll leave my configuration and homing files as they are and accept the behaviour as is. Just in case something changes in firmware at some future date. I'd rather use a definitive Z move in my homing files than rely on a firmware parameter moving my bed for me.

The change in behaviour is the one that @aidar identified in his post. Dive height has always existed, originally fixed at 5mm but configurable for the last 3-4 years.

That makes sense - somewhere around July of this year seems about right for when I started getting the changed behaviour. It might be nice if the wiki was a little less ambiguous (see post above) i.e that it defaults to 5 mm if no H parameter is stipulated and it applies to all G30 commands - not just quote - "When using mesh bed compensation or running G30 commands with specified XY coordinates"