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

Mesh Bed Level Issues

Scheduled Pinned Locked Moved
Tuning and tweaking
7
29
2.7k
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.
  • undefined
    megaloduet
    last edited by megaloduet 5 Mar 2021, 12:28 3 May 2021, 11:56

    Dear Community,

    I try to get a even first layer with my printer and now fail to make progress for weeks, now I try to showcase you the problem and hope someone can help me to pinpoint the issue.

    Printer:
    Custom Cartesian (see images)
    Magnetic Heatbed mk52 base (Prusa Bed Clone)
    On top of it I have a twotrees spring sheet with a PEI sticker.
    Board: Duet 2 Wifi (Duet Web Control 3.2.2, RepRapFirmware for Duet 2 WiFi/Ethernet 3.2.2 (2021-02-11))
    Z Axis Motors are mounted in series
    Bed-Sensor: LJ12A3-4-Z/BX-5V

    This is the result if I print attached gcode file (a 0.2mm player test).
    I am very confused that it seems to have too low and too high nozzle distance to the printbed between two nearby lines (see cropped detail photo). While Skirt seems to be printed quite ok. (You can also see when it prints the skirt that it adds the heightmap, so a Z movement is visible, if it moves only along the X axis per g-Code

    I also attached all *.g files that I thought might be relevant.

    Already tried 4 point leveling because I thought the magnets on the bed might interfere, but nearly same result.

    20210503_132836.jpg
    20210503_132902.jpg

    Heightmap: heightmap.png

    RepRapFirmware height map file v2 generated at 2021-05-03 13:13, min error -0.430, max error 0.040, mean -0.213, deviation 0.169
    xmin,xmax,ymin,ymax,radius,xspacing,yspacing,xnum,ynum
    30.00,140.00,40.00,140.00,-1.00,55.00,50.00,3,3
    -0.430, -0.263, 0.007
    -0.402, -0.225, 0.040
    -0.358, -0.260, -0.027

    Start G-Code in Prusa Slicer:

    G28 ;Home
    G29;
    G29 S1 P"heightmap.csv"; Test load heightmap
    G1 Z15.0 F6000 ;Move the platform down 15mm
    ;Prime the extruder
    G92 E0; Setze den Extruder auf Null
    G1 X5 Y5 Z0.28 F5000.0; Fahre an die Startposition X5 Y5 Z0.28
    G1 X150 Y5 Z0.28 F1500.0 E15; Ziehe eine Linie nach X200
    G1 X150 Y5.4 Z0.28 F5000.0;
    G1 X5 Y5.4 Z0.28 F1500.0 E30; Ziehe eine Linie nach X200
    G1 X5 Y5.4 Z5 F1500.0; Ziehe eine Linie nach X200
    G92 E0; Setze den Extruder auf Null

    testprint0p2mm.gcode
    homeall.g
    config-override.g
    config.g
    cancel.g
    bed.g

    Bed Mounted with aluminum spacers
    20210503_123026.jpg
    20210503_123049.jpg

    1 Reply Last reply Reply Quote 0
    • undefined
      Phaedrux Moderator
      last edited by 3 May 2021, 21:18

      Are you actually using G32/bed.g to do 4 point adjustment plane? That's been replaced by just using G29 with a sparse mesh.

      Your heightmap looks like there is some tilt to the bed. Does your bed mount have manual adjustment? Have you done a manual leveling to try and solve that first?

      Once you've done that can you create a mesh with a higher point density? A 3x3 grid leaves a lot of the surface up to interpolation. Try a 10x10 grid, or even more (M557 P10) and see what the bed surface looks like in more detail.

      Z-Bot CoreXY Build | Thingiverse Profile

      undefined 1 Reply Last reply 4 May 2021, 05:06 Reply Quote 0
      • undefined
        megaloduet @Phaedrux
        last edited by 4 May 2021, 05:06

        @phaedrux thank you for your reply. As with the original Prusa bed, mine is fixed with aluminum spacers and cannot be adjusted currently.

        Ive been following your suggestion and tried 10:10 Mesh leveling, but the result is pretty much the same. What confuses me the most is not the uneven result, but that it seems that the compensation fails at the orange / purple areas, as these are close to each other one is to low and one is way higher.

        M557 X30:140 Y40:140 P10
        

        Results:
        04-05-_2021_06-24-48.jpg
        20210504_063822.jpg
        20210504_063822_Edit.jpg

        1 Reply Last reply Reply Quote 0
        • undefined
          fcwilt
          last edited by 4 May 2021, 08:38

          Hi,

          In your config.g file you have this:

          ; Axis Limits
          M208 X0 Y0 Z0 S1 ; set axis minima
          M208 X185 Y186 Z200 S0 ; set axis maxima

          In your homeall.g file you have this:

          G1 X138 Y132 F3000; Z safe homing
          G30 ; home Z by probing the bed

          Where did you get those X and Y values - they do not appear to be the center of the bed?


          To create your height map are you still using G32 to invoke bed.g instead of G29 to invoke mesh.g?

          Remember that before creating a height map or loading an existing heightmap you need to use G30 at the center of the bed to set your Z=0 datum.

          Are you doing that? The heightmap.csv you posted suggests you may not be setting Z=0 - at least not correctly.

          Printers: a small Utilmaker style, a small CoreXY and a E3D MS/TC setup. Various hotends. Using Duet 3 hardware running 3.4.6

          undefined undefined 3 Replies Last reply 4 May 2021, 09:10 Reply Quote 0
          • undefined
            megaloduet @fcwilt
            last edited by 4 May 2021, 09:10

            @fcwilt Hi, thank you for taking the time to take a look at my problem.

            You are right, its off center. Ill try to rectify it. Should the nozzle or the sensor be at the center of the bed?
            It was subject to several tinkering changes, but its not center you are right, I thought it compensates for it as the heighmap is the heightcompensation based on the G30 in homeall.g. Therefore thought it doesnt really matter where the reference z=0 is measured because each point individually is again measured during mesh leveling (G29).

            Nozzle centered would be X:92.5 Y:93, if senor should be centered, then i would just add the offset (X:-33,5, Y:-26).

            In my start g-code I use:

            G28 ;Home
            G29;

            To G28 home (I guess it calls homeall.g) and then use G29 (mesh.g).

            Ill test it again with nozzle centered to the bed during G30 and will report results. I will also attach my mesh.g

            1 Reply Last reply Reply Quote 0
            • undefined
              megaloduet @fcwilt
              last edited by megaloduet 5 Apr 2021, 11:02 4 May 2021, 10:29

              @fcwilt unfortunatly the result didnt change, when using the center in the homeall.g

              G1 X92.5 Y93 F3000; Z safe homing

              The heighmap now looks different, but in general yields the same information (at another z-height). I retested it center + probe offset but I didn't behave differently. 😞 Still pretty much the same print result.

              e815276b-2de8-4d29-b58f-d63dd172137a-image.png

              as I dont have a mesh.g I also cannot share it (according to documentation it instead just uses G29 S0).

              undefined 1 Reply Last reply 4 May 2021, 13:40 Reply Quote 0
              • undefined
                gloomyandy
                last edited by 4 May 2021, 11:17

                Have you tried the same print in different locations on the bed? Do you get the same results in those other locations?

                It might also be worth trying the same print (in the same location) but with the spring sheet rotated say 90 degrees. This might give an indication as to a possible problem with the evenness of the sheet or coating (as the owner of a twotrees Saphire plus I'm not very impressed with their QA).

                1 Reply Last reply Reply Quote 1
                • undefined
                  fcwilt @megaloduet
                  last edited by 4 May 2021, 13:40

                  @megaloduet

                  Well your bed looks fairly "smooth" just tilted.

                  I would find a way to manually level your bed to minimize the mesh compensation needed during printing.

                  Here is an simplified example of how I implement mesh.g - I have added some comments.

                  ; mesh.g
                  ; called to probe the bed and create the height map needed for mesh compensation
                  ; ============================================
                  ; G29 with no parameters will invoke this file
                  ; ============================================
                  ; ====================================================
                  ; these may not be necessary but it is safe to do them
                  ; ====================================================
                  M290 R0 S0 ; cancel baby stepping
                  G29 S2 ; cancel mesh bed compensation
                  ; ==================================================================================
                  ; the G1 command below moves the PROBE to the center of the bed
                  ; the code computes the center based on XY min/max values and probe XY offset values
                  ; ==================================================================================
                  G1 X{((move.axes[0].max + move.axes[0].min) / 2) - sensors.probes[0].offsets[0]}, Y{((move.axes[1].max + move.axes[1].min) / 2) - sensors.probes[0].offsets[1]}, F1800
                  G30 ; do single probe - sets Z to probe trigger height - if trigger height is wrong Z position will be wrong
                  M557 Xaaa:bbb Yccc:ddd P20:20 ; define 400 point probing grid
                  G29 S0 ; probe bed and create height map
                  ; ====================================================================
                  ; I disable mesh compensation here so manual XY moves are not effected
                  ; I re-enable mesh compensation in my print start code
                  ; ====================================================================
                  G29 S2 ; cancel mesh bed compensation

                  Printers: a small Utilmaker style, a small CoreXY and a E3D MS/TC setup. Various hotends. Using Duet 3 hardware running 3.4.6

                  1 Reply Last reply Reply Quote 0
                  • undefined
                    64bit @fcwilt
                    last edited by 4 May 2021, 15:46

                    @fcwilt
                    Not trying to hijack. Do you have a link to any resources where I can read up on why G29 should be used instead of G32?

                    I recently upgraded to RRF3.3b3

                    undefined 1 Reply Last reply 4 May 2021, 15:49 Reply Quote 0
                    • undefined
                      megaloduet @64bit
                      last edited by 4 May 2021, 15:49

                      @64bit https://duet3d.dozuki.com/Wiki/Setting_up_automatic_probing_of_the_print_bed

                      Obsolete information

                      The remainder of this page describes G32 bed probing for bed compensation, which is no longer recommended. For G29 bed probing, see Using mesh bed compensation.

                      undefined undefined 2 Replies Last reply 4 May 2021, 16:10 Reply Quote 0
                      • undefined
                        64bit @megaloduet
                        last edited by 4 May 2021, 16:10

                        @megaloduet Appreciate it. Seems as though Ill have no real benefit from changing at this time.

                        undefined 1 Reply Last reply 4 May 2021, 16:37 Reply Quote 0
                        • undefined
                          droftarts administrators @megaloduet
                          last edited by droftarts 5 Apr 2021, 16:25 4 May 2021, 16:14

                          @megaloduet G32 is NOT obsolete, and is still recommended. It's best to get your bed as physically level as possible; G29 mesh compensation is to compensate for anomalies in the bed surface, not for a skewed bed (though it can).

                          G32 just calls bed.g. You can use this in a number of ways; if you have multiple independent leadscrews (2, 3 or 4), they can level the bed plane: https://duet3d.dozuki.com/Wiki/Bed_levelling_using_multiple_independent_Z_motors
                          You can also use it if you have manual bed adjustment screws: https://duet3d.dozuki.com/Wiki/Using_the_manual_bed_levelling_assistant

                          The part of G32 that is obsolete is defining points to probe, which then creates a very crude bed mesh. It was deprecated in RRF 1.18.

                          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

                          undefined undefined 2 Replies Last reply 4 May 2021, 16:33 Reply Quote 2
                          • undefined
                            fcwilt @droftarts
                            last edited by 4 May 2021, 16:33

                            @droftarts said in Mesh Bed Level Issues:

                            The part of G32 that is obsolete is defining points to probe, which then creates a very crude bed mesh. It was deprecated in RRF 1.18.

                            Ian

                            Thanks for providing that information. You saved me some work.

                            Frederick

                            Printers: a small Utilmaker style, a small CoreXY and a E3D MS/TC setup. Various hotends. Using Duet 3 hardware running 3.4.6

                            1 Reply Last reply Reply Quote 0
                            • undefined
                              fcwilt @64bit
                              last edited by 4 May 2021, 16:37

                              @64bit said in Mesh Bed Level Issues:

                              @megaloduet Appreciate it. Seems as though Ill have no real benefit from changing at this time.

                              Unless in the future, behind the scenes, G32 and G29 do something unique to leveling (G32) or mesh compensation (G29).

                              If you "convert" now to using G32 and/or G29 as intended you will be ready for any future changes.

                              Frederick

                              Printers: a small Utilmaker style, a small CoreXY and a E3D MS/TC setup. Various hotends. Using Duet 3 hardware running 3.4.6

                              1 Reply Last reply Reply Quote 0
                              • undefined
                                megaloduet @droftarts
                                last edited by 4 May 2021, 17:07

                                @droftarts do you have an advice in regards to the topic main problem ?

                                undefined undefined 2 Replies Last reply 4 May 2021, 17:28 Reply Quote 1
                                • undefined
                                  Phaedrux Moderator
                                  last edited by 4 May 2021, 17:22

                                  Two things have been suggested so far that stand out as good next steps.

                                  1. rotate the build surface and see how it changes the problem.
                                  2. try and shim up or adjust the bed mounting to remove that tilt.

                                  Couple other things I can think of. Clean the build surface thoroughly. PID tune the heaters.

                                  Z-Bot CoreXY Build | Thingiverse Profile

                                  undefined 1 Reply Last reply 4 May 2021, 17:34 Reply Quote 0
                                  • undefined
                                    fcwilt @megaloduet
                                    last edited by 4 May 2021, 17:28

                                    @megaloduet said in Mesh Bed Level Issues:

                                    @droftarts do you have an advice in regards to the topic main problem ?

                                    I wonder if it has anything to do with trying to print on a tilted surface?

                                    When you look at some of the graphics showing how the filament is laid down as a flattened strip adjusting the height alone doesn't compensate for the fact the surface is tilted.

                                    Is the tilt enough to be causing your problem? I just don't know, I have never tried to print on a surface as tilted as yours.

                                    All of my printers either have manual leveling screws for the bed or do automatic leveling using multiple Z steppers and the beds are pretty well leveled.

                                    Here is one of my printers height map. You can see that it has some unevenness but overall it is level.

                                    FT5 height map.jpg

                                    Printers: a small Utilmaker style, a small CoreXY and a E3D MS/TC setup. Various hotends. Using Duet 3 hardware running 3.4.6

                                    1 Reply Last reply Reply Quote 0
                                    • undefined
                                      megaloduet @Phaedrux
                                      last edited by 4 May 2021, 17:34

                                      @phaedrux rotating the buildplate 90° has a slight improvement.
                                      Will test another buildplate tomorrow and also clean both.

                                      Shouldn't the meshbed leveling be capable of compensating the slight tilt? As done by the original Prusa ?

                                      Have ordered springs and knobs to adjust the bed will also try this (I am afraid I can't use it because of narrow space between Y carriage an frame)

                                      PID is tuned, this one I ruled out already.

                                      Will report the progress tomorrow with both buildplates cleaned. If both show the same artifacts I think at least we can rule out the buildplate.

                                      Next guess would be move the print around on the buildplate, maybe de magnets in the bed interfer with the hotend and push it down while printing over magnets ? Does this sound reasonable to test?

                                      1 Reply Last reply Reply Quote 1
                                      • undefined
                                        Phaedrux Moderator
                                        last edited by 4 May 2021, 18:07

                                        Yes mesh compensation can adjust for some amount of tilt by moving the nozzle up and down, but if the tilt is extreme there is also nozzle geometry to think about. One side of the nozzle will be closer to the bed than the other and might cause some dragging/digging. Not sure if that's what's happening here, but might be part of it?

                                        Z-Bot CoreXY Build | Thingiverse Profile

                                        1 Reply Last reply Reply Quote 1
                                        • undefined
                                          droftarts administrators @megaloduet
                                          last edited by 4 May 2021, 19:35

                                          @megaloduet said in Mesh Bed Level Issues:

                                          @droftarts do you have an advice in regards to the topic main problem ?

                                          Get the bed plane flat, so that bed mesh doesn’t have so much to do. My guess is that Z is binding moving up and down, or there’s some other inaccuracy in Z movement, which is why there can be a difference between one line and the next, or even within a line (it will usually be worse when going down).

                                          As the machine is a bed slinger with dual Z, most likely the two Z motors are out of sync, so one side (the left) is lower than the right. This may be enough to cause binding. Adjust one motor up or down until the bed plane is level. Or if you have a spare stepper driver on your Duet, separate the Z motors, and let the firmware level it up; see this, follow instructions for two motors, which is how I have mine set up: https://duet3d.dozuki.com/Wiki/Bed_levelling_using_multiple_independent_Z_motors

                                          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

                                          undefined 1 Reply Last reply 4 May 2021, 19:44 Reply Quote 0
                                          4 out of 29
                                          • First post
                                            4/29
                                            Last post
                                          Unless otherwise noted, all forum content is licensed under CC-BY-SA