Why does G29 home Z at x min y min?



  • Using Duet Web Control, I've set "Home All" and "Home Z" to move my BL-Touch probe over my heated bed before homing Z. However, when I try to do Mesh Bed leveling by issuing a G29 code, my printer immediately homes x and y to their minimums but never moves the x carriage or the heated bed so the BL-Touch will actually touch the heated bed.


  • Moderator

    G29 uses the grid dimensions specified in your M577 command. If it's going too far off the side of the bed, then you've set the grid spacing too far to that side.

    Please post your config.g or at least the Z probe section.



  • Hi Phaedrux,

    I found 2 M577 commands in my config.g file. An oversight by me and will be corrected but I would assume the last one in the config.g file would be the one that was used by G29. I also just noticed I probably should have set the x and y offsets in the M558 command. Anyway here is my config.g file

    ; Axis Limits
    M208 X-41 Y-1 Z0 S1 ; set axis minima
    M208 X250 Y227 Z210 S0 ; set axis maxima

    ; Endstops ;Comment below to use BL-Touch
    ;M574 X1 Y1 Z1 S0 ; set active low and disabled endstops

    ; BLTouch Endstops
    M574 X1 Y1 S0 ; set active low and disabled endstops
    M574 Z1 S2 ; Define Z to use Probe. Home to Min

    ; Z-Probe
    M558 P5 H5 F500 T4000 X0 Y0 Z1 ; Set Z probe type/mode 5. H=Dive Height. F=Speed the X-carriage moves
    ;M558 P0 H5 F120 T6000 ; disable Z probe but set dive height, probe speed and travel speed
    G31 P25 X18 Y29 Z0.588 ; Z probe trigger value, offset in relation to nozzle. And trigger height adjustment
    M557 X-12:215 Y22:195 S20 ; define mesh grid

    ; Heaters
    M307 H0 B0 S1.00 ; disable bang-bang mode for the bed heater and set PWM limit
    M305 P0 T100000 B3950 R4700 ; set thermistor + ADC parameters for heater 0
    M143 H0 S120 ; set temperature limit for heater 0 to 120C
    M305 P1 X200 ; configure PT100 for heater 1
    M143 H1 S280 ; set temperature limit for heater 1 to 280C
    M305 P2 X201 ; configure PT100 for heater 2
    M143 H2 S300 ; set temperature limit for heater 2 to 300C

    ; BLTouch - Heaters
    M307 H7 A-1 C-1 D-1 ; Disable the 7th Heater to free up PWM channel 5

    ; Fans
    M106 P0 S0 I0 F500 H-1 ; set fan 0 value, PWM signal inversion and frequency. Thermostatic control is turned off

    ; Tools
    M563 P0 D0 H1 F0 ; define tool 0
    G10 P0 X0 Y0 Z0 ; set tool 0 axis offsets
    G10 P0 R0 S0 ; set initial tool 0 active and standby temperatures to 0C
    M563 P1 D1 H2 F0 ; define tool 1
    G10 P1 X0 Y0 Z0 ; set tool 1 axis offsets
    G10 P1 R0 S0 ; set initial tool 1 active and standby temperatures to 0C

    ; Custom settings are not defined

    ;Mesh Bed Comp
    M557 X0:200 Y45:175 S20

    ; Miscellaneous
    M911 S10 R11 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" ; set voltage thresholds and actions to run on power loss



  • I just realized the 558 command in config.g. I never set the x and y offsets in that command. Could that be my problem?



  • I also just found out you don't see your comment edits till you reload the current page.



  • @rtuinila said in Why does G29 home Z at x min y min?:

    I also just found out you don't see your comment edits till you reload the current page.

    Depends on browser, and browser settings, but yeah, refresh (or F5) is a great idea.



  • @rtuinila said in Why does G29 home Z at x min y min?:

    I just realized the 558 command in config.g. I never set the x and y offsets in that command. Could that be my problem?

    YES, that is the "offset" between nozzle and probe, and those numbers are used by several underlying commands to put the probe over a given point.

    AND, even with that offset, there are parts of the bed the probe can't reach (assuming the nozzle can reach all of the bed). Physically. You must not use those points in specifications of a mesh grid, or in bed.g, or similar.


  • Moderator

    @rtuinila No, the X, Y and Z offsets in M558 are deprecated, see https://duet3d.dozuki.com/Wiki/Gcode?revisionid=HEAD#Section_M558_Set_Z_probe_type. You have them set in G31. But check that you have them set correctly; you have G31 P25 X18 Y29 Z0.588 which implies the probe is (looking at the machine from the top, where X0 Y0 is front left of the bed) to the right of the nozzle, and closer to the back of the bed than the nozzle. Is that correct? Maybe post a picture of your printer showing nozzle and probe.

    Ian



  • Good catch on the switch to G31. It is still true that the firmware will put the probe over a spot, and that you must not ask it for spots the probe can't reach.


  • Moderator

    @rtuinila said in Why does G29 home Z at x min y min?:

    I would assume the last one in the config.g file would be the one that was used by G29

    Yes. The commands are executed sequentially, and whatever comes last is the one that gets used.

    I think you've got it figured out now though.

    I should have also pointed you towards this: https://duet3d.dozuki.com/Wiki/Using_mesh_bed_compensation



  • @droftarts Hi Ian,

    That is almost right. My probe is to the right of the nozzle but the bed would have to travel to Y29 before the probe would be over the bed.


Log in to reply