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

    Mesh Compensation

    Scheduled Pinned Locked Moved
    Tuning and tweaking
    5
    38
    1.2k
    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 Corexy

      I'm really not convinced my bed mesh compensation is working...the first layer really suggests it isn't. I've used this machine hard for 3 years now and it knocks out prints as good as anything I've seen, but I really want to dial it right in now.

      My build plate is 1/4" cast ally tool plate with printbite surface, leveled very carefully with a feeler gauge, but it does have a couple of dips in it. The supplier has told me since that only the thicker plate (3/8" and up) have tighter tolerances for flatness.

      I run a mesh in the start of every print.

      Here's my bed.g file:

      ; bed.g
      ; called to perform automatic bed compensation via G32
      ;
      ; generated by RepRapFirmware Configuration Tool v2.1.2 on Thu Nov 21 2019 10:53:55 GMT+1100 (Australian Eastern Daylight Time)
      M561 ; clear any bed transform
      G29 ; probe the bed and enable compensation

      M557:

      M557
      Grid: X20.0:180.0, Y20.0:180.0, radius -1.0, X spacing 40.0, Y spacing 40.0, 25 points

      Start script in my slicer (S3D):

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

      It's a cartesian printer with a build plate of 195x195, but I went for a 180x180 mesh to keep it all in the envelope.

      Have I got this set up right, and how can I tell if it's working?

      I feel I'd better get this right before I mess about with pressure advance and other tuning.

      Cheers again for all the help I get on here

      ** I've used David's wizard by the way, but it asks for a bed "radius"...is it only for deltas?

      Just in case, here's what I got using a 180mm radius setting (a lot more than the existing bed.g file):

      ; bed.g file for RepRapFirmware, generated by Escher3D calculator
      ; 16 points, 6 factors, probing radius: 180, probe offset (4, 28)
      G30 P0 X0.00 Y155.74 Z-99999 H0
      G30 P1 X101.81 Y121.33 Z-99999 H0
      G30 P2 X167.31 Y29.50 Z-99999 H0
      G30 P3 X155.88 Y-90.00 Z-99999 H0
      G30 P4 X61.56 Y-169.14 Z-99999 H0
      G30 P5 X-61.56 Y-169.14 Z-99999 H0
      G30 P6 X-155.88 Y-90.00 Z-99999 H0
      G30 P7 X-174.25 Y30.72 Z-99999 H0
      G30 P8 X-104.14 Y124.11 Z-99999 H0
      G30 P9 X0.00 Y68.60 Z-99999 H0
      G30 P10 X63.92 Y36.90 Z-99999 H0
      G30 P11 X77.94 Y-45.00 Z-99999 H0
      G30 P12 X0.00 Y-90.00 Z-99999 H0
      G30 P13 X-77.94 Y-45.00 Z-99999 H0
      G30 P14 X-67.51 Y38.98 Z-99999 H0
      G30 P15 X0 Y0 Z-99999 S6

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

        @Corexy said in Mesh Compensation:

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

        why are you doing this?

        G28
        G29
        should be enough

        check with M122 if mesh is enabled while printing.

        very imporant check that your probe offset is correct
        post a your config.g and a picture of the mesh

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

          That start script in the slicer was setup with some advice here back in the day. If it's no good I'll change it.

          My probe offset is set and checked pretty carefully. It's always been consistent and reliable, but I've just fitted a new hot end that required me to adjust the mount to get the bottom of the IR sensor board close to 1.5mm above the tip of the nozzle.

          Here we go:

          ([url=https://imgur.com/lhDZMzc][img]http://i.imgur.com/lhDZMzc.png[/img][/url]
          )
          ; Configuration file for Duet WiFi
          ; executed by the firmware on start-up
          ;
          ; generated by RepRapFirmware Configuration Tool on Sat Oct 22 2016 18:28:19 GMT+1100 (AUS Eastern Daylight Time)

          ; General preferences

          G90 ; Send absolute coordinates...
          M83 ; ...but relative extruder moves

          ; Network
          M550 P"Zortrax M200" ; Set machine name
          M552 S1 ; Enable network and acquire dynamic address via DHCP

          ; Drives
          M584 X0 Y1 Z2 E3 ; Set drive mapping
          M569 P0 S1 ; Drive 0 goes forwards
          M569 P1 S1 ; Drive 1 goes forwards
          M569 P2 S0 ; Drive 2 goes backwards
          M569 P3 S1 ; Drive 3 goes forwards
          M350 X16 Y16 Z16 E16 I1 ; Configure microstepping without interpolation
          M92 X80 Y80 Z800 E118 ; Set steps per mm
          M566 X1600 Y1600 Z12 E800 ; Set maximum instantaneous speed changes (mm/min)
          M203 X18000 Y18000 Z1200 E8000 ; Set maximum speeds (mm/min)
          M201 X1200 Y1200 Z20 E1200 ; Set accelerations (mm/s^2)
          M906 X1100 Y1100 Z800 E500 I30 ; Set motor currents (mA) and motor idle factor in per cent
          M84 S30 ; Set idle timeout

          ; Endstops
          M574 Z0 S0 ; Define active low and unused microswitches
          M574 X1 Y1 S1 ; Define active high microswitches
          M208 X0 Y0 Z0 S1 ; Set axis minima
          M208 X195 Y195 Z175 S0 ; Set axis maxima

          ; Z-Probe
          M558 P1 X0 Y0 Z1 H5 F600 T6000 ; Set Z probe type to unmodulated, the axes for which it is used and the probe + travel speeds
          G31 P500 X0 Y0 Z2.465 ; Set Z probe trigger value, offset and trigger height
          M557 X20:180 Y20:180 S40

          ; Heaters
          M143 S280 ; Set maximum extruder temperature to 280C
          M143 H0 S140 ; Set maximum bed temperature to 140C
          M305 P0 T100000 B4000 C0 R4700 L0 H0 ; Set thermistor + ADC parameters for heater 0
          M305 P1 X200 ; Set thermistor + ADC parameters for heater 1 and remap it to channel 200
          M307 H0 A144.9 C625.3 D1.0 B0
          M307 H1 A892.1 C396.5 D6.4 V24.3 B0

          ; Tools
          M563 P0 D0 H1 ; Define tool 0
          G10 P0 X0 Y0 ; Set tool 0 axis offsets
          G10 P0 R0 S0 ; Set initial tool 0 active and standby temperatures to 0C
          T0

          ; Fans
          M106 P0 S0 I0 F500 H-1 ; Set fan 0 value, PWM signal inversion and frequency. Thermostatic control is turned off
          M106 P1 S1 I0 F500 H1 T45 ; Set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned on
          M106 P2 S1 I0 F500 H1 T45 ; Set fan 2 value, PWM signal inversion and frequency. Thermostatic control is turned on

          ; Custom settings are not configured

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

            @Corexy said in Mesh Compensation:

            M558 P1 X0 Y0 Z1 H5 F600 T6000 ; Set Z probe type to unmodulated, the axes for which it is used and the probe + travel speeds
            M557 X20:180 Y20:180 S40

            depending on your bed S40 is to large to be effective.

            if you dont have a probe? how do you do mesh calibration? manually?

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

              I have the mini IR probe.

              My bed is 195x195 square build area (the actual plate is 240x240 but it can't all be reached).

              Mate I don't even know what S40 means, so if you don't mind telling me what you'd put in your bed.g, config.g and start script, I'll take your word for it and appreciate your help.

              Cheers again,

              Neil.

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

                @Corexy said in Mesh Compensation:

                G31 P500 X0 Y0

                ok you need to configure the probe position.

                X and Y is the offset of the probe from the nozzle. X postive is to the your Y positive is behing. Without this your mesh will be inaccurate.

                M557 X20:180 Y20:180 S40

                change S40 to S15 or S10

                M574 Z0 S0 ; Define active low and unused microswitches

                change to
                M574 Z1 S2 ; set endstops controlled by probe

                post your homing scripts. they will prob be wrong.

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

                  I should point out that x and y have homing switches...the probe only does the bed level.

                  Does that change anything?

                  Thanks for helping with this. What's crazy is that despite me using this thing for years with little tuning/adjustment, I knock out some pretty good prints.

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

                    @Corexy said in Mesh Compensation:

                    I should point out that x and y have homing switches...the probe only does the bed level.
                    Does that change anything?

                    no

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

                      OK,

                      So my nozzle/probe offsets are:

                      X 4mm
                      Y 28mm

                      So my M557 becomes:

                      M557 X4:195 Y28:195 S10 (?)

                      Just a bit worried that the fans might bang into some hardware with these offsets. It's a tight fit in there.

                      My slicer start script:

                      G28 (home all?)
                      G29 (mesh probe?)

                      Nothing else at all? I should really tack the purge/wipe I was asking about in my other thread on here while I'm at it?

                      Any changes to bed.g?

                      Homing files...

                      homeall.g:

                      ; homeall.g
                      ; called to home all axes
                      ;
                      ; generated by RepRapFirmware Configuration Tool v2.1.2 on Thu Nov 21 2019 10:53:58 GMT+1100 (Australian Eastern Daylight Time)
                      G91 ; relative positioning
                      G1 H2 Z5 F6000 ; lift Z relative to current position
                      G1 H1 X-200 Y-200 F1800 ; move quickly to X and Y axis endstops and stop there (first pass)
                      G1 H2 X5 Y5 F6000 ; go back a few mm
                      G1 H1 X-200 Y-200 F360 ; move slowly to X and Y axis endstops once more (second pass)
                      G90 ; absolute positioning
                      G1 H2 X97.5 Y97.5 F6000 ; go to first bed probe point and home Z
                      G30 ; home Z by probing the bed

                      ; Uncomment the following lines to lift Z after probing
                      G91 ; relative positioning
                      G1 S2 Z5 F100 ; lift Z relative to current position
                      G90 ; absolute positioning

                      homex.g:

                      ; homex.g
                      ; called to home the X axis
                      ;
                      ; generated by RepRapFirmware Configuration Tool v2.1.2 on Thu Nov 21 2019 10:53:59 GMT+1100 (Australian Eastern Daylight Time)
                      G91 ; relative positioning
                      G1 H2 Z5 F6000 ; lift Z relative to current position
                      G1 H1 X-200 F1800 ; move quickly to X axis endstop and stop there (first pass)
                      G1 H2 X5 F6000 ; go back a few mm
                      G1 H1 X-200 F360 ; move slowly to X axis endstop once more (second pass)
                      G1 H2 Z-5 F6000 ; lower Z again
                      G90 ; absolute positioning

                      homey.g:

                      ; homey.g
                      ; called to home the Y axis
                      ;
                      ; generated by RepRapFirmware Configuration Tool v2.1.2 on Thu Nov 21 2019 10:53:59 GMT+1100 (Australian Eastern Daylight Time)
                      G91 ; relative positioning
                      G1 H2 Z5 F6000 ; lift Z relative to current position
                      G1 H1 Y-200 F1800 ; move quickly to Y axis endstop and stop there (first pass)
                      G1 H2 Y5 F6000 ; go back a few mm
                      G1 H1 Y-200 F360 ; move slowly to Y axis endstop once more (second pass)
                      G1 H2 Z-5 F6000 ; lower Z again
                      G90 ; absolute positioning

                      homez.g:

                      ; homez.g
                      ; called to home the Z axis
                      ;
                      ; generated by RepRapFirmware Configuration Tool v2.1.2 on Thu Nov 21 2019 10:53:59 GMT+1100 (Australian Eastern Daylight Time)
                      G91 ; relative positioning
                      G1 H2 Z5 F6000 ; lift Z relative to current position
                      G90 ; absolute positioning
                      G1 H2 X15 Y15 F6000 ; go to first probe point
                      G30 ; home Z by probing the bed

                      ; Uncomment the following lines to lift Z after probing
                      ;G91 ; relative positioning
                      ;G1 H2 Z5 F100 ; lift Z relative to current position
                      ;G90 ; absolute positioning

                      I do suspect my files are messy. I come on here asking things and get a line to add here and there. Would really love to have an expert here with me in front of the thing for a day...

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

                        @Corexy said in Mesh Compensation:

                        M557 X4:195 Y28:195 S10 (?)

                        no you change the probe offset in the G31 command like i posted.

                        Nothing else at all? I should really tack the purge/wipe I was asking about in my other thread on here while I'm at it?

                        lets get your mesh working first.

                        Any changes to bed.g?

                        bed.g is for G32 command which you are not using.

                        your homing files look fine

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

                          Ok, sorry my mistake

                          X and Y is the offset of the probe from the nozzle. X postive is to the your Y positive is behind. Without this your mesh will be inaccurate.

                          Not quite sure what you mean here...you mean that I enter a positive value offset if the probe is further "along" the axis than the nozzle tip, and negative if it is "behind"?

                          Thank you for your patience by the way.

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

                            that was posted regarding your
                            G31 P500 X0 Y0
                            command.

                            that command means the probe is at the same place as the nozzle is, which it is not as you are using a ir probe.

                            so you need to tell the duet where the ir senssor actualy is while assuming that the nozzle is at 0,0.

                            post a picture of your carriage.

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

                              @Veti said in Mesh Compensation:

                              that was posted regarding your
                              G31 P500 X0 Y0
                              command.

                              that command means the probe is at the same place as the nozzle is, which it is not as you are using a ir probe.

                              so you need to tell the duet where the ir senssor actualy is while assuming that the nozzle is at 0,0.

                              post a picture of your carriage.

                              OK, so I just went out there and moved the nozzle around the absolute outside of the build area via the touchscreen, and the nozzle travels the absolute limits of the build area and obstacles as it is. If I add these offsets is there any chance I'll bump into things, or should I do something to avoid that.

                              [img]https://i.imgur.com/kCMHC1Q.jpg[/img]

                              [img]https://i.imgur.com/bC9SaMB.jpg[/img]

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

                                @Corexy

                                try it with the hand on the power switch.

                                but if i remember correctly the offset does not change the mesh coordinates, as they are absolute nozzle parameter.

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

                                  @Veti

                                  also
                                  M208 X0 Y0 Z0 S1 ; Set axis minima
                                  M208 X195 Y195 Z175 S0 ; Set axis maxima

                                  this is a hard limit for your axis. if at X195 Y195 there is no problem. then you can not cause a problem with the mesh leveling.

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

                                    Yes, I'll keep the switch handy ha ha. But It still must home the axis' against the limit switches, so yes no offset was probably only messing up my mesh.

                                    G31 P500 X2 Y28 Z2.465

                                    I measured it a bit more accurately. So I run G29 and see what happens??

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

                                      @Corexy
                                      yes

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

                                        M557 X20:180 Y20:180 S10

                                        Ok, it's ticking over happily with the mesh (cold build plate), but it's going to take a lot longer with these 10mm intervals. Which is fine if it will give me a better first layer.

                                        To probe the entire (195x195) bed, should I take it out to the edges?

                                        M557 X5:190 Y5:190 S10

                                        And I'm also thinking should I:

                                        1. Warm build plate
                                        2. Home all
                                        3. Mesh probe (each time, as different bed temps will make different mesh)
                                        4. Purge/wipe
                                        5. Start print

                                        It would be really good to do the mesh probe with a cold nozzle as the ooze is a pain and I'm using an IR probe anyway. I don't mind at all the mesh taking a long time if I'm not picking ooze off the nozzle with tweezers the whole time.

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

                                          @Corexy said in Mesh Compensation:

                                          Ok, it's ticking over happily with the mesh (cold build plate), but it's going to take a lot longer with these 10mm intervals. Which is fine if it will give me a better first layer.
                                          To probe the entire (195x195) bed, should I take it out to the edges?
                                          M557 X5:190 Y5:190 S10

                                          post the picture of the mesh grid.

                                          going to a higher spacing depends on the quality of your build plate. the wider the spacing the less details it has to correct with.
                                          so if there are no irregulaties, you can get away with a wider spacing.

                                          with the bigger mesh: if your Y offset is 28 to probe at 5 it would need to move to Y-23, which is not allowed. for X it would work

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

                                            Yes, I can't "reclaim" the Y offset...mechanical obstacles. Makes a case for ally extrusion chassis in my next printer, built well oversize to the build plate.

                                            Running this now regardless, and it seems to be just doing what it can reach.

                                            M557 X5:190 Y5:190 S10

                                            Mate I really appreciate this help so much, but it's late now and the other half wants me to give it a rest for tonight.

                                            I'll have another look in the morning, but this has been a win so far.

                                            Cheers and thanks!

                                            [img]https://i.imgur.com/3hQysIH.png[/img]

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