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

    Need help understand dual Z auto bed compensation

    Scheduled Pinned Locked Moved Solved
    Duet Hardware and wiring
    2
    11
    720
    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.
    • supernovaeundefined
      supernovae
      last edited by supernovae

      I've built a 300x300x400 hyper cube evo and i'm just working out my first print kinks and i'm struggly to understand how the auto bed compensation works with my dual Z.

      Settings:

      ; Drives
      M569 P1 S0 ; Drive 0 goes backwards
      M569 P1 S0 ; Drive 1 goes backwards
      M569 P2 S1 ; Drive 2 goes backwards
      M569 P3 S0 ; Drive 3 goes backwards
      M569 P4 S1 ; Drive 4 goes backwards
      M584 X0 Y1 Z2:4 E3 ; Drive 0 controls X, Drive 1 controls Y, Drive 2:4 controls Z, Drive 3 controls E
      ; Motor order: Left (1), Right (2)
      M671 X-35:335 Y150:150 S3 ; Location of the Lead Screws

      ; Axis Limits
      M208 X0 Y0 Z0 S1 ; Set axis minima
      M208 X285 Y295 Z390 S0 ; Set axis maxima

      ; Endstops
      M574 X1 S1 ; Set active High endstops (S1=SENSORED) (X-MIN(1)) (S3=SENSORLESS)
      M574 Y1 S3 F0 R0 ; Set active High endstops (S1=SENSORED) (Y-MIN(1)) (S3=SENSORLESS)
      M574 Y1 S3 ; Set endstops controlled by motor load detection
      M574 Z1 S2 ; Use zprobe and home to min
      M915 X Y S7 R0 F0 ; set X and Y to sensitivity 7, do nothing when stall, unfiltered

      ; Z-Probe
      M574 Z1 S2 ; Set endstops controlled by probe
      M307 H3 A-1 C-1 D-1 ; Disable heater on PWM channel for BLTouch
      M558 P9 H5 F120 T6000 ; Set Z probe type to bltouch and the dive height + speeds
      G31 P25 X-24 Y-19 Z0.22 ; Set Z probe trigger value, offset and trigger height
      M557 X25:270 Y25:290 S20 ; Define mesh grid

      My bed.g

      M561 ; clear any bed transform, otherwise homing may be at the wrong height
      G31 X0 Y0 ; don't want any probe offset for this
      G28 ; home the printer

      ;*** Remove the following line if your Z probe does not need to be deployed
      M98 Pdeployprobe.g ; deploy the mechanical Z probe

      G30 P0 X35.0 Y150.0 Z-99999 ; probe near a leadscrew
      G30 P1 X270.0 Y150.0 Z-99999 S2 ; probe near a leadscrew

      ;*** Remove the following line if your Z probe does not need to be retracted
      M98 Pretractprobe.g ; retract the mechanical Z probe

      When i run the bed level, i get different results no matter how many times I run it and when i see it run, it seems backwards from what i have setup - is that how it actually works?

      Going to post a onedrive video with the video of this:

      https://1drv.ms/v/s!Am5Hp5N4mwbxpYE846t30O5FthISgQ

      1 Reply Last reply Reply Quote 0
      • supernovaeundefined
        supernovae
        last edited by supernovae

        First run of bed gave this:
        Leadscrew adjustments made: 2.098 -1.566, points used 2, deviation before 1.188 after 0.000

        Then 2nd run gave this:

        Leadscrew adjustments made: 2.141 -1.603, points used 2, deviation before 1.213 after 0.000

        1 Reply Last reply Reply Quote 0
        • supernovaeundefined
          supernovae
          last edited by

          0_1556674134771_Annotation 2019-04-30 202821.png

          That is what i get after running the auto bed compensation and then running a run mesh grid compensation

          1 Reply Last reply Reply Quote 0
          • supernovaeundefined
            supernovae
            last edited by

            is the X/Y/Z arrows 0,0 or is that at the full 300/300 corner? not sure what the perspective of the image is 🙂

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

              @supernovae said in Need help understand dual Z auto bed compensation:

              G31 X0 Y0 ; don't want any probe offset for this

              Why don't you want probe offsets for this? X0 Y0 would be your nozzle. The BlTouch is not your nozzle. You need to tell the system where the probe is in relation to the nozzle. Hence the offset.

              Your video shows you probing no where close to your leadscrews. You want to probe with the BLtouch as close as possible. If it's really out of level you may need to rerun it a few times until the adjustments made barely change anymore. Then you'll probably want to rehome Z once with the probe in the center of the bed to re-establish your Z0 point. Then run mesh grid compensation.

              Z-Bot CoreXY Build | Thingiverse Profile

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

                Have you seen this? https://duet3d.dozuki.com/Wiki/Bed_levelling_using_multiple_independent_Z_motors

                Z-Bot CoreXY Build | Thingiverse Profile

                1 Reply Last reply Reply Quote 0
                • supernovaeundefined
                  supernovae @Phaedrux
                  last edited by supernovae

                  @phaedrux

                  That G31 was in the file I used to start with, i didn't put that mention in there 🙂

                  So it should probe near the lead screws - i'm not sure why its probing the exact opposite.

                  I did a manual bed level and managed to get a test cube done to confirm some setup. Maybe after some sleep the setup for this dual z level will click - i obviously have something backwards since it is doing the probe like its rotated 90 degrees on wrong x/y

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

                    The arrows on the mesh compensation image indicate 0,0 and that should be the front left of the bed in order for the coordinates to make sense.

                    Are you sure you have your motors turning the right way?

                    Z-Bot CoreXY Build | Thingiverse Profile

                    1 Reply Last reply Reply Quote 0
                    • supernovaeundefined
                      supernovae
                      last edited by

                      I can home to 0,0 and it does what I expect. I have homing set to the front left and the motors go there when i Home all. Using the head movement functions I see correct movements when i advance X/Y/Z

                      1 Reply Last reply Reply Quote 0
                      • supernovaeundefined
                        supernovae
                        last edited by

                        It was a mirrored configuration... once i printed my test cube i saw it was mirrored... did the cable swap/flip a zillion times until i got it working again. 0,0 homes correctly, xyz move and now my dual z is near the lead screws. I think i just needed to sleep on it 😄 thanks for the help!!

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

                          Glad you got it sorted out.

                          The coreXY setup guide describes a motor test you can do to ensure things are moving correctly. Also, as you realized, just because it homes to the right place doesn't mean it's not mirrored, since you're able to correct for the mixup by specifying the direction of homing in your files.

                          https://duet3d.dozuki.com/Wiki/ConfiguringRepRapFirmwareCoreXYPrinter#Section_Movement_section

                          For a CoreXY or H-Bot machine, RepRapFirmware assumes that the motor connected to the X motor output moves the head in the +X and +Y directions when it runs forwards, and that the Y motor moves the head in +X and -Y directions when it runs forwards. [Note: firmware 1.18 and earlier assumes that the motor connected to the Y motor output moves the head in the -X and +Y directions when it runs forwards]. So you can start with these M569 commands in config.g:

                          M569 P0 S0 ; X motor runs forwards
                          M569 P1 S0 ; Y motor runs forwards
                          Then test for the correct X motor movement by sending these commands from the console:

                          G91
                          G1 S2 X10 F3000
                          If the head moves diagonally in the +X and +Y directions, all is well. If it moves in the -X and -Y directions, change the S parameter to S1 in the M569 P0 command. If it moves towards +X and -Y, or towards -X and +Y, turn the power off and swap the X and Y motor connections.

                          When you have the X motor moving correctly, test the Y motor by sending from the console:

                          G91
                          G1 S2 Y10 F3000
                          For firmware 1.19 and later: If the head moves diagonally in the +X and -Y directions, all is well. If it moves in the -X and +Y directions, change the S parameter in the M569 P1 command to S1.

                          For firmware 1.18 and earlier: If the head moves diagonally in the -X and +Y directions, all is well. If it moves in the +X and -Y directions, change the S parameter in the M569 P1 command to S1.

                          Important: make sure that you have chosen a right-hand axis system. That is, looking down on the printer the +Y direction should be 90 degrees anticlockwise from the +X direction. If instead it is 90 degrees clockwise, you have a left-hand axis system, which will give you mirror-image prints.

                          Z-Bot CoreXY Build | Thingiverse Profile

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