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

Mesh levelling on 3.1.1

Scheduled Pinned Locked Moved
Tuning and tweaking
4
37
1.4k
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
    lael
    last edited by 18 Jan 2021, 00:44

    ; homey.g
    ; called to home the Y axis
    ;
    ; generated by RepRapFirmware Configuration Tool v3.1.4 on Tue Oct 20 2020 12:22:07 GMT+1100 (Australian Eastern Daylight Time)
    G91 ; relative positioning
    G1 H2 Z5 F6000 ; lift Z relative to current position
    G1 H1 Y-265 F1800 ; move quickly to Y axis endstop and stop there (first pass)
    G1 H2 Y5 F6000 ; go back a few mm
    G1 H1 Y-265 F360 ; move slowly to Y axis endstop once more (second pass)
    G1 H2 Z-5 F6000 ; lower Z again
    G90 ; absolute positioning

    1 Reply Last reply Reply Quote 0
    • undefined
      fcwilt
      last edited by fcwilt 18 Jan 2021, 00:45

      @lael said in Mesh levelling on 3.1.1:

      G31 -0.777 ; set the z height at which the probe will recognise it's z

      That line is incorrect.

      You should have at least the P X Y and Z parameters but you have none and a value all on it's own.

      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 @lael
        last edited by 18 Jan 2021, 00:46

        @lael said in Mesh levelling on 3.1.1:

        @fcwilt 0.00 is what shows up in web control

        If you comment out the G92 Z0 in homeall.g what value is displayed?

        Thanks.

        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

        undefined 1 Reply Last reply 18 Jan 2021, 00:56 Reply Quote 0
        • undefined
          lael
          last edited by 18 Jan 2021, 00:49

          ; homez.g
          ; called to home the Z axis
          ;
          ; generated by RepRapFirmware Configuration Tool v3.1.4 on Tue Oct 20 2020 12:22:07 GMT+1100 (Australian Eastern Daylight Time)
          G91 ; relative positioning
          G1 H2 Z5 F600 ; increase (drop) Z relative to current position by 5mm @300mm/min (5mm/sec)
          G1 H1 Z-265 F600 ; decrease Z until the endstop is triggered @10mm / sec
          G92 Z0 ; set Z position to axis minimum (you may want to adjust this)
          G1 H2 Z5 F300 ; lift Z relative to current position - Z=5 @6000mm/min (100mm/sec)
          G1 H1 Z-10 F180 ; move Z down until the endstop is triggered @3mm/sec

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

          1 Reply Last reply Reply Quote 0
          • undefined
            lael
            last edited by 18 Jan 2021, 00:52

            start.g

            G28 ;home all axis
            G0 X130 Y130 Z10 ; go to bed center, 10mm above
            G30 ; probe for datum ref point
            G29 S1 ; Load Grid Compensation
            T0 ; Selects Tool 0 (active temp)
            M703 ; Ensure filament specific settings are loaded
            G1 X10 Y10 ; move close to origin

            1 Reply Last reply Reply Quote 0
            • undefined
              lael
              last edited by 18 Jan 2021, 00:54

              G28 ;Home All Axis
              G92 E0 ;zero extruded length

              G0 X0 Y0 F9000 ; Go to front
              Slicer Start G Code:

              G0 Z0.20 ; Drop to 0.2 above bed
              G92 E0 ; zero the extruded length
              G1 X40 E35 F600 ; Extrude 35mm of filament in a 4cm line @600mm/min 60mm/sec
              G92 E0 ; zero the extruded length
              G1 E-1 F30 ; Retract a little
              G1 X80 F4000 ; Quickly wipe away from the filament line

              G0 F3600 X20 Y20 ;rapid movement to X20, Y20

              I had G29 S1 which was removed after creating the start.g macro

              1 Reply Last reply Reply Quote 0
              • undefined
                lael @fcwilt
                last edited by 18 Jan 2021, 00:56

                @fcwilt 0.71mm

                undefined 1 Reply Last reply 18 Jan 2021, 01:01 Reply Quote 1
                • undefined
                  fcwilt @lael
                  last edited by fcwilt 18 Jan 2021, 01:01

                  @lael said in Mesh levelling on 3.1.1:

                  @fcwilt 0.71mm

                  OK so the end stop triggers are 0.71 and at the point the Z axis stops moving.

                  Is that the actual Z position of the nozzle.

                  If you include the G92 Z0 you are telling the firmware that the Z position is 0.

                  So where exactly is the nozzle tip - at Z = 0.71 or Z = 0.00 or perhaps something else?

                  Thanks

                  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
                    last edited by 18 Jan 2021, 01:02

                    Can we see the code that you use to create the height map?

                    Thanks.

                    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

                    undefined 1 Reply Last reply 18 Jan 2021, 01:05 Reply Quote 0
                    • undefined
                      lael @fcwilt
                      last edited by 18 Jan 2021, 01:05

                      @fcwilt so far I've just been running through the mesh levelling tutorial / example and haven't made a macro for it. To remap I've gone through the entire procedure manually.

                      In terms of the nozzle tip, you mean relative to the bed?

                      undefined 1 Reply Last reply 18 Jan 2021, 01:08 Reply Quote 0
                      • undefined
                        fcwilt @lael
                        last edited by 18 Jan 2021, 01:08

                        @lael said in Mesh levelling on 3.1.1:

                        I've gone through the entire procedure manually.

                        Did you do a G30 prior to the G29 that actually started the probing of the bed?

                        In terms of the nozzle tip, you mean relative to the bed?

                        Yes.

                        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

                        undefined 1 Reply Last reply 18 Jan 2021, 01:19 Reply Quote 0
                        • undefined
                          lael @fcwilt
                          last edited by 18 Jan 2021, 01:19

                          @fcwilt said in Mesh levelling on 3.1.1:

                          @lael said in Mesh levelling on 3.1.1:

                          I've gone through the entire procedure manually.

                          Did you do a G30 prior to the G29 that actually started the probing of the bed?

                          yes

                          In terms of the nozzle tip, you mean relative to the bed?

                          The bed is quite warped, but at the center where I run the G30's for printing etc, it is just the right height above the bed to grip a piece of paper lightly. So I guess ~0.1 or a little less or so.

                          undefined 1 Reply Last reply 18 Jan 2021, 01:24 Reply Quote 0
                          • undefined
                            fcwilt @lael
                            last edited by 18 Jan 2021, 01:24

                            @lael

                            If you are going to use the G92 Znnn command you should determine as best you can what the actual nozzle position is and use that value.

                            Did you correct your G31 command and include the P X Y and Z parameters?

                            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
                              lael
                              last edited by 18 Jan 2021, 01:53

                              So what is the relationship between all of the Z points?

                              Here is my understanding so far:

                              G92 Z0 sets printing 0 - so the firmware is expecting 0 to be where the nozzle should be when putting down the first layer.

                              G31 sets the location where the probe will be triggered - so in my case it is a piezo sensor which is triggered when the nozzle impacts the bed. So a -0.7mm makes sense as that is when the nozzle will actually contact the bed?

                              Home Z will move the head/bed (bed in my case) to the end stop, which will reference that location as zero.

                              Then mesh compensation will apply the additional compensation it has found above or below the Z point. The G30 datum point - sets the location at which the mesh map will be applied from? or does it overrride the G31 in config.g?

                              undefined undefined 2 Replies Last reply 18 Jan 2021, 02:46 Reply Quote 0
                              • undefined
                                Phaedrux Moderator @lael
                                last edited by 18 Jan 2021, 02:46

                                @lael said in Mesh levelling on 3.1.1:

                                The G30 datum point - sets the location at which the mesh map will be applied from? or does it overrride the G31 in config.g?

                                G30 uses the trigger height from G31

                                Usually when you have a probe, you don't use a Z min endstop at all. You use the probe for homing Z and creating the mesh. That way the Z0 reference is always the same based on the probe.

                                Z-Bot CoreXY Build | Thingiverse Profile

                                undefined 1 Reply Last reply 18 Jan 2021, 04:13 Reply Quote 0
                                • undefined
                                  fcwilt @lael
                                  last edited by fcwilt 18 Jan 2021, 02:49

                                  @lael said in Mesh levelling on 3.1.1:

                                  G92 Z0 sets printing 0 - so the firmware is expecting 0 to be where the nozzle should be when putting down the first layer.

                                  It's essential that the firmware knows the actual position of the nozzle on the X, Y and Z axes. For the Z axis that position can be set using an end stop or a Z probe. While the end stop references the frame, the Z probe references the bed which is better because any changes due to the heating of the bed are compensated for with each setting of the Z=0 datum.

                                  G31 sets the location where the probe will be triggered - so in my case it is a piezo sensor which is triggered when the nozzle impacts the bed. So a -0.7mm makes sense as that is when the nozzle will actually contact the bed?

                                  Not exactly. When the Z probe is triggered the Z trigger height value in G31 is used to set the firmware's Z position value so that the firmware "knows" where the nozzle is positioned on the Z axis. If the value in G31 is wrong the firmware's "knowledge" of the nozzle position will be wrong.

                                  Home Z will move the head/bed (bed in my case) to the end stop, which will reference that location as zero.

                                  Just as the G31 Z trigger height value is used to set the Z position value when the Z probe is triggered the G92 Znnn is used to set the Z position value when the end stop is triggered. Naturally the nnn value needs to match the actual Z position when the end stop is triggered.

                                  Then mesh compensation will apply the additional compensation it has found above or below the Z point. The G30 datum point - sets the location at which the mesh map will be applied from? or does it overrride the G31 in config.g?

                                  The G30 sets the Z=0 datum. The G29 probing is determining the Z difference at each probe point in reference to the point used for G30 - the differences can be plus or minus. Thus the same XY position must always be used when setting the Z=0 datum with G30.

                                  Since the Z=0 datum determines the plus/minus Z values in the height map it is necessary to use G30 when creating the height map AND when loading the height map.

                                  If for some reason the Z=0 datum used when creating the height map differs significantly from the Z=0 datum used when later loading the height map you can get the error about the Z offset.

                                  I hope that covers it and I have'nt made any errors - it's late here.

                                  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

                                  undefined 1 Reply Last reply 18 Jan 2021, 04:11 Reply Quote 1
                                  • undefined
                                    lael @fcwilt
                                    last edited by 18 Jan 2021, 04:11

                                    @fcwilt So if no G30 was used prior to loading a mesh map, what does it use as the datum? the value from G31, or maybe the current zero point?

                                    1 Reply Last reply Reply Quote 0
                                    • undefined
                                      lael @Phaedrux
                                      last edited by 18 Jan 2021, 04:13

                                      @Phaedrux I know a lot of people don't, however, with a piezo they will trigger during travel moves as well, so while good as a probe are an unreliable z stop.

                                      Plus, the way I have it set up if the probe fails, the optical end stop will stop the machine. If that sensor fails in the heated chamber, then the estop connected limit switch will prevent hardware damage.

                                      1 Reply Last reply Reply Quote 0
                                      • undefined
                                        Phaedrux Moderator
                                        last edited by 18 Jan 2021, 05:25

                                        That's fine. There's nothing wrong with using both an endstop and a probe. The important thing to avoid unintended offsets with the mesh, is to ensure the probe is used to set Z0 before the mesh is created or loaded. So as long as you're doing a G30 before G29 or G29 S1, you're good to go.

                                        If no G30 is used before loading the heightmap the Z position is defined by your endstop if that's what you've used to home it. In other words, it'll be whatever the distance is between your nozzle tip and bed surface when the endstop is triggered.

                                        Z-Bot CoreXY Build | Thingiverse Profile

                                        1 Reply Last reply Reply Quote 0
                                        • undefined
                                          lael
                                          last edited by lael 18 Jan 2021, 06:30

                                          ok, so I've modified start.g to include a G92 Z0 using the probe as follows:

                                          G28 ;home all axis

                                          changes here:
                                          G0 X130 Y130 Z10 ; go to bed center, 10mm above
                                          G30 S-1 ; test - send to probe contact with bed
                                          G92 Z0 ; set Z0 to probe contact on bed (hoping that then G30 will account for actual bed height...)

                                          G0 X130 Y130 Z10 ; go to bed center, 10mm above
                                          G30 ; probe for datum ref point
                                          G29 S1 ; Load Grid Compensation
                                          T0 ; Selects Tool 0 (active temp)
                                          M703 ; Ensure filament specific settings are loaded
                                          G1 X10 Y10 ; move close to origin

                                          That seems to be giving the expected results from mesh levelling, but is that a bad idea?

                                          undefined 1 Reply Last reply 18 Jan 2021, 06:31 Reply Quote 0
                                          26 out of 37
                                          • First post
                                            26/37
                                            Last post
                                          Unless otherwise noted, all forum content is licensed under CC-BY-SA