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

    Calibrate the Z probe trigger height

    Scheduled Pinned Locked Moved
    General Discussion
    3
    20
    675
    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.
    • Karimundefined
      Karim @Phaedrux
      last edited by Karim

      @Phaedrux here you go. No macro used.
      https://duet3d.dozuki.com/Wiki/Test_and_calibrate_the_Z_probe

      ; Configuration file for Duet WiFi (firmware version 3.3)
      ; executed by the firmware on start-up
      ;
      ; generated by RepRapFirmware Configuration Tool v3.3.13 on Fri Oct 14 2022 18:23:20 GMT-0400 (Eastern Daylight Time)
      
      ; General preferences
      M575 P1 S1 B57600 ; enable support for PanelDue
      M111 S0                                            ; Debugging off
      G21                                                ; Work in millimetres
      G90                                                ; send absolute coordinates...
      M83                                                ; ...but relative extruder moves
      M550 P"Voron"                                      ; set printer name
      M669 K1                                            ; select CoreXY mode
      M564 S1 H1                                         ; Forbid axis movements when not homed
      
      ; Network
      M552 S1                                            ; enable network
      M586 P0 S1                                         ; enable HTTP
      M586 P1 S0                                         ; disable FTP
      M586 P2 S0                                         ; disable Telnet
      
      ; --- Z Drive map ---
      ;     _______
      ;    | 6 | 7 |
      ;    | ----- |
      ;    | 5 | 8 |
      ;     -------
      ;      front
      ;
      ; (looking at the printer from the top)
      
      ; Drive directions
      M569 P0 S0 ; A      
      M569 P1 S0 ; B
      M569 P3 S1 ; Extruder
      M569 P5 S0 ; Z1
      M569 P6 S1 ; Z2
      M569 P7 S0 ; Z3
      M569 P8 S1 ; Z4
      
      
      M584 X0 Y1 Z5:6:7:8 E3                            ; Motor mapping and steps per mm
      M350 X16 Y16 Z16 E16 I1                           ; configure microstepping with interpolation
      M92 X80.00 Y80.00 Z400.00 E562.00                 ; set steps per mm
      M566 X900.00 Y900.00 Z60.00 E120.00               ; set maximum instantaneous speed changes (mm/min)
      M203 X60000.00 Y60000.00 Z18000.00 E1200.00       ; set maximum speeds (mm/min)
      M201 X6000.00 Y6000.00 Z4000.00 E250.00           ; set accelerations (mm/s^2)
      
      ; Drive currents
      M906 X1500 Y1500 Z1200 E400 I30                    ; set motor currents (mA) and motor idle factor in per cent
      M84 S10                                            ; Set idle timeout
      
      
      ; Endstops
      M574 X2 S1 P"^xstop"                              ; Xmax endstop on hall effect board
      M574 Y2 S1 P"^ystop"                              ; Ymax endstop on hall effect board
      M574 Z1 S2                                       ; configure Z-probe endstop for low end on Z
      
      
      ; Axis travel limits
      M208 X0 Y0 Z0 S1               ; Set axis minima
      M208 X312 Y325 Z275 S0          ; Set axis maxima
      
      
      ; Z probes
      M558 P5 C"^zprobe.in" H5 F300 T6000            ; set Z probe type to switch and the dive height + speeds
      G31 P500 X0 Y0 Z0                        ; set Z probe trigger value, offset and trigger height
      M557 X0:282 Y0:275 S40                        ; define mesh grid
      
      
      
      ; Bed leveling
      M584 X0 Y1 Z5:6:7:8 E3                            ; Motor mapping and steps per mm
      M671 X-65:-65:365:365 Y0:395:395:0 S20      ; Define Z belts locations (Front_Left, Back_Left, Back_Right, Front_Right)
      
      
      ;Bed (Keenovo 750w 120v)
      M308 S0 P"bedtemp" Y"thermistor" T100000 B4138     ; configure sensor 0 as thermistor on pin bedtemp
      M950 H0 C"bedheat" T0                              ; create bed heater output on bedheat and map it to sensor 0
      M307 H0 R0.490 K0.247:0.000 D1.97 E1.35 S1.00 B0   ; enable bang-bang mode for the bed heater and set PWM limit
      M140 H0                                            ; map heated bed to heater 0
      M143 H0 S120                                       ; set temperature limit for heater 0 to 120C
      
      ;E3d Revo Voron)
      M308 S1 P"e0temp" Y"thermistor" T100000 B4725 C7.06e-8       ; configure sensor 1 as thermistor on pin e0temp
      M950 H1 C"e0heat" T1                               ; create nozzle heater output on e0heat and map it to sensor 1
      M307 H1 R4.091 K0.614:0.000 D1.92 E1.35 S1.00 B0   ; disable bang-bang mode for heater  and set PWM limit
      M143 H1 S280                                       ; set temperature limit for heater 1 to 280C
      
      ; Fans
      M950 F0 C"fan0" Q500                               ; create fan 0 on pin fan0 and set its frequency
      M106 P0 S0 H-1                                     ; set fan 0 value. Thermostatic control is turned off
      M950 F1 C"fan1" Q500                               ; create fan 1 on pin fan1 and set its frequency
      M106 P1 S1 H1 T45                                  ; set fan 1 value. Thermostatic control is turned on
      M950 F2 C"duex.fan3" Q500                          ; create fan 2 on pin duex.fan3 and set its frequency
      M106 P2 S1 H1 T205                                  ; set fan 2 value. Thermostatic control is turned on
      M950 F3 C"duex.fan4" Q500                          ; create fan 3 on pin duex.fan4 and set its frequency
      M106 P3 S1 H1 T205                                 ; set fan 3 value. Thermostatic control is turned on
      M950 F2 C"fan2" Q500                               ; create fan 2 on pin fan2 and set its frequency
      M106 P2 S1 H1 T45                                  ; set fan 2 value. Thermostatic control is turned on
      
      ; LEDs
      M950 H2 C"nil" ; free up e2_heat pin
      M950 F3 C"duex.e2_heat"
      M106 P3 S255 B0 H-1 C"Top Lights"
      
      ;Neopixel
      M150 X4
      M150 W255 P255
      
      
      ; 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
      
      ; Custom settings are not defined
      
      ; Miscellaneous
      M501                                ; load config-override.g
      T0                                  ; select tool 0                                              ; 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
      M143 H0 S110
      M143 H1 S300
      
      ; homeall.g
      ; called to home all axes
      ;
      ; generated by RepRapFirmware Configuration Tool v3.3.14 on Sat Oct 29 2022 11:20:15 GMT-0400 (Eastern Daylight Time)
      G91                     ; relative positioning
      G1 H2 Z5 F6000          ; lift Z relative to current position
      G1 H1 X355 Y355 F6000 ; move quickly to X or Y endstop and stop there (first pass)
      G1 H1 X355             ; home X axis
      G1 H1 Y355             ; home Y axis
      G1 X-5 Y-5 F6000          ; go back a few mm
      G1 H1 X355 F360        ; move slowly to X axis endstop once more (second pass)
      G1 H1 Y355             ; then move slowly to Y axis endstop
      G90                     ; absolute positioning
      G1 X140 Y150 F6000     ; go Center of bed
      G30                     ; home Z by probing the bed
      G32
      
      ; homez.g
      ; called to home the Z axis
      ;
      ; generated by RepRapFirmware Configuration Tool v3.3.14 on Sat Oct 29 2022 11:08:05 GMT-0400 (Eastern Daylight Time)
      G1 X140 Y150 F6000  ; go Center of bed
      G91                ; relative positioning
      G1 H2 Z5 F6000     ; lift Z relative to current position
      G90                ; absolute positioning
      G1 X140 Y150 F6000 ; go to first probe point
      G30                ; home Z by probing the bed
      
      ; bed.g
      ; called to perform automatic bed compensation via G32
      ;
      ; generated by RepRapFirmware Configuration Tool v2 on Mon Dec 10 2018 01:47:39 GMT+0000 (GMT)
      M561 ; clear any bed transform
      ;G28 Z ; home Z
      M671 S20
      G1 F20000 X0 Y0 Z10
      G30 P0 X0 Y0 Z-99999
      G1 F20000 X0 Y275 Z10
      G30 P1 X0 Y275 Z-99999
      G1 F20000 X282 Y275 Z10
      G30 P2 X282 Y275 Z-99999
      G1 F20000 X282 Y0 Z10
      G30 P3 X282 Y0 Z-99999 S4
      
      G1 F9000 X140 Y150 Z150
      
      1 Reply Last reply Reply Quote 0
      • Phaedruxundefined
        Phaedrux Moderator
        last edited by

        At the end of your homeall you call G32, which runs bed.g which is doing tilt and roll correction. You should add a G30 at the center of the bed after you've done that to re-establish the Z0 position incase it has changed with the tilt correction.

        Z-Bot CoreXY Build | Thingiverse Profile

        Karimundefined 1 Reply Last reply Reply Quote 0
        • Karimundefined
          Karim @Phaedrux
          last edited by Karim

          @Phaedrux Hey I am not following you, are you saying add G30 at then end of home.g after G32.

          How do I get G30 to go at the center of the bed. Like this.

          ; homeall.g
          ; called to home all axes
          ;
          ; generated by RepRapFirmware Configuration Tool v3.3.14 on Sat Oct 29 2022 11:20:15 GMT-0400 (Eastern Daylight Time)
          G91                     ; relative positioning
          G1 H2 Z5 F6000          ; lift Z relative to current position
          G1 H1 X355 Y355 F6000 ; move quickly to X or Y endstop and stop there (first pass)
          G1 H1 X355             ; home X axis
          G1 H1 Y355             ; home Y axis
          G1 X-5 Y-5 F6000          ; go back a few mm
          G1 H1 X355 F360        ; move slowly to X axis endstop once more (second pass)
          G1 H1 Y355             ; then move slowly to Y axis endstop
          G90                     ; absolute positioning
          G1 X140 Y150 F6000     ; go Center of bed
          G30                     ; home Z by probing the bed
          G32
          G30 P4 X140 Y150 Z-99999 
          
          1 Reply Last reply Reply Quote 0
          • Phaedruxundefined
            Phaedrux Moderator
            last edited by

            G90; absolute positioning
            G1 X140 Y150 F6000 ; go Center of bed
            G30 ; home Z by probing the bed

            Add that to your bed.g right above the last line.

            Z-Bot CoreXY Build | Thingiverse Profile

            Karimundefined 1 Reply Last reply Reply Quote 0
            • Karimundefined
              Karim @Phaedrux
              last edited by Karim

              @Phaedrux Thank, I can get a good first layer now.
              Here is another question. How do I get the probe to go three times around the bed.

              ; bed.g
              ; called to perform automatic bed compensation via G32
              ;
              ; generated by RepRapFirmware Configuration Tool v2 on Mon Dec 10 2018 01:47:39 GMT+0000 (GMT)
              M561 ; clear any bed transform
              ;G28 Z ; home Z
              M671 S20
              G1 F20000 X0 Y0 Z10
              G30 P0 X0 Y0 Z-99999
              G1 F20000 X0 Y275 Z10
              G30 P1 X0 Y275 Z-99999
              G1 F20000 X282 Y275 Z10
              G30 P2 X282 Y275 Z-99999
              G1 F20000 X282 Y0 Z10
              G30 P3 X282 Y0 Z-99999 S4
              G90                                              ; absolute positioning
              G1 X140 Y150 F6000                 ; go Center of bed
              G30                                               ; home Z by probing the bed
              G1 F9000 X140 Y150 Z150
              
              A Former User? 1 Reply Last reply Reply Quote 0
              • A Former User?
                A Former User @Karim
                last edited by

                @Karim

                You want to probe each point multiple times? Check out the M558 "A" and "N" parameters... A is maximum number of probes per point and N is the tolerance

                https://docs.duet3d.com/en/User_manual/Reference/Gcodes

                change this line in you config

                M558 P5 C"^zprobe.in" H5 F300 T6000            ; set Z probe type to switch and the dive height + speeds
                

                to

                M558 P5 C"^zprobe.in" H5 F300 T6000  A3 S0.02          ; set Z probe type to switch and the dive height + speeds
                

                This change will probe each point up to three times or only twice if the deviation between the two probings is less than 0.02

                1 Reply Last reply Reply Quote 0
                • Phaedruxundefined
                  Phaedrux Moderator
                  last edited by

                  If you mean doing 3 iterations of the leveling process, the easiest way is to simply duplicate the commands the number of times you want it to do.

                  ; bed.g
                  ; called to perform automatic bed compensation via G32
                  ;
                  ; generated by RepRapFirmware Configuration Tool v2 on Mon Dec 10 2018 01:47:39 GMT+0000 (GMT)
                  M561 ; clear any bed transform
                  ;G28 Z ; home Z
                  M671 S20
                  G1 F20000 X0 Y0 Z10
                  
                  ;first
                  G30 P0 X0 Y0 Z-99999
                  G1 F20000 X0 Y275 Z10
                  G30 P1 X0 Y275 Z-99999
                  G1 F20000 X282 Y275 Z10
                  G30 P2 X282 Y275 Z-99999
                  G1 F20000 X282 Y0 Z10
                  G30 P3 X282 Y0 Z-99999 S4
                  G90                                              ; absolute positioning
                  G1 X140 Y150 F6000                 ; go Center of bed
                  G30                                               ; home Z by probing the bed
                  
                  ;second
                  G1 F20000 X0 Y0 Z10
                  G30 P0 X0 Y0 Z-99999
                  G1 F20000 X0 Y275 Z10
                  G30 P1 X0 Y275 Z-99999
                  G1 F20000 X282 Y275 Z10
                  G30 P2 X282 Y275 Z-99999
                  G1 F20000 X282 Y0 Z10
                  G30 P3 X282 Y0 Z-99999 S4
                  G90                                              ; absolute positioning
                  G1 X140 Y150 F6000                 ; go Center of bed
                  G30                                               ; home Z by probing the bed
                  
                  ;third
                  G1 F20000 X0 Y0 Z10
                  G30 P0 X0 Y0 Z-99999
                  G1 F20000 X0 Y275 Z10
                  G30 P1 X0 Y275 Z-99999
                  G1 F20000 X282 Y275 Z10
                  G30 P2 X282 Y275 Z-99999
                  G1 F20000 X282 Y0 Z10
                  G30 P3 X282 Y0 Z-99999 S4
                  G90                                              ; absolute positioning
                  G1 X140 Y150 F6000                 ; go Center of bed
                  G30                                               ; home Z by probing the bed
                  
                  G1 F9000 X140 Y150 Z150
                  

                  Z-Bot CoreXY Build | Thingiverse Profile

                  Karimundefined 1 Reply Last reply Reply Quote 0
                  • Karimundefined
                    Karim @Phaedrux
                    last edited by Karim

                    @Phaedrux ok, Also how do you slow the z probing in each of the three passes.

                    I saw someone has this.

                    ; Probe the bed at 4 points, x3 for more precision
                    M558 K0 H10 F1200 ; increase the depth range, gets the gantry mostly level immediately
                    M98 P"/sys/bed.g"
                    M558 K0 H4 F240   ; reduce depth range, probe slower for better repeatability
                    M98 P"/sys/bed.g"
                    M558 K0 H1 F60    ; reduce depth range, probe slower for better repeatability
                    M98 P"/sys/bed.g"
                    
                    1 Reply Last reply Reply Quote 0
                    • Phaedruxundefined
                      Phaedrux Moderator
                      last edited by

                      That could work too, or just add the M558 commands to your bed.g between the iterations.

                      Z-Bot CoreXY Build | Thingiverse Profile

                      Karimundefined 1 Reply Last reply Reply Quote 0
                      • Karimundefined
                        Karim @Phaedrux
                        last edited by

                        @Phaedrux Hey how about this. Do I have to add M671 S20 to bed.g

                        ;bed_probe_points
                        G30 K0 P0 X0 Y0 Z-99999            ; probe point 0 near a leadscrew
                        G30 K0 P1 X0 Y275 Z-99999          ; probe point 1 near a leadscrew
                        G30 K0 P2 X282 Y275 Z-99999        ; probe point 2 near a leadscrew
                        G30 K0 P3 X282 Y0 Z-99999 S4       ;probe point 3 near a leadscrew and calibrate 4 motors
                        
                        ; bed.g
                        ; Called to align the gantry to the bed plane via G32
                        
                        M561                    ; Clear any bed transform
                        M84 E3                  ; Turn off noisy Extruder motor
                        G28                     ; Home all axes
                        
                        ; Probe the bed at 4 points, x3 for more precision
                        M558 K0 H10 F1200                ; increase the depth range, gets the gantry mostly level immediately
                        M98 P"/sys/bed_probe_points.g"
                        M558 K0 H4 F240                  ; reduce depth range, probe slower for better repeatability
                        M98 P"/sys/bed_probe_points.g"
                        M558 K0 H1 F60                   ; reduce depth range, probe slower for better repeatability
                        M98 P"/sys/bed_probe_points.g"
                        
                        
                        G90                     ; absolute positioning
                        G1 X140 Y150 F6000      ; go Center of bed
                        G30                     ; home Z by probing the bed
                        
                        
                        Phaedruxundefined 1 Reply Last reply Reply Quote 0
                        • Phaedruxundefined
                          Phaedrux Moderator @Karim
                          last edited by

                          @Karim said in Calibrate the Z probe trigger height:

                          Do I have to add M671 S20 to bed.g

                          No that should probably stay in config.g. Only call it if you intend to change it.

                          Z-Bot CoreXY Build | Thingiverse Profile

                          Karimundefined 1 Reply Last reply Reply Quote 0
                          • Karimundefined
                            Karim @Phaedrux
                            last edited by

                            @Phaedrux ok what do this means.

                            The K parameter is applicable to all G30 commands. It is the Z probe number, default 0. It is not remembered between G30 commands, it always defaults to 0.

                            For example I use it here.
                            M558 K0 H4 F240

                            1 Reply Last reply Reply Quote 0
                            • Phaedruxundefined
                              Phaedrux Moderator
                              last edited by

                              Do you actually have multiple probes? If not, just remove the K0 entirely from all commands.

                              Z-Bot CoreXY Build | Thingiverse Profile

                              Karimundefined 1 Reply Last reply Reply Quote 0
                              • Karimundefined
                                Karim @Phaedrux
                                last edited by Karim

                                @Phaedrux like this.

                                ;bed_probe_points
                                G30 P0 X0 Y0 Z-99999            ; probe point 0 near a leadscrew
                                G30 P1 X0 Y275 Z-99999          ; probe point 1 near a leadscrew
                                G30 P2 X282 Y275 Z-99999        ; probe point 2 near a leadscrew
                                G30 P3 X282 Y0 Z-99999 S4       ;probe point 3 near a leadscrew and calibrate 4 motors
                                

                                also the K0 in here too.

                                ; bed.g
                                ; Called to align the gantry to the bed plane via G32
                                
                                M561                    ; Clear any bed transform
                                M84 E3                  ; Turn off noisy Extruder motor
                                G28                     ; Home all axes
                                
                                ; Probe the bed at 4 points, x3 for more precision
                                M558 K0 H10 F1200                ; increase the depth range, gets the gantry mostly level immediately
                                M98 P"/sys/bed_probe_points.g"
                                M558 K0 H4 F240                  ; reduce depth range, probe slower for better repeatability
                                M98 P"/sys/bed_probe_points.g"
                                M558 K0 H1 F60                   ; reduce depth range, probe slower for better repeatability
                                M98 P"/sys/bed_probe_points.g"
                                
                                
                                G90                     ; absolute positioning
                                G1 X140 Y150 F6000      ; go Center of bed
                                G30                     ; home Z by probing the bed
                                
                                1 Reply Last reply Reply Quote 0
                                • Phaedruxundefined
                                  Phaedrux Moderator
                                  last edited by

                                  Yes but how many probe devices do you actually have?

                                  Z-Bot CoreXY Build | Thingiverse Profile

                                  Karimundefined 1 Reply Last reply Reply Quote 0
                                  • Karimundefined
                                    Karim @Phaedrux
                                    last edited by

                                    @Phaedrux one z probe, no z end stop switch

                                    1 Reply Last reply Reply Quote 0
                                    • Phaedruxundefined
                                      Phaedrux Moderator
                                      last edited by

                                      Then you don't need K0 anywhere.

                                      Z-Bot CoreXY Build | Thingiverse Profile

                                      Karimundefined 1 Reply Last reply Reply Quote 0
                                      • Karimundefined
                                        Karim @Phaedrux
                                        last edited by

                                        @Phaedrux Got it working, Thank You.

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