Duet3D Logo Duet3D
    • Tags
    • Documentation
    • Order
    • Register
    • Login

    Homing Z twice with Mesh bed compensation + bed leveling ?

    Scheduled Pinned Locked Moved
    General Discussion
    2
    2
    126
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • skhotsoundefined
      skhotso
      last edited by

      I have a cartesian printer setup with 2 z motors and a touch probe setup for homing, bed compensation and bed leveling.
      From what I've read and how I have it set up, this is what happens when I start a print:

      • Home XYZ with z being probed in the center of the bed
      • probe left X/center Y then probe right side for bed leveling
      • Home XYZ, again with z being probed in the center of the bed

      I just want to confirm that I'm not homing twice for no reason but I feel like I followed all setup instructions properly so maybe it is necessary?
      If it is necessary to home all twice to get the bed leveled, is it possible to just home all once when printing one after another?
      Configs are below
      Config.g

      
      ; Axis Limits
      ;M208 X0 Y0 Z-1 S1                                   ; set axis minima
      ;M208 X300 Y300 Z400 S0                             ; set axis maxima
      
      ; Endstops
      M574 X1 S1 P"xstop"                                ; configure switch-type (e.g. microswitch) endstop for low end on X via pin xstop
      M574 Y1 S1 P"ystop"                                ; configure switch-type (e.g. microswitch) endstop for high end on Y via pin ystop
      M574 Z1 S1 P"zstop"                                ; configure switch-type (e.g. microswitch) endstop for low end on Z via pin zstop
      
      ; Z-Probe
      
      M558 P9 C"^zprobe.in" H5 F200 T3000 ;f50 original probe speed mm/min
      G31 X-44 Y0 Z1.343 P15 
      M557 X15:251 Y15:285 P12                           ; define mesh grid
      
      
      
      
      
      ; Tools
      M563 P0 D0 H1 F1                                   ; 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
      
      ; Custom settings are not defined
      
      ; Miscellaneous
      M501                                               ; load saved parameters from non-volatile memory
      M911 S10 R11 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" ; set voltage thresholds and actions to run on power loss
      T0                                                 ; select first tool
      M950 S0 C"exp.heater3" ; Duet 2 WiFi/Ethernet bltouch
      M376 H8 ;bed taper compensation 20x max error of .391
      ;M572 D0 S0.3
      
      

      homeall.g

      ; 
      ; called to home all axes
      ;
      
      G91                    ; relative positioning
      G1 H2 Z5 F6000         ; lift Z relative to current position
      G1 H1 X-305 Y-305 F1800 ; move quickly to X and Y axis endstops and stop there (first pass)
      G1 H2 X5 Y5 F6000     ; go back a few mm
      G1 H1 X-305 Y-305 F360  ; move slowly to X and Y axis endstops once more (second pass)
      ;G1 H1 Z-405 F360   ; move Z down stopping at the endstop
      G1 x150 y150 F6000
      G30
      G90                    ; absolute positioning
      

      homez.g

      G90
      G1 x150 y150 F6000 ;G1 x150 y250 F6000
      G30
      G1 Z10 F6000
      

      custom g-code from slicer at start of print

      G90 ; use absolute coordinates
      M83 ; extruder relative mode
      M104 S{first_layer_temperature[0]} ; set final nozzle temp
      M190 S{first_layer_bed_temperature[0]} ; wait for bed temp to stabilize
      M109 S{first_layer_temperature[0]} ; wait for nozzle temp to stabilize
      G32
      M561 ; clear height map
      G28 ; home xy
      G29 S1
      
      fcwiltundefined 1 Reply Last reply Reply Quote 0
      • fcwiltundefined
        fcwilt @skhotso
        last edited by

        @skhotso

        The G30 sets the Z=0 Datum which is a good thing to do before doing any of the following:

        • before auto leveling the bed
        • after auto leveling the bed
        • creating a height map
        • loading that height map

        Now you can might get away with skipping the G30 before auto-leveling but not after. The bed leveling process can change things enough to require re-setting the Z=0 Datum.

        The whole point of leveling the bed, creating a height map, setting the Z=0 Datum is to improve the results of the printing process.

        So you can limit the G30 G32 G30 G29 S0 sequence to creating the height map and the G30 G32 G30 G29 S1 sequence when starting a print.

        You skip G30 and G32 when homing Z as you have a Z endstop switch and can use that instead.

        Frederick

        Printers: a small Utilmaker style, a small CoreXY and a E3D MS/TC setup. Various hotends. Using Duet 3 hardware running 3.4.6

        1 Reply Last reply Reply Quote 0
        • First post
          Last post
        Unless otherwise noted, all forum content is licensed under CC-BY-SA