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

    The never-ending battle: Bed Mesh Compensation

    Scheduled Pinned Locked Moved
    General Discussion
    4
    8
    457
    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.
    • Diamondbackundefined
      Diamondback
      last edited by

      Hey everyone,

      I'd like to collect some feedback and/or spark some discussion around something weird that I may have noticed recently. But the backstory first:

      I have a custom Toolchanger with a bed that has 3 individual Z motors that drive the bed via a simple kinematic mount. So before every print (in this order) I do the following:

      • Home X/Y/Z
      • Trim the bed via multiple G30 probes until the deviation is small enough
      • Home Z again
      • Create a new mesh via G29
      • Run the print

      Now this has always given me seemingly random issues, the trimming always works and the mesh creation also always seems to work fine, the resulting mesh looks believable etc.
      However, sometimes the print just seems off, you can see the Z motors move fine, but the resulting compensation doesn't work out. Sometimes during the first layer of a single print the Z distance fits, sometimes it's too much, sometimes too little.
      Prints with a large surface area to me are always hit and miss and I tend to avoid them for this reason.

      However: Recently I seemed to have noticed that things work perfectly fine when the initial print goes wrong and I abort it, just to immediately restart the same print.
      So basically, when I do my full calibration routine when a mesh is already active it actually seems to work...

      This left me wondering and I am currently printing test samples of three different conditions:

      • Unhomed, no mesh active
      • Homed, no mesh active
      • Homed, mesh already active

      Now, did you ever encounter something else like this? Maybe purely creating the mesh doesn't always actually make use of it?
      I've posted my actual config and pre-print routines many times before related to this issue and people didn't find any obvious issues in them, the main point of this thread is trying to collect some info around that new clue I might have found.

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

        @Diamondback you can use M122 to see whether mesh bed compensation is active. In the Move section of the report it should say "Compensation in use: mesh" or "Compensation in use: none".

        If your Z axis has backlash and your slicer start GCode does not home the Z axis, then it could make a difference whether the nozzle is below or above the first layer height when you start the print.

        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

        Diamondbackundefined 1 Reply Last reply Reply Quote 1
        • Diamondbackundefined
          Diamondback @dc42
          last edited by Diamondback

          @dc42 I have no doubts about the mesh being active, I can see the motors move. However, they seem to be doing the "wrong" thing. To me it feels like it's maybe using an old mesh or something, even after creating a fresh one.
          Part of my slicer start code is always the full sequence mentioned in the first post, so it does home Z in any case.

          I'll show some images of my test prints when the last one is done.

          1 Reply Last reply Reply Quote 0
          • Diamondbackundefined
            Diamondback
            last edited by

            Interestingly enough, here's a very recent post that seems to have issues with the mesh seemingly being active with M122, but it not actually working until another G29 S1 was issued.
            https://forum.duet3d.com/post/298335

            RogerPodacterundefined 1 Reply Last reply Reply Quote 0
            • RogerPodacterundefined
              RogerPodacter @Diamondback
              last edited by

              @Diamondback i have had multiple instances where i made a change to something, lets say in config.g, and it doesnt take effect until 2 times later. meaning the board reboots after a change, but it doesnt implement the change. and i troubleshoot and think i'm crazy, then a 2nd reboot and the change sticks.

              Perhaps the same effect happens with mesh level.

              I dont have an example i have in mind, and i could be at fault here and its user error by me. of course this doesnt seem to happen anymore as i get more familiar with Duet...soo i dunno!

              1 Reply Last reply Reply Quote 1
              • Diamondbackundefined
                Diamondback
                last edited by Diamondback

                @dc42 Ok, that took way longer than expetected (not printer related) but here are the results.
                I printed a 280x280 "sheet" out of PETG, a single layer (0.2mm) high for three different scenarios:

                • Printer freshly turned on, bed heated to target temp, waited 30minutes, then printed from slicer
                • Printer freshly turned on, bed heated to target temp, waited 30 minutes, manually homed the printer, then printed from slicer (I included this scenario since I wasn't 100% sure if the prior homing or the prior G32 was the "fix")
                • Printer freshly turned on, bed heated to target temp, waited 30 minutes, manually homed, manually run G32 via DWC button, then printed from slicer

                The slicer gcode contains homing (only if not already homed) and G32 (always) calls.

                So the only difference between the three is if the printer was homed before printing and if G32 was run manually via DWC or not before the slicer gcode runs G32.

                Here's pictures of the resulting prints:

                Unhomed, no manual G32, only G32 from slicer gcode:
                IMG_20221211_134540.jpg
                IMG_20221211_134619.jpg

                Homed, no manual G32, only G32 from slicer gcode:
                IMG_20221211_134521.jpg
                IMG_20221211_134643.jpg

                Homed, manual G32 via DWC button, another G32 from slider gcode:
                IMG_20221211_134504.jpg
                IMG_20221211_134711.jpg

                As you can see, there is quite a stark difference here between running G32 manually before the print file runs G32 or not.
                Important: ALL THREE PRINTS had G32 run AT LEAST as part of the pre-print slicer gcode, only the last one had it run an additional time manually before running the print.

                Ever since I discovered this I always ran a manual G32 before my prints in addition to the slicer one and did not have single issue with broken/weird mesh bed correction... Something is off here somewhere...

                Any ideas...?

                droftartsundefined 1 Reply Last reply Reply Quote 0
                • droftartsundefined
                  droftarts administrators @Diamondback
                  last edited by

                  @Diamondback sounds more like probe inconsistency to me. How is it configured? What firmware version and hardware? Please post an image of the bed mesh, too, and the response to G32 from a cold start.

                  Ian

                  Bed-slinger - Mini5+ WiFi/1LC | RRP Fisher v1 - D2 WiFi | Polargraph - D2 WiFi | TronXY X5S - 6HC/Roto | CNC router - 6HC | Tractus3D T1250 - D2 Eth

                  RogerPodacterundefined 1 Reply Last reply Reply Quote 0
                  • RogerPodacterundefined
                    RogerPodacter @droftarts
                    last edited by

                    could you run the same test, but not repeating the mesh command. essentially use the same saved mesh each time:

                    print 1 without mesh active
                    print 2 with mesh active
                    print 3 fresh boot
                    etc

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