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

    ;change to faster probing speed
    M558 F450

    G30 ; FAST home Z using values from G31

    G91 ; relative
    G1 Z5 F300 ; lower bed 5mm again
    G90 ; back to absolute

    ;change back to slower probing speed
    M558 F180
    G30 ; SLOW home Z

    ;lower bed 5mm after probing
    G91 ; relative
    G1 Z5 F300
    G90 ; absolute

    M906 X1800 Y1800 Z1800 ; put motor currents back up

    M104 S0; set temp to zero but don't wait

    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.



  • Hi. Maybe this - from update notes of version 1.21 : G30 with no parameters now supports multi-tap, and the head is raised or the bed lowered to the dive height after probing.



  • 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.



  • @phaedrux

    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.


  • administrators

    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.



  • @dc42 said in G30 - did something change a while back?:

    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"☺



  • I just added the default value to the documentation. I did not adjust the part where it says

    [...] G30 commands with specified XY coordinates

    since I do not know if that was originally intended to be a requirement (the specified XY coords) and it is a bug that it also works with a plain G30. @dc42 needs to clarify this.



  • @wilriker said in G30 - did something change a while back?:

    I just added the default value to the documentation. I did not adjust the part where it says

    [...] G30 commands with specified XY coordinates

    since I do not know if that was originally intended to be a requirement (the specified XY coords) and it is a bug that it also works with a plain G30. @dc42 needs to clarify this.

    Thanks Manuel,


 

Looks like your connection to Duet3D was lost, please wait while we try to reconnect.