Duet3D Logo

    Duet3D

    • Register
    • Login
    • Search
    • Categories
    • Tags
    • Documentation
    • Order

    Bed Leveling Questions…

    Tuning and tweaking
    4
    5
    792
    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.
    • Yonkiman
      Yonkiman last edited by

      It looks like the firmware trend is moving from few-point point ABL to many-point mesh bed leveling. That's great, particularly since my bed is a lot less flat than I expected it to be.

      But I also liked the ABL because I have two Z motors on my CoreXY, and if they fall out of sync (from vibration when power-down or maybe a too-vigorous part removal) I will have a tilt to one side or the other. I've been using the faster ABL probing as an indicator while I make the mechanical adjustments to get the bed back to mostly level. (Long term, I will be mechanically syncing the two Z screws.) So I'd like to have the detail height map stored that I can load up and overlay on top of an every-print 4-point calibration to remove the residual Z screw error.

      Is that possible? The mesh_bed_compensation wiki page seems to indicate it is, but I'm not sure I have the details right. Here's my proposed flowchart with my best guess at what commands in what order:

      INITIAL CALIBRATION (done once, infrequently after):
      A1) G32 ; probe 4 corners of bed as spec'ed in bed.g file
      A2) Mechanically adjust Z screws and repeat step A1 until left-right (side-to-side) is roughly level.
      A3) M557 X30:200 Y30:200 S30 ; full mesh
      A4) G29 ; measure and save height map to heightmap.csv.

      EVERY-PRINT CALIBRATION:
      B1) G32 ; probe 4 corners of bed as spec'ed in bed.g file
      B2) Mechanically adjust Z screws and repeat step B1 until left-right (side-to-side) is roughly level.
      B3) G29 S1; recall heightmap.csv
      B4) Start printing with a well-compensated bed

      Is that correct?

      1 Reply Last reply Reply Quote 0
      • T3P3Tony
        T3P3Tony administrators last edited by

        David should be able to confirm this but my understanding is that should work.

        www.duet3d.com

        1 Reply Last reply Reply Quote 0
        • dc42
          dc42 administrators last edited by

          Yes that should work.

          A planned future firmware feature will let you use the Z probe to adjust your two motors individually to get the bed level left to right, if you have them connected to separate stepper driver outputs.

          Duet WiFi hardware designer and firmware engineer
          Please do not ask me for Duet support via PM or email, use the forum
          http://www.escher3d.com, https://miscsolutions.wordpress.com

          1 Reply Last reply Reply Quote 0
          • Yonkiman
            Yonkiman last edited by

            Excellent, thank you both.

            1 Reply Last reply Reply Quote 0
            • lignumaqua
              lignumaqua last edited by

              FWIW I resolved this problem with two Z motors run from a single driver by adding a mechanical homing stage into my start up code. I added lower hard stop points to each side of the bed, one with each Z motor, and then run the bed down into those stops (at a low current) until the motors misstep. This sets a repeatable level between the two. Very simple and, so far, very reliable. The whole process goes like this:

              1. Run Z axis up to its normal zero micro switch stop so we know roughly where we are.

              2. Run Z axis all the way down at high speed to 10 mm above hard bottom stops

              3. Reduce current and speed and run Z axis down a further 20 mm. This ensures that both motors will hit their end stops and misstep. The slow speed and low current keeps this process painless.

              4. Run Z axis back up and run zero routine as usual. (In my case using a DC42 IR sensor)

              (This assumes that the two motors are within 10 mm to start with. You can increase the 20 mm misstepping run if you think the error could be more than that.)

              With the speed and current low, the maximum delta between the two motors should now be no more than one full step of the motor. This adds maybe 20 seconds to the start up Gcode but solves a lot of problems! Coupled with mesh leveling it's meant I never have to worry about bed flatness.

              For hard stops I just printed sleeves that fit around the lead screws that limit downwards travel and transfer the load. Probably better would be hard stops on the frame, but I haven't found that to be necessary in practice.

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