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

    Running auto bed compensation at start of print.

    Scheduled Pinned Locked Moved
    General Discussion
    4
    26
    4.3k
    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.
    • Corexyundefined
      Corexy
      last edited by

      @dc42:

      See the link posted by DjDemonD 2 posts earlier.

      Yes I did thank you, and the question just below was to ask which of the 2 forms offered in the wiki would be best for me, as well as a question that wasn't answered there.

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

        The first form of M557 (specifying individual points) is no longer supported from firmware 1.18 onwards, so use the second.

        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
        • Corexyundefined
          Corexy
          last edited by

          I've set the bed.g file as follows:

          ; bed.g
          ; called to perform automatic bed compensation via G32
          ;
          ; generated by RepRapFirmware Configuration Tool on Sat Oct 22 2016 18:28:19 GMT+1100 (AUS Eastern Daylight Time)

          ; Clear any bed transform
          M561

          ; Home all
          G28

          ; Probe the bed
          G29

          ; Absolute positioning
          G90

          ; Go to center bed probe point and home the Z axis
          G1 X97.5 Y97.5 F4800

          G30

          ; Uncomment the following line to lift the nozzle after probing
          G1 Z50 F500

          But the console shows I ran a G32 instead of a G29, and the values are different to the mesh map

          6:06:07 PMG32
          25 points probed, mean error -0.129, deviation 0.124
          Height map saved to file heightmap.csv

          What have I missed here?

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

            The console will show that you ran G32 because that is the command you sent from the console.

            What exactly do you mean by "the values are different to the mesh map"?

            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
            • Corexyundefined
              Corexy
              last edited by

              Thank you,

              The mesh map graphic screen that comes up at the end of the probe shows these results:

              Number of probe points: 25

              Probe area: 256.0 cm²

              Maximum deviations: -0.312 / 0.104 mm
              Mean error: 0.118 mm

              RMS error: 0.147 mm

              Yet the G code console shows this:

              G32
              25 points probed, mean error -0.076, deviation 0.125
              Height map saved to file heightmap.csv

              If you look at my bed.g file above, I removed G32 and the 5 point routine and replaced it with G29.

              How am I still sending G32?

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

                1. The auto bed compensation button in DWC sends G32. That command runs the bed.g file.

                2. You are correct, DWC displays different deviation data from the console:

                • in the console, the mean error is just the average height error, which may be positive of negative. In DWC is it the average absolute error, so it will always be positive.

                • in the console, the deviation is the RMS deviation from the mean, so it is the deviation after subtracting out any error in the average Z-0 position. It is a measure of how flat the printing plane is, and will be zero if the bed is perfectly flat, even if probing detects that the Z=0 positions is out. In DWC ii is the RMS height error, so it is not a measure of flatness of the printing plane because it also includes any general area in the Z=0 position.

                I'll discuss this with chrishamm, the author of DWC.

                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
                • Corexyundefined
                  Corexy
                  last edited by

                  Did I inadvertently stumble upon something there?

                  I've got the start script in S3D successfully running G29 now, and as the whole reason for wanting to do it was the varying bed temps I'm running, I'm happy to do it at the start of each print.

                  Thanks very much for the points as I get my head around the whole Gcode thing.

                  1 Reply Last reply Reply Quote 0
                  • Corexyundefined
                    Corexy
                    last edited by

                    Ok, so this has made a great improvement in my first layer.

                    In the starting script (in S3D) I added this, which is exactly the same as my bed.g file:

                    G29 S2
                    G28
                    G29
                    G90
                    G1 X97.5 Y97.5 F4800
                    G30
                    G1 Z5 F500

                    I am now getting PERFECT and consistent first layer thickness right across the print, and have reduced my slicer Z offset from -0.25 to -0.1.

                    Mechanically my bed is leveled perfectly, but despite using cast ally precision plate there is still some runout which I've been struggling with.

                    While I didn't quite understand the explanation above regarding the difference between in the deviation data from the console, I can see quite plainly that (for my setup) this works and the other doesn't.

                    I'm also very happy with this method, as when using a different bed temp/material/profile, you're getting a bed compensation directly related to the exact bed conditions caused by that profile.

                    One weird thing though is that longer free movements between printing points are now jerky, short movements are unaffected.

                    I've touched nothing else but the bed.g file and added the same file to the slicer start script.

                    I strongly suspect that these jerky movements are the same 40mm long distance that I entered as the probing points.

                    It's had no bad effect so far, but is a little annoying.

                    Any reason this would happen?

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

                      The reason for the jerky movements is the changes in Z speed due to mesh bed levelling. Increasing allowed Z jerk in the M566 command will get rid of it, if it doesn't cause the Z motor to skip steps.

                      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
                      • Corexyundefined
                        Corexy
                        last edited by

                        @dc42:

                        The reason for the jerky movements is the changes in Z speed due to mesh bed levelling. Increasing allowed Z jerk in the M566 command will get rid of it, if it doesn't cause the Z motor to skip steps.

                        Thanks David,

                        That was it, the lowest jerk setting I got it to work at was 1250, up from 900.

                        I took it up to 1400 with no skipping, but didn't like the feel of the machine at that setting. Less is more.

                        I had also took the XY steppers up from 1000 to 1100mA thinking that was the problem before that, but have left them there and all feels good.

                        This is working very well on all materials, and I would recommend others try this in their start script, as it's got to be more accurate than saving a mesh map at one bed temp then using it at a completely different temperature.

                        I'll leave it all as I have it set up now regarding bed leveling, thanks all for the help.

                        1 Reply Last reply Reply Quote 0
                        • Whitewolfundefined
                          Whitewolf
                          last edited by

                          I would recommend sending your head to 00 or better a negative position if possible then extruding 15mm of filament at the end of your start script this will make sure that when your print starts it is flowing and has a clean bed

                          Exploring the universe wherever the tech blows

                          1 Reply Last reply Reply Quote 0
                          • Corexyundefined
                            Corexy
                            last edited by

                            @Whitewolf:

                            I would recommend sending your head to 00 or better a negative position if possible then extruding 15mm of filament at the end of your start script this will make sure that when your print starts it is flowing and has a clean bed

                            I'm not quite sure what that means, but I have my first layer at 150% height and 120% width, so my Z offset of -0.1mm is putting my first layer at 0.2mm with a bit more extrusion stuffed in there.

                            I'm running 2-4 rounds of brim in the first layer, depending on the size of the printed piece, and am having no problem with the nozzle being primed or bed adhesion at all.

                            First layers are pretty nice, bordering on beautiful, with a very minor elephants foot and stuck nicely to my printbite surface.

                            Nozzle zero height is set exactly as per the wiki instructions, and bed is leveled very carefully with a feeler guage.

                            If you're meaning something else, sorry please explain further, but I'm pretty happy with the result I'm getting here regarding my first layer.

                            **Sorry, you're meaning to but the nozzle hard onto the bed then extrude some plastic to "pressure it up" before printing?

                            Only concern I'd have there would be marking the print surface. Contrary to what they say, Printbite can be damaged by a hot nozzle pressing on it.

                            But sure, please give me an example of the script you'd use to do that and I'll try it.**

                            1 Reply Last reply Reply Quote 0
                            • Whitewolfundefined
                              Whitewolf
                              last edited by

                              I use a 3mm sheet of polycarbonate (black) so yeah that would harm the surface too. What I meant was sending the print head to a home position like X0 Y0… your start code seems to leave the head in the middle of the bed after homing. On my printer I am able to move the print head beyond the bed into X-14 Y-7 but this is not possible on all setups.

                              I wouldn't want to build pressure by dragging the nozzle across the surface. What I have found at least is not every print is going to have a successful start if a certain amount of plastic has not been extruded first (this usually shows its ugly head around cold starts or jams).

                              So in my start code in S3D I do this:

                              [c]M572 D0 S0.1 ; Pressure advance
                              M83 ; Set extruder to relative mode
                              M109 S170 ; Set extruder temp to 170C cold enough to avoid ooze but get some temp on it
                              M564 S0 ; Can go outside the print area limits
                              M190 S[bed1_temperature] ; wait for bed temp
                              G28 ; Home all axes
                              G29 ; Mesh bed compensation
                              G1 X-37 Y-7 F12000 ; go to X=-37 Y=-7 (parks head close to home)
                              M109 S[extruder0_temperature] ; wait for extruder temp
                              G1 E15 F300 ; Extrude to prime
                              M564 S1 ; set again the safe area limits[/c]

                              Exploring the universe wherever the tech blows

                              1 Reply Last reply Reply Quote 0
                              • Whitewolfundefined
                                Whitewolf
                                last edited by

                                P.S. the M564 commands are only needed if you are able to move your print head into a negative position (in other words not over the bed) this command allows you to move beyond the limits you previously setup, if you cant the sending to X0 Y0 would be my next move

                                Exploring the universe wherever the tech blows

                                1 Reply Last reply Reply Quote 0
                                • Corexyundefined
                                  Corexy
                                  last edited by

                                  I don't know mate, seems like 6 to one half a dozen to the other.

                                  Mine heats both bed and extruder to full temp before printing, and yes it does go to the center twice…once after initial homing and then again after mesh bed leveling to reset the nozzle height, but I see no real harm in it.

                                  I don't use any pressure advance, do you have a bowden extruder?

                                  I do like how to use 170 degC extruder temp before print start to avoid oozing (which is a pain in the arse), but I want my bed at full temp before probing.

                                  Just goes to show how many options are available for us to use, and I'm thinking some of your script blended with mine might be good for my application.

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