Navigation

    Duet3D Logo

    Duet3D

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

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

    Tuning and tweaking
    4
    28
    542
    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.
    • ClassicStyle
      ClassicStyle last edited by

      Howdy,
      I've setup my BLTouch with my Maestro, and am able to successfully mesh calibrate. I do not seem to yield the benefits though as often the first layer does not stick if I deviate more than about 100mm away from the center of the bed. I have a 400x400mm build platform and often end up with prints happening either in mid-air or very close to it, with poor adhesion. Mean error on 36 points is -0.126, with max deviation at -0.785/0.463 mm. Is there a particular gcode start command I should add to enable mesh compensation? Some of the guys in the facebook group recommended M420 (which I initially suspected was the 3D printing equivalent to headlight fluid), but it appears that is not a Duet RepRap recognized code.

      I have change the quantity of mesh leveling points to as many as 400 (though it looks like that crashed my duet so I retried at 100 and that didn't fail) but have had no change in outcome. The BLTouch provides reliable data across multiple mesh data probes.

      Any suggestions?

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

        Are you executing a G29 S1 before you start printing?
        Normally, you'd have this g-code in the bed.g macro and include a G32 command in the slicer's start code settings.

        Unless you load and activate the saved levelling grid, it won't have any effect.

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

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

          Mean error on 36 points is -0.126, with max deviation at -0.785/0.463 mm

          that seems pretty uneven. can you post a picture of the mesh bed?.

          also while printing verify with m122 that the bed compensation is in fact turned on/

          1 Reply Last reply Reply Quote 0
          • ClassicStyle
            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!

            grizewald 1 Reply Last reply Reply Quote 0
            • grizewald
              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.

              ClassicStyle 1 Reply Last reply Reply Quote 1
              • ClassicStyle
                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!

                grizewald 1 Reply Last reply Reply Quote 0
                • ClassicStyle
                  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
                  • Veti
                    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
                    • grizewald
                      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
                      • ClassicStyle
                        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
                        • ClassicStyle
                          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?

                          grizewald Phaedrux 2 Replies Last reply Reply Quote 0
                          • grizewald
                            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?

                            ClassicStyle 1 Reply Last reply Reply Quote 0
                            • Phaedrux
                              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

                              1 Reply Last reply Reply Quote 1
                              • ClassicStyle
                                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
                                • grizewald
                                  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.

                                  ClassicStyle 1 Reply Last reply Reply Quote 0
                                  • ClassicStyle
                                    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
                                    • ClassicStyle
                                      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
                                      • grizewald
                                        grizewald last edited by

                                        That looks very nice indeed!

                                        Progress at last eh? 😉

                                        1 Reply Last reply Reply Quote 0
                                        • ClassicStyle
                                          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
                                          • grizewald
                                            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.

                                            ClassicStyle 1 Reply Last reply Reply Quote 0
                                            • ClassicStyle
                                              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
                                              • ClassicStyle
                                                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
                                                • Phaedrux
                                                  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.

                                                  ClassicStyle 1 Reply Last reply Reply Quote 1
                                                  • ClassicStyle
                                                    ClassicStyle @Phaedrux last edited by

                                                    @phaedrux I'm so frustrated cause I feel what you're saying, but nothing frigging sticks!!!

                                                    Blue painter's tape? Yup, tried it. Half the 400mm^2 bed is covered in it, and glue stick, and hair spray. 😠 Obviously I didn't do them all in one go, but one after another. Throw the tape away, try another round. I can barely get one line to stick, but the second the nozzle changes directions, the print lifts off the surface. I've tried print temps from 190-210, and bed temps from 45-65. 🆘 Last resort is glass. If that doesn't work, not sure what I'm going to do.

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

                                                      @classicstyle When I was still using PEI or glass printing surfaces, I found that artist's gouache varnish aerosol (used for coating watercolour paintings) worked really well. Alternatively, extra strength hairspray. When you use hairspray, just make sure you use a newspaper or similar to ensure none of the spray gets on your lead screws or other mechanical parts.

                                                      If you find the head rips the first layer lines off the bed, are you certain that the head is perfectly vertical? If the head is at an angle to the bed, the lowest edge of the nozzle will rip the lines of filament off in certain directions only. Even 5 degrees is enough to mess things up, particularly with the E3D nozzles which have a larger flat area surrounding the actual hole in the nozzle.

                                                      Alternatively, I've seen this happen with PLA which has absorbed too much water from the air. I think the lines actually swell slightly as the water in them boils. If you live somewhere where it is often humid, you need to take particular care that your filament doesn't absorb water. Don't believe those who say that PLA doesn't absorb significant water from the air. I've seen steam coming off wet PLA filament being extruded into thin air!

                                                      I store all my spools individually in 300 x 400mm mylar bags with a 100g pack of silica gel. When I'm printing, my spools are inside a modified PolyBox which also contains 400g of silica gel and the filament is contained in a PTFE feed line all the way from the PolyBox to the extruder.

                                                      As for bed surfaces, I use an Anycubic Ultrabase on both of my printers. It is probably one of the best inventions ever. Most plastics stick to it without any additional sprays or tape and once the print is finished and the bed cools down to under 30C, you just pick up the print. No scraping or other dangerous operations.

                                                      I got my bed looking a lot better after some extreme heat and a few adjustments:

                                                      alt text

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