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

    Mesh Calibration Issues (Duet Maestro 1.0, FW 2.02, BLTouch)

    Scheduled Pinned Locked Moved
    Tuning and tweaking
    4
    28
    1.9k
    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.
    • ClassicStyleundefined
      ClassicStyle @grizewald
      last edited by

      @grizewald Do I need to run g32 on every print start? I have a mesh stored already, or am I missing the point of G32? Thanks for the tip about G29 S1, the S1 was missing from the command!

      grizewaldundefined 1 Reply Last reply Reply Quote 0
      • grizewaldundefined
        grizewald @ClassicStyle
        last edited by grizewald

        @classicstyle

        G32 causes the macro 'bed.g' to be called. There's nothing that requires you to perform a mesh levelling before every print, that's the whole idea with having a command to load a saved mesh.

        This is what my bed.g looks like:

        ; bed.g
        ; called to perform automatic bed compensation via G32
        ;
        M561 ; clear any bed transforms to start levelling from scratch
        G28 ; Home all
        G29 S1 ; Load heightmap.csv and activate it

        That's it! I create a new levelling mesh every once in a while via a separate macro which warms up the bed and print head to 60C/130C before it probes a grid of 196 points.

        My homeall.g macro, which is called when G28 is run, performs a lead screw compensation after the initial homing of X, Y and Z. Once the lead screw compensation is done, it levels Z again, just in case the lead screw compensation changed the Z homing height.

        So, my slicer's start code contains a G32, but the macro only loads and activates a previously created mesh rather than creating a new one.

        Oh, one last thing. My slicer's start code also warms up the bed and print head to 60C/130C before the G32 is executed. That way, everything is set up to match the conditions under which I created the stored mesh.

        After returning from the G32, the start code then sets the bed and print head to the actual printing temperatures before the print itself starts.

        ClassicStyleundefined 1 Reply Last reply Reply Quote 1
        • ClassicStyleundefined
          ClassicStyle @grizewald
          last edited by

          @grizewald said in Mesh Calibration Issues (Duet Maestro 1.0, FW 2.02, BLTouch):

          @classicstyle

          G32 causes the macro 'bed.g' to be called. There's nothing that requires you to perform a mesh levelling before every print, that's the whole idea with having a command to load a saved mesh.

          That's the piece I was mentally missing, thank you! I added the G32 to the start code and have the G29 S1 added to bed.g. Wish me luck! Or don't, in any case I'm going to give it a go shortly!

          Thanks again for the generous information @grizewald!

          grizewaldundefined 1 Reply Last reply Reply Quote 0
          • ClassicStyleundefined
            ClassicStyle
            last edited by

            Someone mentioned an image of my calibration. I upped the sample count to 225, and here's what I got:
            0_1565935642756_50801fb9-f0af-407a-b7df-4173c88f3624-image.png

            1 Reply Last reply Reply Quote 0
            • Vetiundefined
              Veti
              last edited by

              that is not a good base. nearly a mm difference between highest and lowest point.

              1 Reply Last reply Reply Quote 0
              • grizewaldundefined
                grizewald @ClassicStyle
                last edited by

                @classicstyle said in Mesh Calibration Issues (Duet Maestro 1.0, FW 2.02, BLTouch):

                @grizewald said in Mesh Calibration Issues (Duet Maestro 1.0, FW 2.02, BLTouch):

                @classicstyle

                G32 causes the macro 'bed.g' to be called. There's nothing that requires you to perform a mesh levelling before every print, that's the whole idea with having a command to load a saved mesh.

                That's the piece I was mentally missing, thank you! I added the G32 to the start code and have the G29 S1 added to bed.g. Wish me luck! Or don't, in any case I'm going to give it a go shortly!

                Thanks again for the generous information @grizewald!

                No problem and good luck! Looking at your height map, you'll need it.

                My bed is far from flat, but it's nowhere near as bad as yours.

                Height map

                1 Reply Last reply Reply Quote 0
                • ClassicStyleundefined
                  ClassicStyle
                  last edited by

                  Yeah, my build surface is about as smooth as 80 grit sandpaper, which really sucks cause I honestly thought it was very flat.

                  Has anyone ever tried floating out the surface of an aluminum build plate with some catalyzed resin-like products, then polishing it?

                  1 Reply Last reply Reply Quote 0
                  • ClassicStyleundefined
                    ClassicStyle
                    last edited by

                    Is there a way to verify that mesh compensation is occurring? (besides it just working)?

                    Also, I'm hoping this is the case, but does compensation interpolate between data points?

                    grizewaldundefined Phaedruxundefined 2 Replies Last reply Reply Quote 0
                    • grizewaldundefined
                      grizewald @ClassicStyle
                      last edited by

                      @classicstyle It does interpolate, which is why a large number of points is a good idea.

                      To see if mesh compensation is being used, you can:

                      a. Issue an M122 command at the console after finishing a print. The report that comes back will tell you if mesh compensation is active.
                      b. Watch the Z steppers as you print. You should see them moving to adjust the Z height on longer moves.

                      Looking at how your bed is below the zero point at three corners, are you sure there is not more you can do mechanically to level the bed? How is the bed attached to your Z axis?

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

                        @classicstyle said in Mesh Calibration Issues (Duet Maestro 1.0, FW 2.02, BLTouch):

                        Is there a way to verify that mesh compensation is occurring? (besides it just working)?

                        Print an STL like this once with mesh disabled and once with it enabled. That will show how effective it is.

                        0_1566148941064_bedlevel_nozzle_0.4_200x200-0.3-0.8.stl

                        Z-Bot CoreXY Build | Thingiverse Profile

                        1 Reply Last reply Reply Quote 1
                        • ClassicStyleundefined
                          ClassicStyle @grizewald
                          last edited by

                          @grizewald Thanks for the clarity about m122.

                          I actually have been trying things most of the night and this morning. It seems like every time the wind changes direction, the corners that are above or below zero change. I'm running a dual-z hypercube with 4 12mm guides. I think I'm going to have to figure out a pilot bearing for the top of the cube to make the lead screws more stable cause they do allow the build plate to wobble some.

                          1 Reply Last reply Reply Quote 0
                          • grizewaldundefined
                            grizewald
                            last edited by

                            As an example, this is what my levelling mesh looks like:

                            alt text

                            Not too pretty considering the bed is a 310mm square Anycubic Ultrabase on top of a 329mm square 3mm thick aluminium plate.

                            I'm considering heating it up as high as my heater will go (around 120C) to see if it might release the stress which seems to have formed after I mounted the glass plate.

                            I see the Hypercube uses a similar, brain dead, way of mounting the print bed as my V-Core printer. Fixing a plate at four points is just plain dumb. It should be fixed at three points in a triangle only. That way, you can adjust for roll and then adjust for pitch without ruining the first roll adjustment.

                            I don't know if you're using springs like I see on the Thingiverse page for the Hypercube, but I don't use springs on either of my printers. All I use is nylock nuts to fix the height and keep it fixed. My V-Core's mountings are actually free to move in certain directions to prevent any problems when the bed expands due to heating.

                            ClassicStyleundefined 1 Reply Last reply Reply Quote 0
                            • ClassicStyleundefined
                              ClassicStyle @grizewald
                              last edited by

                              @grizewald Thanks for all the insight about 3-point mounting. Something I had definitely never realized. I actually have a Tronxy XY-2 as my first printer and went through the 4-sprung corner madness and said "no thanks, this sucks" to repeating that for my hypercube. I'm solid mounted to a 6-bar 2020 frame. Essentially it's a square frame of 4x2020 extrusion, then two 2020 extrusions are laid across the frame, resting on top of it. It's then solid mounted to the frame, and the bed is solid mounted to those two 2020s via v-nuts. I know it sounds overly complex, but I wanted a lot of adjustability while I dialed in the machine.

                              You reminded me that my 90 degree frame-to-2020 mounts are slotted, so I've been trying to dial that in since about 2 messages ago, starting with a simple 9-point grid to rough-in the level, then I'll up the resolution once I have all four corners roughly leveled and as close to 0.00 Z as possible. Getting closer....
                              0_1566153576290_cf7b7386-de93-43fe-bf15-c6fc4eaacc86-image.png

                              For the moment I'm ignoring the middle blue points because I can actually see the swale in aluminum from where I'm sitting. 😞 I have a mirror on the way to hopefully help this problem long term.

                              1 Reply Last reply Reply Quote 0
                              • ClassicStyleundefined
                                ClassicStyle
                                last edited by ClassicStyle

                                I don't know why it took me so long to realize I should be using my feeler gauges to level the platform. 😥 But here's the latest. Now that it's mostly flat, I'll worry about raising it to 0-ish tonight. Now time to start increasing resolution.
                                0_1566159053849_13c36638-2a4e-4f5c-ac40-e7d0b04362fb-image.png

                                Edit: ugh, just re-homing the Z should get it to zero-ish. I'm clearly firing on all cylinders today.

                                1 Reply Last reply Reply Quote 1
                                • grizewaldundefined
                                  grizewald
                                  last edited by

                                  That looks very nice indeed!

                                  Progress at last eh? 😉

                                  1 Reply Last reply Reply Quote 0
                                  • ClassicStyleundefined
                                    ClassicStyle
                                    last edited by

                                    Indeed.

                                    I did a test print of that stl Phaedrux provided. It failed to print well directly on aluminum, but I did have M122 added to the end of the gcode. Here's the relevant portion:

                                    Bed compensation in use: mesh
                                    Bed probe heights: 0.000 0.000 0.000 0.000 0.000

                                    I don't understand the purpose behind the probe heights line - I only have g28 hitting Z probe at one coordinate - the middle of the print bed. Anything to be concerned about?

                                    1 Reply Last reply Reply Quote 0
                                    • grizewaldundefined
                                      grizewald
                                      last edited by

                                      That doesn't look right. All I see if I run M122 is:

                                      Bed compensation in use: mesh, comp offset 0.000

                                      My Z-Probe configuration section looks like this:

                                      ; Z-Probe
                                      M574 Z1 S2 ; Z end stop is probe at low value
                                      M558 P8 R0.4 I1 H5 F360 T6000 ; Set Z probe type to inverted, unfiltered piezo and the dive height + speeds
                                      G31 P500 X0 Y0 Z-0.02 ; Set Z probe trigger value, offset and trigger height
                                      M557 X5:285 Y5:275 P14 ; Define mesh grid

                                      Your output looks like maybe it's set up to do manual probing. Hopefully someone will recognise what your output means. I'm pretty sure it's nothing to do with homing. I have one homing point which is in the middle of the bed at the same Y point as my two Z axis lead screws are mounted.

                                      ClassicStyleundefined 1 Reply Last reply Reply Quote 0
                                      • ClassicStyleundefined
                                        ClassicStyle
                                        last edited by

                                        My Z Probe section:

                                        ; Z-Probe
                                        M574 Z1 S2 ; Set endstops controlled by probe
                                        M558 P9 H1.5 F120 T6000 ;A5 B1 ; Set Z probe type to bltouch and the dive height + speeds
                                        G31 P500 X-25.3 Y0 Z0.675 ; Set Z probe trigger value, offset and trigger height
                                        M557 X25:200 Y25:200 S20 ; Define hi-res mesh grid <-- OMG I didn't know about the "P" argument... So many maths could have been saved 😖
                                        ;M557 X35:365 Y35:365 S330 ; Define low-res mesh grid

                                        1 Reply Last reply Reply Quote 1
                                        • ClassicStyleundefined
                                          ClassicStyle @grizewald
                                          last edited by

                                          @grizewald I updated my firmware to latest, that made my results look much more like yours.

                                          Bed compensation in use: mesh, comp offset 0.000

                                          Going to try re-printing now, even though my bed is still unlevel af.
                                          0_1566279007062_b17509d7-31c2-42ee-9c8a-8d90ac75eaba-image.png

                                          Here's hoping. Well, here's hoping the mirror gets here soon so I can clamp it to the bed and be done with this stupidness. 😌

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

                                            That mesh isn't really all that bad. It's only 0.5mm difference between lowest and highest spot. The compensation should be able to take care of that easily.

                                            Z-Bot CoreXY Build | Thingiverse Profile

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