• Tags
  • Documentation
  • Order
  • Register
  • Login
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.
  • undefined
    fcwilt
    last edited by 22 Mar 2025, 00:14

    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

    undefined 1 Reply Last reply 22 Mar 2025, 07:20 Reply Quote 0
    • undefined
      oliof @fcwilt
      last edited by 22 Mar 2025, 07:20

      @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<>

      undefined 1 Reply Last reply 22 Mar 2025, 08:20 Reply Quote 0
      • undefined
        fcwilt @oliof
        last edited by 22 Mar 2025, 08:20

        @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

        undefined 1 Reply Last reply 22 Mar 2025, 08:54 Reply Quote 1
        • undefined
          T3P3Tony administrators @fcwilt
          last edited by 22 Mar 2025, 08:54

          @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

          undefined undefined 2 Replies Last reply 22 Mar 2025, 09:57 Reply Quote 0
          • undefined
            oliof @T3P3Tony
            last edited by 22 Mar 2025, 09:57

            @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<>

            undefined undefined 2 Replies Last reply 22 Mar 2025, 10:01 Reply Quote 0
            • undefined
              T3P3Tony administrators @oliof
              last edited by 22 Mar 2025, 10:01

              @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
              • undefined
                fcwilt @T3P3Tony
                last edited by 22 Mar 2025, 13:06

                @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
                • undefined
                  fcwilt @oliof
                  last edited by 22 Mar 2025, 13:08

                  @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

                  undefined 1 Reply Last reply 24 Mar 2025, 20:07 Reply Quote 1
                  • undefined
                    dc42 administrators @fcwilt
                    last edited by 24 Mar 2025, 20:07

                    @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

                    undefined 1 Reply Last reply 25 Mar 2025, 01:59 Reply Quote 0
                    • undefined
                      fcwilt @dc42
                      last edited by 25 Mar 2025, 01:59

                      @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

                      undefined 1 Reply Last reply 25 Mar 2025, 08:36 Reply Quote 0
                      • undefined
                        dc42 administrators @fcwilt
                        last edited by 25 Mar 2025, 08:36

                        @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

                        undefined 1 Reply Last reply 25 Mar 2025, 10:20 Reply Quote 0
                        • undefined
                          fcwilt @dc42
                          last edited by 25 Mar 2025, 10:20

                          @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

                          undefined 1 Reply Last reply 25 Mar 2025, 13:17 Reply Quote 0
                          • undefined
                            dc42 administrators @fcwilt
                            last edited by 25 Mar 2025, 13:17

                            @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

                            undefined 1 Reply Last reply 25 Mar 2025, 13:40 Reply Quote 0
                            • undefined
                              fcwilt @dc42
                              last edited by 25 Mar 2025, 13:40

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