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

    Beginner issue: storing Z-offset

    Scheduled Pinned Locked Moved
    Tuning and tweaking
    8
    30
    3.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.
    • westechundefined
      westech
      last edited by westech

      Please understand, I have 3 bed surface options. The Mirror prints AMAZING. Perfectly flat, but it is thicker than the regular "buildtech" surface by 1.4mm. Likewize I bought a Energetic Flex plate which I believe is even thicker than the mirror. So, I will be switching between them. (The flex plate has a very textured surface).

      The mechanical endstop I don't want to move. If I moved it up, then physically I could never reach the bed (besides the Z min trigger)

      This is actually very simple to set in Marlin with baby stepping and M500.

      I'm perplexed that G92 isn't saved using M500 in RRF?

      MintyTreborundefined fcwiltundefined Phaedruxundefined 4 Replies Last reply Reply Quote 0
      • MintyTreborundefined
        MintyTrebor @westech
        last edited by

        @westech I'm sure there are various ways of achieving this, but in my case where I have different z offsets per print surface I use the Z offset feature in my slicer profile.

        Screenshot 2021-07-26 164114.png

        I choose the thickest surface option to be the default (eg 0 z offset in the slicer) slicer profile and set printer firmware defaults (homing heights, offsets etc) for that print surface; then create different printer profiles for each additional print surface, and adjust the slicer z offset for each as required.

        I just have to remember to choose the correct printer profile for the appropriate print surface before slicing.

        (I am using a BL Touch so I do not have to worry about crashing the HE into the bed if the surface is not detectable with a inductive probe though.)

        Hope this helps.

        NodeDSF - Native Node-Red integration with Duet boards.
        BtnCmd - Customise DWC with user defined buttons/layouts/panels (DWC Plugin)
        ReleaseMgr - Duet update info inside DWC.
        Repo

        westechundefined 1 Reply Last reply Reply Quote 1
        • fcwiltundefined
          fcwilt @westech
          last edited by

          @westech said in Beginner issue: storing Z-offset:

          The mechanical endstop I don't want to move. If I moved it up, then physically I could never reach the bed (besides the Z min trigger)

          Well it doesn't have to be that way.

          The purpose of any endstop is to allow the firmware to establish that an axis is in a known position.

          That position can be anywhere along the axis as long as the firmware can use the endstop to accurately and unequivocally determine that position.

          Of course the endstop sensor has to be mounted in such a way as to allow this.

          I use IR beam break sensors which allow me to place the endstop near one end of the axis without preventing movement to the end of the axis.

          For example on a recent printer I built the Z endstop sensor triggers at Z=20mm and remains triggered from 20mm to 0mm.

          So the homing code looks something like this:

          G91
          G1 H1 Z-299 F3000
          G1 Z25
          G1 H1 Z-30 F300
          G92 Z20 ; since the endstop sensor triggers at 20mm this is where the actual Z position is set
          

          If I had to cope with different bed thicknesses I would set such an endstop sensor to trigger above the thickest bed and rely on the Z probe to establish the actual Z=0 datum for the current bed.


          In your case you could use a global variable to hold the Z offset from the endstop sensor position for each bed type. A macro could set the Z offset for the current bed type. The homing code would use the value in the global variable with G92 to set the Z position so that Z=0 was at the surface of the current bed type.

          Frederick

          Printers: a E3D MS/TC setup and a RatRig Hybrid. Using Duet 3 hardware running 3.4.6

          1 Reply Last reply Reply Quote 0
          • fcwiltundefined
            fcwilt @westech
            last edited by

            @westech said in Beginner issue: storing Z-offset:

            I'm perplexed that G92 isn't saved using M500 in RRF?

            G92 only sets the current position on an axis. It is not a constant value and thus cannot be saved in a meaningful way.

            Frederick

            Printers: a E3D MS/TC setup and a RatRig Hybrid. Using Duet 3 hardware running 3.4.6

            1 Reply Last reply Reply Quote 0
            • westechundefined
              westech @MintyTrebor
              last edited by

              @mintytrebor Thank you! I just checked Cura and Prusa Slicer and this is an excellent solution for me, unless I forget to switch the profiles. 🙂

              Again, the enstop I have is a mechanical switch. It is physically impossible for the printer to go beyond the switch.

              fcwiltundefined 1 Reply Last reply Reply Quote 0
              • fcwiltundefined
                fcwilt @westech
                last edited by

                @westech said in Beginner issue: storing Z-offset:

                Again, the enstop I have is a mechanical switch. It is physically impossible for the printer to go beyond the switch.

                I understand that it is mounted in such a way on your printer that it is impossible to move beyond it.

                But that is not an inherent characteristic of a mechanical switch.

                I have micro-switches (the kind with a lever) that are mounted on the Z axis in such a way that they are triggered over a range and do not block movement.

                Once the bed support bracket reaches the point where it triggers the switch the lever of the switch can just slide along the side.

                MF1 Z Endstop Switch.jpg

                Frederick

                Printers: a E3D MS/TC setup and a RatRig Hybrid. Using Duet 3 hardware running 3.4.6

                1 Reply Last reply Reply Quote 1
                • Phaedruxundefined
                  Phaedrux Moderator
                  last edited by Phaedrux

                  x; Z-Probe
                  M950 S0 C"servo0" ; create servo pin 0 for BLTouch
                  M558 P9 C"^probe" H5 F120 T6000 ; set Z probe type to bltouch and the dive height + speeds
                  G31 P500 X-40 Y-12 Z2.08 ; set Z probe trigger value, offset and trigger height
                  M557 X15:215 Y15:195 S20 ; define mesh gr

                  It looks like you have a BLTouch configured, but you're not using it in your homing files to actually probe and set the Z0 position. Doing this would solve all your problems and you don't have to worry about setting a Z offset or saving an offset, etc. You just measure the offset between the nozzle and probe trigger point once, save it, and you're good to go regardless of the bed surface because the probe checks the surface each time before the print when you home.

                  Do you not actually have a probe?

                  https://duet3d.dozuki.com/Wiki/Test_and_calibrate_the_Z_probe

                  Z-Bot CoreXY Build | Thingiverse Profile

                  1 Reply Last reply Reply Quote 1
                  • Phaedruxundefined
                    Phaedrux Moderator @westech
                    last edited by

                    @westech said in Beginner issue: storing Z-offset:

                    This is actually very simple to set in Marlin with baby stepping and M500.
                    I'm perplexed that G92 isn't saved using M500 in RRF?

                    That's a very marlin way of thinking.

                    You can use M500 P31 to save a trigger height for your probe (G31 Z) after it's been measured, but you can't save G92. That doesn't really make any sense. You don't need to save it because your homeall.g dictates what happens when you want to set the Z position. So just have G92 Z in there if you want to force a current position as Z#

                    Z-Bot CoreXY Build | Thingiverse Profile

                    1 Reply Last reply Reply Quote 1
                    • Phaedruxundefined
                      Phaedrux Moderator @westech
                      last edited by

                      @westech said in Beginner issue: storing Z-offset:

                      2)  I use Cura, And for some weird reason at the end of the print the filament retracted a good 6-7". It's not in my Cura G-code because I print the same thing on another printer running Marlin.  Any Thoughts.

                      You need to change Cura to use relative extrusion in the settings. It's likely set to absolute extrusion right now, and your end gcode probably has it do a small retraction, but since it's in absolute mode, it's not retracting a 2mm, it's going to the 2mm position which was way at the beginning of the print.

                      Z-Bot CoreXY Build | Thingiverse Profile

                      westechundefined 1 Reply Last reply Reply Quote 1
                      • westechundefined
                        westech @Phaedrux
                        last edited by

                        @phaedrux Greetings! Great feedback.

                        In reverse order. That weird Cura retraction only happened that one time. It could have been because Cura was set as MARLIN not RRF? All good now.

                        Please understand my approach. This is a new Ender 3. With Mellow Fly E3 running latest RRF. I'm not familiar with RRF. So, I move slowly adding new features. I Auto PID my hot end/bed. Tram my bed. Then dial in my Z height.

                        I do have a BL touch. But first I would like to understand in RRF how to set my Manual Zheight and save those peramiters. My other printer ruinning Marlin, is super fine tuned.

                        i will be integrating the BL touch next.

                        I really like RRF.

                        Phaedruxundefined 1 Reply Last reply Reply Quote 0
                        • Phaedruxundefined
                          Phaedrux Moderator @westech
                          last edited by

                          @westech said in Beginner issue: storing Z-offset:

                          But first I would like to understand in RRF how to set my Manual Zheight and save those peramiters.

                          There are two ways as has been mentioned above.

                          When the endstop switch is contacted during a homing move (G1 H1 Z) the Z position is set to the M208 Z minima value. This homing move is part of homeall.g or homez.g.

                          Now you can fine tune the Z position of the trigger such that Z0 equals the nozzle touching the bed by either adjusting the M208 minima in config.g, or using a G92 Z in the homing file to override the current position.

                          There is no "live Z tuning" per se. Just edit the file with the correct value.

                          Z-Bot CoreXY Build | Thingiverse Profile

                          westechundefined 1 Reply Last reply Reply Quote 0
                          • westechundefined
                            westech @Phaedrux
                            last edited by

                            @phaedrux Thanks, I think I got it.

                            What didn't work:

                            homeall.g

                            G92 Z-1.4 ; set Z position to axis minimum (you may want to adjust this)

                            If I changed G92 Z1.4 as a positive number it would respect that in the console. Displaying Z1.4

                            But I needed a negative number. G92 Z-1.4 was not respected. and would show it as Z0 in the console.


                            What worked was adding:

                            G1 Z1.4 F100
                            G92 Z0 ; set Z position to axis minimum (you may want to adjust this)


                            I am printing now and by triggering the endstop then Raising the Z Then G92 Z0. worked.

                            I really like how RRF can be adjusted so easily. I'm not going to miss going into Platform.io and recompiling Marlin everytime I have change a little thing.

                            Next stop the BL touch. But I know now how to adjust the Z for different bed heights.

                            Thanks.

                            Phaedruxundefined 1 Reply Last reply Reply Quote 1
                            • Phaedruxundefined
                              Phaedrux Moderator @westech
                              last edited by

                              @westech said in Beginner issue: storing Z-offset:

                              But I needed a negative number. G92 Z-1.4 was not respected. and would show it as Z0 in the console.

                              Why do you think you need a negative number? That would mean your nozzle is 1.4mm inside your bed. That makes no sense. If you're outside of the bed area and can safely move the nozzle below the bed plain, then you should change the M208 Z minima to allow that negative position.

                              Z-Bot CoreXY Build | Thingiverse Profile

                              westechundefined 1 Reply Last reply Reply Quote 0
                              • westechundefined
                                westech @Phaedrux
                                last edited by

                                @phaedrux Thank you, I haven't worked with the M208, so I will look into that. I'm going to start integrating the BL touch in the process, as I switch bed surfaces.

                                All I need to do is add G29 after G28 in my start G-code from my slicer?

                                When I execute G29, it takes forever, must be 5x5. Where do I set it to just do 4 corners and center, or 3x3?

                                Thanks.

                                fcwiltundefined 1 Reply Last reply Reply Quote 0
                                • fcwiltundefined
                                  fcwilt @westech
                                  last edited by fcwilt

                                  @westech said in Beginner issue: storing Z-offset:

                                  @phaedrux Thank you, I haven't worked with the M208, so I will look into that. I'm going to start integrating the BL touch in the process, as I switch bed surfaces.

                                  All I need to do is add G29 after G28 in my start G-code from my slicer?

                                  When I execute G29, it takes forever, must be 5x5. Where do I set it to just do 4 corners and center, or 3x3?

                                  Thanks.

                                  To cope with different bed heights you only need to set the Z=0 datum which involves moving the probe to some fixed location - I use the center of the bed - and issuing a G30.

                                  If the probe is configured correctly then the process will insure the Z=0 has the nozzle just touching the bed regardless of which bed you are using.

                                  Using mesh compensation (which is what G29 is for) is going to be a bit more difficult. Either you live with the time it takes to to create a proper height map (400 points - 20 x 20) or you create a height map for each bed surface and load the appropriate one based on the bed in use.

                                  To use an existing height map in that way you are counting on the consistency in your bed surfaces.

                                  With v3 firmware it is easy to establish a global variable the determines which height map is loaded. The value of the local variable would need to be set each time you changed to a different bed surface.

                                  There is no real point in doing a 4 point or 9 point height map - other than to help cope with an out-of-level bed. It certainly won't hope with minor bed irregularities.

                                  Frederick

                                  Printers: a E3D MS/TC setup and a RatRig Hybrid. Using Duet 3 hardware running 3.4.6

                                  westechundefined 1 Reply Last reply Reply Quote 0
                                  • westechundefined
                                    westech @fcwilt
                                    last edited by

                                    @fcwilt Good info. On my Marlin Ender 3 with a mirror. It is perfectly trammed and I haven't had to do any adjusting. Even though it also has a BL Touch, I don't usually use it because I get such consistent prints.

                                    I print mainly small prototype parts I design in Fusion, so I don't usually use the whole bed.

                                    i mainly got the Textured PEI bed for making nice face surfaces for project enclosures. The steel plate (Energetic) is far from being as flat as my Mirror.

                                    I will look into the G30. I have the RRF G-code "dictionary" always open on my screen:-)

                                    Thank you!

                                    1 Reply Last reply Reply Quote 1
                                    • Phaedruxundefined
                                      Phaedrux Moderator
                                      last edited by

                                      https://duet3d.dozuki.com/Wiki/ConfiguringRepRapFirmwareCartesianPrinter#Section_Homing_files
                                      https://duet3d.dozuki.com/Wiki/Connecting_a_Z_probe
                                      https://duet3d.dozuki.com/Wiki/Test_and_calibrate_the_Z_probe
                                      https://duet3d.dozuki.com/Wiki/Using_mesh_bed_compensation

                                      Z-Bot CoreXY Build | Thingiverse Profile

                                      westechundefined 1 Reply Last reply Reply Quote 1
                                      • westechundefined
                                        westech @Phaedrux
                                        last edited by

                                        @phaedrux Thanks for all your help!

                                        wealthybagundefined 1 Reply Last reply Reply Quote 0
                                        • wealthybagundefined
                                          wealthybag @westech
                                          last edited by Phaedrux

                                          he mechanical endstop I don't want to move. If I moved it up, then physically I could never reach the bed

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