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

    Triple Z Axis G32 Bed Traming

    Scheduled Pinned Locked Moved
    General Discussion
    6
    30
    2.1k
    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.
    • fcwiltundefined
      fcwilt
      last edited by

      Hi,

      You don't need the M400s.

      And I would put the S3 parameter on the third G30 and remove the fourth. I might be part of the problem.

      After the process is complete then move to your XY reference point (I suggest the center of the bed) and do a single G30 to set the Z=0 datum.

      Frederick

      Printers: a E3D MS/TC setup and a RatRig Hybrid. Using Duet 3 hardware running 3.4.6

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

        What's in your homeall.g?

        Z-Bot CoreXY Build | Thingiverse Profile

        Turricannundefined 1 Reply Last reply Reply Quote 0
        • Turricannundefined
          Turricann @Phaedrux
          last edited by

          @Phaedrux
          ; homeall.g
          ; called to home all axes
          ;
          ; generated by RepRapFirmware Configuration Tool v3.1.10 on Sun Dec 20 2020 20:21:04 GMT+0000 (Greenwich Mean Time)

          M400 ; wait til stuff stops
          M913 X30 Y30 ; drop motor currents to 30%
          M201 X1000 Y1000 ; reduce acceleration on X/Y to stop false triggers
          M915 P0.0:0.1 S2 R0 F0 H400 ; both motors because corexy; Sensitivity 2, don’t take action, don’t filter, 400steps/sec

          G91 ; set relative

          G1 Z5 F600 H2 ; clear the bed

          G1 H1 X-400 F4000 ; move left 400mm, stopping at the endstop
          G1 X120 F1200 ; move away from end
          G1 H1 Y-400 F4000 ; move 400mm, stopping at the endstop
          G0 Y20 F1200 ; move away from end
          G1 Z-5 F480 H2 ; bed back to original height
          G90 ; back to absolute positioning

          M400 ; wait again
          M913 X100 Y100 ; motor currents back to 100%
          G0 X0 Y0 F3600 ; move to center of bed
          G91 ; relative positioning
          G1 H2 Z5 F480 ; lift Z relative to current position
          G90 ; absolute positioning
          G1 H2 X30 Y0 F1200 ; go to first probe point
          G30 ; home Z by probing the bed

          ; Uncomment the following lines to lift Z after probing
          G91 ; relative positioning
          G1 Z5 F480 ; lift Z relative to current position
          G90 ; absolute positioning

          Phaedruxundefined 1 Reply Last reply Reply Quote 0
          • Turricannundefined
            Turricann @fcwilt
            last edited by

            @fcwilt

            Changed Bed.g to

            ; bed.g
            ; called to perform automatic bed compensation via G32
            ;

            M561 ; clear any bed transform

            G28 ; home all

            G30 P0 X170 Y30 Z-99999 ; probe near a leadscrew middle right
            G30 P2 X-180 Y-170 Z-99999 ; probe near a leadscrew Front left
            G30 P1 X-190 Y190 Z-99999 S3 ; probe near a leadscrew rear left and calibrate 3 motors

            G28 Z ;homing is set to center of bed.
            G30 S-1

            fcwiltundefined 1 Reply Last reply Reply Quote 0
            • jay_s_ukundefined
              jay_s_uk
              last edited by

              You need to make sure everything is in the same order.
              So the mapping for the z axis should be front left, front right, rear.
              M671 should also be in that order.
              Finally, your probe points should also be in the same order.
              You can change the order but it should be the same in all places.

              Owns various duet boards and is the main wiki maintainer for the Teamgloomy LPC/STM32 port of RRF. Assume I'm running whatever the latest beta/stable build is

              1 Reply Last reply Reply Quote 0
              • fcwiltundefined
                fcwilt @Turricann
                last edited by

                @Turricann said in Triple Z Axis G32 Bed Traming:

                Changed Bed.g to

                G30 P0 X170 Y30 Z-99999 ; probe near a leadscrew middle right
                G30 P2 X-180 Y-170 Z-99999 ; probe near a leadscrew Front left
                G30 P1 X-190 Y190 Z-99999 S3 ; probe near a leadscrew rear left and calibrate 3 motors

                Your config.g file says you leadscrews are at these locations:

                M671 X170:-180:-190 Y30:-170:-190 S20 ;

                Your bed.g file is probing these same locations.

                How can that be?

                Normally your leadscrews would be outside the bed min/max values and the probing inside the min/max values.

                Frederick

                Printers: a E3D MS/TC setup and a RatRig Hybrid. Using Duet 3 hardware running 3.4.6

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

                  @Turricann said in Triple Z Axis G32 Bed Traming:

                  G1 H2 X30 Y0 F1200 ; go to first probe point
                  G30 ; home Z by probing the bed

                  Don't use H2 on that G1 move before the G30.

                  @Turricann said in Triple Z Axis G32 Bed Traming:

                  G28 Z ;homing is set to center of bed.
                  G30 S-1

                  What's in your homez now?

                  Why G30 S-1?

                  Z-Bot CoreXY Build | Thingiverse Profile

                  Turricannundefined 1 Reply Last reply Reply Quote 0
                  • gloomyandyundefined
                    gloomyandy
                    last edited by

                    @fcwilt Depending on how the bed is supported probing at the same locations as specified by M671 may be correct. M671 is really specifying the positions of the pivots used to support the bed. On some beds this will be the position of the leadscrew, but on others (particularly ones using a kinematic mount) it may actually be a point under/within the bed. So for instance in my case I have bed supports arms that run (on a linear rail) from the leadscrews to a pivot point that is inside/under the bed. The support arm is in effect rigidly attached to the frame/leadscrew and the bed pivots around the other end of the support arm where it meets the bed. On many printers the mount point to the bed is rigid and the bed in effect pivots at the leadscrew.

                    The G32 process basically fits a plane to a set of probed points to obtain the current plane of the bed and then attempts to adjust the height of the pivot points so that the resultant adjusted plane is level.

                    1 Reply Last reply Reply Quote 0
                    • A Former User?
                      A Former User
                      last edited by

                      Here is my WORKING files for my 3 lead-screw core-xy

                      DISCLAIMER: These files work for ME, they might not be considered the right or wrong way to do things but they are done the way I like them to be done.

                      ; Config for CoreXY 
                      ;
                      ; General preferences
                      ;
                      G90                                                                            ; Operate the motion system with absolute positioning moves
                      M83                                                                            ; Operate the Extruder with relative positioning moves
                      M669 K1                                                                        ; Set the machine to operate in CoreXY mode
                      M552 S1                                                                        ; Enable Network
                      M550 P"Core-XY"                                                                ; Set Machine Name
                      ;
                      ; Drives (121.XX) denotes the Can-Bus address that the toolboard LC1 is operating on
                      ;
                      M671 X-31:332:150 Y-10:-10:350 S5                                              ; The Z axis pivot point locations to allow true levelling to be undertaken
                      M584 E121.0 S1                                                                 ; Drive mapping for the toolboard LC1 
                      M584 X0.4 Y0.5 Z0.1:0.2:0.3                                                    ; Drive mapping for the mainboard 6HC
                      M569 P121.0 S1                                                                 ; Driver 121.0 is connected to the extruder motor output (Driver 0) on the toolboard LC1 & goes forwards
                      M569 P0.1 S0                                                                   ; Driver 0.1 is connected to the Z1 axis motor (Front Left) on the mainboard 6HC & goes backwards
                      M569 P0.2 S0                                                                   ; Driver 0.2 is connected to the Z2 axis motor (Front Right) on the mainboard 6HC & goes backwards
                      M569 P0.3 S0                                                                   ; Driver 0.3 is connected to the Z3 axis motor (Centre Rear) on the mainboard 6HC & goes backwards
                      M569 P0.4 S0                                                                   ; Driver 0.4 is connected to the X axis motor on the mainboard 6HC & goes backwards
                      M569 P0.5 S0                                                                   ; Driver 0.5 is connected to the Y axis motor on the mainboard 6HC & goes backwards
                      M350 X16 Y16 Z16 E16 I1                                                        ; The stepper motors microstepping & interpolation amount
                      M92 X160.00 Y160.00 Z800.00 E480.00                                            ; Steps per mm of each stepper motor
                      M566 X700.00 Y700.00 Z160.00 E160.00                                           ; The maximum instantaneous speed changes expressed in (mm/min) that the stepper motors are allowed to achieve
                      M203 X6000.00 Y6000.00 Z1200.00 E1200.00                                       ; The maximum speeds expressed in(mm/min) that the stepper motors are allowed to achieve
                      M201 X1000.00 Y1000.00 Z1000.00 E1000.00                                       ; The maximum accelerations expressed in(mm/s^2 that the stepper motors are allowed to achieve
                      M906 X800 Y800 Z800 E600 I30                                                   ; The maximum motor currents expressed in(mA) & idle factor  expressed as a % that the stepper motors are allowed to achieve
                      M84 S30                                                                        ; The idle timeout
                      ;
                      ; Axis Limits
                      ;
                      M208 S1 X-12 Y-20 Z-1                                                          ; Each axis's minimum travel locations
                      M208 S0 X300 Y320 Z300                                                         ; Each axis's maximum travel locations
                      ;
                      ; Endstops
                      ;
                      M574 X1 S1 P"121.io1.in"                                                       ; The X endstop is located at the X axis's minimum location & is mapped/connected to the io1.in port on the toolboard LC1 
                      M574 Y1 S1 P"io3.in"                                                           ; The Y endstop is located at the Y axis's minimum location & is mapped/connected to the io3.in port on the mainboard 6HC
                      M574 Z1 S2                                                                     ; The Z probe acts as a Z axis endstop & is located at Z axis's minimum & mapped/connected to the io0 port on the toolboard LC1
                      ;
                      ; Z-Probe
                      ;
                      ;M950 S0 C"121.io0.out"                                                        ; Create servo pin 0 for BLTouch
                      M558 P8 C"121.io0.in" H5 F100 T6000                                            ; The Z probe is of type 8 & is mapped/connected to 121.io0.in port on the toolboard LC1 
                      ;M558 P8 C"io6.in" H5 F100 T6000                                               ; TEST FOR THE IR SENSOR CONNECTED DIRECTLY TO THE MAIN BOARD
                      ;G31 X28 Y-38 Z0.117 P25                                                       ; FOR THE BL TOUCH The Z probe's trigger value, offsets & trigger height
                      G31 X-18 YO Z-0.400 P50                                                        ; FOR THE MINI IR PROBE ON THE TOOL BOARD
                      M557 X5:270 Y0:280 S44.1                                                       ; The mesh grid's defined points
                      ;
                      ; Bed Heater
                      ;
                      M308 S0 P"temp0" Y"thermistor" T100000 B4138 A"Bed"                            ; Sensor0 is a thermistor & mapped/connected to the temp0 port on the mainboard 6HC
                      M950 H0 C"out0" T0                                                             ; The bed heater output is mapped/connected to the out0 port & mapped/connected to sensor0 on the mainboard 6HC
                      M307 H0 B0 S1.00                                                               ; The bed heater is set to PWM & limited
                      M140 H0                                                                        ; The heated bed is mapped/connected to heater0 port on the mainboard 6HC
                      M143 H0 S120                                                                   ; The heated bed it temperature limited to 120C on heater0 on the mainboard 6HC
                      ;
                      ; Hot End Heater
                      ;
                      M308 S1 P"121.temp0" Y"thermistor" T100000 B4725 C7.06e-8 A"Hot End"           ; Sensor1 is a thermistor & mapped/connected to the temp1 on the toolboard LC1  (B4725)  
                      M950 H1 C"121.out0" T1                                                         ; The hot end heater optput is mapped/connected to the out1 port & mapped/connected to sensor1 on the toolboard LC1
                      M307 H1 A312.4 C202.6 D15 S1 V24.2 B0                                          ; Testing
                      M143 H1 S310                                                                   ; The hot end temperature is limited to 310C on heater1 on the toolbaord LC1
                      ;
                      ; Fans
                      ;
                      M950 F0 C"121.out1"                                                            ; The part cooling fan (fan0)is mapped/connected to out1 on the toolboard LC1
                      M106 P0 S0 H-1 C"Part Cooling Fan"                                             ; The part cooling fan (fan0)is set to value 0 & thermostatic control is turned off
                      M950 F1 C"121.out2"                                                            ; The hot end cooling fan(fan1)is mapped/connected to out2 on the toolboard LC1
                      M106 P1 S255 H-1                                                               ; The hot end cooling fan(fan1)is set to value 1 & thermostatic control turned off
                      ; 
                      ; Tools
                      ;
                      M563 P0 D0 H1 F0 S"Hot End"                                                    ; Tool 0's definition
                      G10 P0 X0 Y0 Z1                                                                ; Tool 0's axis offsets
                      G10 P0 R0 S0                                                                   ; Tool 0 is set to active & it's standby temperature is set to 0C
                      ;
                      ; Misc Settings
                      ;
                      ;T0                                                                            ; Define which tool is selected at start up
                      M501                                                                           ; Run any config-overide settings
                      
                      
                      ; bed.g
                      ;
                      ; called to perform automatic bed compensation via G32
                      ;
                      G28                         ; Home all axis's
                      G30 P0 X2 Y-2 Z-99999       ; Probe near the front left lead-screw
                      G30 P1 X152 Y278 Z-99999    ; Probe near the rear lead screw 
                      G30 P2 X290 Y-2 Z-99999 S3  ; Probe near the front right lead-screw
                      G30 P0 X2 Y-2 Z-99999       ; Probe near the front left lead-screw (Second Pass)
                      G30 P1 X152 Y278 Z-99999    ; Probe near the rear lead screw (Second Pass)
                      G30 P2 X290 Y-2 Z-99999 S3  ; Probe near the front right lead-screw (Second Pass) 
                      G91                         ; Switch to relative positioning moves
                      G1 H2 Z1 F8000              ; Drop the Z axis (the bed) relative to its current position
                      G90                         ; Revert back to absolute positioning moves
                      G1 X160 Y155 F8000          ; Position the nozzle at the centre of the bed
                      G30                         ; Probe and set the height as probed
                      
                      ; homeall.g
                      ;
                      ; called to home all axes
                      ;
                      G91                     ; Switch to relative positioning moves
                      G1 H2 Z5 F6000          ; Drop the Z axis (the bed) by 5mm relative to it's current position
                      G1 H1 X-350 F6000       ; Fast travel the X axis close to it's endstop & stop 
                      G1 H2 Z-5 F6000         ; Raise the Z axis (the bed) by 5mm relative to it's current position
                      G1 H2 Z2 F6000          ; Drop the Z axis (the bed) by 2mm relative to it's current position
                      G1 H1 Y-350 F6000       ; Fast travel the Y axis close to it's endstop & stop 
                      G1 H0 X175 Y170 F6000   ; Fast travel both X & Y to place the probe at the bed centre
                      G90                     ; Revert back to absolute positioning moves
                      G30                     ; Raise the Z axis (the bed) and stop when probe is triggered and set Z to the trigger height
                      
                      
                      1 Reply Last reply Reply Quote 0
                      • Turricannundefined
                        Turricann @Phaedrux
                        last edited by

                        @Phaedrux Yes i realized what i had done late as i posted it and removed the H2 on the G1 move you will have to bear with me this is my first attempt @ setting up a 3D printer.

                        @jay_s_uk
                        Yes everything is in the correct order triple checked this including M671 and probe points.

                        @fcwilt you are correct the lead screw points are outside the bed area however the probe points are the position where the bed mount attaches to the bed unless you know of a way to put an offset in for the actual positions ?

                        @gloomyandy your description fits my bed setup.

                        @CaLviNx just reading through your config should the M671 command come after M584 not before ?
                        Referance https://duet3d.dozuki.com/Wiki/Bed_levelling_using_multiple_independent_Z_motors.

                        ; bed.g
                        ; called to perform automatic bed compensation via G32
                        ;

                        M561 ; clear any bed transform

                        G28 ; home all

                        G30 P0 X170 Y30 Z-99999 ; probe near a leadscrew middle right
                        G30 P2 X-180 Y-170 Z-99999 ; probe near a leadscrew Front left
                        G30 P1 X-190 Y190 Z-99999 S3 ; probe near a leadscrew rear left and calibrate 3 motors

                        G1 X0 Y0 F8000
                        G30 Z

                        ; homez.g
                        ; called to home the Z axis
                        ;
                        G91 ; relative positioning
                        G1 H2 Z5 F6000 ; lift Z relative to current position
                        G90 ; absolute positioning
                        G1 X0 Y0 F6000 ; go to first probe point
                        G30 ; use probe to find Z 0
                        G91 ; relative positioning
                        G1 Z10 F6000 ; lift Z relative to current position
                        G90 ; absolute positioning

                        A Former User? fcwiltundefined Phaedruxundefined 3 Replies Last reply Reply Quote 1
                        • A Former User?
                          A Former User @Turricann
                          last edited by

                          @Turricann said in Triple Z Axis G32 Bed Traming:

                          @CaLviNx just reading through your config should the M671 command come after M584 not before ?

                          Which part of my disclaimer did you not understand ?

                          1 Reply Last reply Reply Quote 0
                          • fcwiltundefined
                            fcwilt @Turricann
                            last edited by

                            @Turricann said in Triple Z Axis G32 Bed Traming:

                            @fcwilt you are correct the lead screw points are outside the bed area however the probe points are the position where the bed mount attaches to the bed unless you know of a way to put an offset in for the actual positions ?

                            How is it possible to probe at the lead screw locations? How can the probe get to those location without colliding with the lead screws?

                            The M671 values should be the actual XY position of each leadscrew while the G30 XY positions should be somewhere on the bed.

                            Frederick

                            Printers: a E3D MS/TC setup and a RatRig Hybrid. Using Duet 3 hardware running 3.4.6

                            jay_s_ukundefined Turricannundefined 2 Replies Last reply Reply Quote 0
                            • jay_s_ukundefined
                              jay_s_uk @fcwilt
                              last edited by

                              @fcwilt or the kinematic mount positions

                              Owns various duet boards and is the main wiki maintainer for the Teamgloomy LPC/STM32 port of RRF. Assume I'm running whatever the latest beta/stable build is

                              A Former User? 1 Reply Last reply Reply Quote 0
                              • A Former User?
                                A Former User @jay_s_uk
                                last edited by

                                @jay_s_uk said in Triple Z Axis G32 Bed Traming:

                                @fcwilt or the kinematic mount positions

                                That's a more accurate explanation

                                @fcwilt some printers the lead screws only job is to move the axis, and they can also have pivots used to eliminate over constraining that axis

                                fcwiltundefined 1 Reply Last reply Reply Quote 0
                                • Turricannundefined
                                  Turricann @fcwilt
                                  last edited by Turricann

                                  @fcwilt I understand what you mean, i had taken it as the M671 command needed to match the commands in the bed.g
                                  ie the probe points but i have now updated the potions to match the actual lead screw position leveling seem to work better now but i need to run the leveling process twice as the first run did not adjust the offset correctly.

                                  output from the console.
                                  G32
                                  Leadscrew adjustments made: 1.999 1.920 3.028, points used 3, (mean, deviation) before (-0.548, 3.417) after (-0.000, 0.000)
                                  Leadscrew adjustments made: 0.057 -0.082 1.163, points used 3, (mean, deviation) before (-2.838, 3.845) after (0.000, 0.000)
                                  1/2/2021, 5:09:05 PM G32
                                  Leadscrew adjustments made: 1.166 1.972 2.849, points used 3, (mean, deviation) before (-0.292, 2.602) after (-0.000, 0.000)
                                  Leadscrew adjustments made: 0.115 -0.163 0.823, points used 3, (mean, deviation) before (-2.285, 3.068) after (0.000, 0.000)

                                  fcwiltundefined 1 Reply Last reply Reply Quote 0
                                  • fcwiltundefined
                                    fcwilt @A Former User
                                    last edited by fcwilt

                                    @CaLviNx said in Triple Z Axis G32 Bed Traming:

                                    @jay_s_uk said in Triple Z Axis G32 Bed Traming:

                                    @fcwilt or the kinematic mount positions

                                    That's a more accurate explanation

                                    @fcwilt some printers the lead screws only job is to move the axis, and they can also have pivots used to eliminate over constraining that axis

                                    That was not the point I was trying to make.

                                    My question dealt with how it was possible to probe the lead screw position (or the mount position).

                                    And as we now see the OP misunderstood what the parameters to M671 should have been.

                                    Frederick

                                    Printers: a E3D MS/TC setup and a RatRig Hybrid. Using Duet 3 hardware running 3.4.6

                                    1 Reply Last reply Reply Quote 0
                                    • fcwiltundefined
                                      fcwilt @Turricann
                                      last edited by

                                      @Turricann said in Triple Z Axis G32 Bed Traming:

                                      @fcwilt I understand what you mean, i had taken it as the M671 command needed to match the commands in the bed.g
                                      ie the probe points but i have now updated the potions to match the actual lead screw position leveling seem to work better now but i need to run the leveling process twice as the first run did not adjust the offset correctly.

                                      You still seem to be having a problem. On my printer two runs are always enough to get it spot on.

                                      Does a single G30 to set the Z=0 datum work as expected? If you move to Z=0 is the nozzle touching (or nearly so) the bed?

                                      Frederick

                                      Printers: a E3D MS/TC setup and a RatRig Hybrid. Using Duet 3 hardware running 3.4.6

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

                                        @Turricann said in Triple Z Axis G32 Bed Traming:

                                        G1 X0 Y0 F6000 ; go to first probe point
                                        G30 ; use probe to find Z 0

                                        The position of the probe for the G30 should match between homez and homeall (and any other place you are setting Z0)

                                        Z-Bot CoreXY Build | Thingiverse Profile

                                        Turricannundefined 1 Reply Last reply Reply Quote 0
                                        • Turricannundefined
                                          Turricann @fcwilt
                                          last edited by

                                          @fcwilt

                                          Doing a single G30 probes the bed @X0, Y0(Bed center), Doing a G1 Z0 the nozzle moves so its touching the bed.

                                          fcwiltundefined 1 Reply Last reply Reply Quote 0
                                          • Turricannundefined
                                            Turricann @Phaedrux
                                            last edited by

                                            @Phaedrux I see i had not set the probe offset, however the bed is still not tramming correctly any other thoughts ?

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