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

    I think I would like a variation on M208

    Scheduled Pinned Locked Moved
    Firmware wishlist
    4
    14
    279
    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.
    • fcwiltundefined
      fcwilt
      last edited by

      Hi,

      Now perhaps I am simply overlooking the obvious and this suggestion makes no sense.

      Just the same, I am thinking I would benefit from a variation of M208 which would be used to set limits based on User Position, as opposed to Machine Position as M208 does.

      Right now I am working on a printer that allows tool changing.

      And as suggested the Z probe offsets are all 0 and the tools offsets are with respect to that.

      When a tool is mounted the M208 limits don't have the desired effect as the tool offsets result in allowing the tool to positioned outside the bed, typically running into other parts of the printer.

      Yes, I can adjust M208 for each tool as needed but it would be simpler to be able to use a single command to prevent the User Position from exceeding desired limits.

      That type of limit, with the same settings, would apply to any tool regards of offset settings.

      Just my two cents.

      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

      oliofundefined 1 Reply Last reply Reply Quote 0
      • oliofundefined
        oliof @fcwilt
        last edited by

        @fcwilt if you set the tool offsets with G10, they should apply towards the reference head point, which is Tool 0, to which M208 applies. Is that not sufficient in your case?

        <>RatRig V-Minion Fly Super5Pro RRF<> V-Core 3.1 IDEX k*****r <> RatRig V-Minion SKR 2 Marlin<>

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

          @oliof said in I think I would like a variation on M208:

          @fcwilt if you set the tool offsets with G10, they should apply towards the reference head point, which is Tool 0, to which M208 applies. Is that not sufficient in your case?

          I was going by the E3D motion system configuration as posted by dc32 a long time ago.

          For the Z probe there is this:

          G31 P200 X0 Y0 Z0
          

          Notice all the offsets are 0.

          For the tools there is this:

          G10 P0 X-9 Y39 Z-5
          G10 P1 X-9 Y39 Z-5
          G10 P2 X23 Y41 Z-5.65
          G10 P3 X23 Y41 Z-5.65
          

          Based on my testing this makes the Z probe the "printhead reference point" and the axis limits as specified by M208 are referenced to it, the Z probe.

          This is the XY part of my M208:

          M208 X-150:150 Y-100:100
          

          And sure enough the tip of the Z probe can never be moved outside of those limits (assuming the limits are being respected because M564 H1 S1 has been executed at sometime).

          The limits set by M208 apply to machine position, whereas the tool offsets set by G10 change the user position when a tool is active (T0, T1, T2 T3 have been executed).

          It's true that a normal G90 G1 move puts the tool where expected. For example G90 G1 Y100 moves any of my tools to Y=100.

          The problem is the machine position at the point is Y=63 because the tool Y offsets are all Y=37.

          Thus you can, using G90 G1 moves, also move the tool anywhere in the Y range from Y=100 to Y=137, which is off the print bed and can strike other parts of the printer.

          Maybe there is a better way.

          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

          T3P3Tonyundefined 1 Reply Last reply Reply Quote 1
          • T3P3Tonyundefined
            T3P3Tony administrators @fcwilt
            last edited by

            @fcwilt I see what you are saying. I have a range of different tool sizes in my tool changer and the pickup head without a tool fitted is what I set my axis limits with (because I home without a tool picked up). With a tool picked up I cannot reach the limits without crashing.

            On your machine would the tool specifically limits always be inside the machine limits?

            www.duet3d.com

            oliofundefined fcwiltundefined 2 Replies Last reply Reply Quote 0
            • oliofundefined
              oliof @T3P3Tony
              last edited by

              @T3P3Tony I would adjust the M208 limits in the tool change macros but I can see how that's fraught to errors if a tool change fails or tool change with P0 is required.

              <>RatRig V-Minion Fly Super5Pro RRF<> V-Core 3.1 IDEX k*****r <> RatRig V-Minion SKR 2 Marlin<>

              T3P3Tonyundefined fcwiltundefined 2 Replies Last reply Reply Quote 0
              • T3P3Tonyundefined
                T3P3Tony administrators @oliof
                last edited by

                @oliof yes it not ideal. For some situations the idea of a per tool keepout zone can work.

                www.duet3d.com

                1 Reply Last reply Reply Quote 2
                • fcwiltundefined
                  fcwilt @T3P3Tony
                  last edited by

                  @T3P3Tony said in I think I would like a variation on M208:

                  On your machine would the tool specifically limits always be inside the machine limits?

                  The printer has enough extra travel that the tools, even with a +37 Y offset (the X is 0) can reach the entire printable area without any issues with hitting other bits.

                  What I have resorted to is a routine, called set_axis_limits, which accepts one or two parameters, that I call at appropriate times, to modify the M208 limits.

                  The routine does the math based on values from the object model and the only constants were the values needed to allow reaching the tool mounts when changing tools.

                  They were not hard to determine, The only "risk" is being sure to call the routine at the right times with the right parameters.

                  It may be the only practical way given the issues accompanying a tool changing feature.

                  But I have a gut feeling there is a better way that would require some firmware features added, basically doing in firmware what I now do in code, but the firmware would always make the right adjustment at the right time.

                  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
                  • fcwiltundefined
                    fcwilt @oliof
                    last edited by

                    @oliof said in I think I would like a variation on M208:

                    @T3P3Tony I would adjust the M208 limits in the tool change macros but I can see how that's fraught to errors if a tool change fails or tool change with P0 is required.

                    That is what I am now doing but it is not perfect as it assumes, as of now, that everything works as it should.

                    Dealing with tool change failures is something I need to think more about.

                    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

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

                      @fcwilt if all your tools are the same size then you should be able to adjust the M208 limits to define the available area that any one of the tools can reach, which will be smaller than the area that the probe can reach. If your tools have different sizes, then either you need to define the available print area in M208 to correspond to the print area that all tools can reach, or change the M208 limits in the tool change files as I do.

                      In theory we could add a command to specify for each tool the X and Y dimensions in excess of the standard values assumed by M208; but unless tool changers become a lot more popular then I think the existing method of adjusting M208 limits in the tool change files is satisfactory.

                      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

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

                        @dc42

                        I agree that adjusting M208 is the most practical solution given the number of customers that would benefit from you spending time doing something in the firmware.

                        I have one routine that I can pass a tool number, a probe number or put/get flag and it adjusts M208 for each situation.

                        The code is not complicated, relies on axis and offset values from the object model to do most of the work.

                        The only hardcode values are those that "expand" M208 to allow safe access to the tool docks.

                        The only thing I haven't solved is a way to create a "barrier" around the Z axis hardware, which can be struck when doing put/get moves if the put/get code has a flaw.

                        I quite pleased with the result.

                        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

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

                          @fcwilt can you use the keepout zone function to avoid the Z hardware?

                          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

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

                            @dc42 said in I think I would like a variation on M208:

                            @fcwilt can you use the keepout zone function to avoid the Z hardware?

                            I don't know if I can use it because I have never heard of it.

                            Where can I read about it?

                            Thank you.

                            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

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

                              @fcwilt https://docs.duet3d.com/User_manual/Reference/Gcodes#m599-define-keepout-zone.

                              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

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

                                @dc42 said in I think I would like a variation on M208:

                                @fcwilt https://docs.duet3d.com/User_manual/Reference/Gcodes#m599-define-keepout-zone.

                                Thank you.

                                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
                                • First post
                                  Last post
                                Unless otherwise noted, all forum content is licensed under CC-BY-SA