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

    Tilting dual extruder - position check with endstops?

    Scheduled Pinned Locked Moved
    Tuning and tweaking
    dualcolor
    5
    29
    2.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.
    • Eumldeumlundefined
      Eumldeuml
      last edited by

      Hi everyone!

      I am currently designing a tilting dual extruder around the Bondtech BMG-X2 where the tilting will happen by driving the extruder onto a ramp at the edge of the print area. The extruder is then locked by magnets in either position. This will prevent the idle nozzle dragging over the print.
      For that I want to implement a "failsafe" which consists of two endstops which will be triggered when the extruder is tilted in either way. Now I'm wondering if the Duet WiFi supports some kind of state checking so if the extruder is tilted out of place (because of plastic curling up or something else) the print head will initiate the tool change macro again to put the extruder back where it should be.

      If that's possible I'd love to get a hint on how to implement it.
      Thanks in advance! πŸ™‚

      deckingmanundefined 1 Reply Last reply Reply Quote 0
      • DocTruckerundefined
        DocTrucker
        last edited by

        Can't help with your state check but why not just have the magnets pull the mechanism one way of the other? Saves a drive to the end each time and it would be a hard stop which may be more accurate.

        Running 3 P3Steel with Duet 2. Duet 3 on the shelf looking for a suitable machine. One first generation Duet in a Logo/Turtle style robot!

        1 Reply Last reply Reply Quote 0
        • deckingmanundefined
          deckingman @Eumldeuml
          last edited by

          @eumldeuml Hmm. Well kind of. If I understand what you want correctly that is.

          Check out M581 https://duet3d.dozuki.com/Wiki/GCode#Section_M581_Configure_external_trigger

          You could use that to monitor an end stop and take some action if it sees either a rising or falling edge on the signal. The "T" parameter is the logical trigger number and from the wiki ..........quote

          "Trigger number 0 causes an emergency stop as if M112 had been received. Trigger number 1 causes the print to be paused as if M25 had been received. Any trigger number # greater then 1 causes the macro file sys/trigger#.g to be executed. "

          So, you could have a macro called "trigger2" for example which in itself cpuld call the tool change macro (or run any other commands that take your fancy).

          Does that help?

          Ian
          https://somei3deas.wordpress.com/
          https://www.youtube.com/@deckingman

          Eumldeumlundefined 1 Reply Last reply Reply Quote 0
          • Eumldeumlundefined
            Eumldeuml
            last edited by

            I'm not sure if I understand your answer correctly (or if I didn't describe the mechanism clear enough) but I do have a hard stop for the tilting mechanism.
            In the picture you can see it. In the middle there's the bearing and below that there is a pin that moves onto an adjustable magnet holder (the screws and the magnet on the left are not visible).
            0_1551792772001_69ee83ae-0d9b-4caf-a04c-beeb474c3780-image.png

            deckingmanundefined DocTruckerundefined 2 Replies Last reply Reply Quote 0
            • deckingmanundefined
              deckingman @Eumldeuml
              last edited by

              @eumldeuml I guess that post was in answer to @DocTrucker and not me?

              Ian
              https://somei3deas.wordpress.com/
              https://www.youtube.com/@deckingman

              Eumldeumlundefined 1 Reply Last reply Reply Quote 0
              • Eumldeumlundefined
                Eumldeuml @deckingman
                last edited by

                @deckingman I think that's it! πŸ™‚ I'll play around with it as soon as I managed to cram the two endstops in there. Thank you very much! πŸ™‚

                One last question to be sure: The triggers are constantly monitored, right? So no waiting until the buffer is empty or something?

                deckingmanundefined 1 Reply Last reply Reply Quote 0
                • Eumldeumlundefined
                  Eumldeuml @deckingman
                  last edited by

                  @deckingman Sorry for the confusion: The post with the picture was an answer to DocTrucker and the one after that was for you.

                  1 Reply Last reply Reply Quote 0
                  • DocTruckerundefined
                    DocTrucker @Eumldeuml
                    last edited by

                    @eumldeuml I was just thinking about using the magnets to pull the mechanism either way rather than ramp to save needing to go off to a specific location. Could save quite a bit of travel moves.

                    Running 3 P3Steel with Duet 2. Duet 3 on the shelf looking for a suitable machine. One first generation Duet in a Logo/Turtle style robot!

                    Eumldeumlundefined 1 Reply Last reply Reply Quote 0
                    • deckingmanundefined
                      deckingman @Eumldeuml
                      last edited by

                      @eumldeuml said in Tilting dual extruder - position check with endstops?:

                      @deckingman

                      ................One last question to be sure: The triggers are constantly monitored, right? So no waiting until the buffer is empty or something?

                      Sort of. It depends on what you set for the "C" parameter. C0 will enable the trigger at any time, C1 will only invoke when printing from the SD card. I can't be sure but I think it's an instant interrupt so does not have to wait for whatever moves are i the queue to complete. DC42 will confirm that or otherwise.

                      Ian
                      https://somei3deas.wordpress.com/
                      https://www.youtube.com/@deckingman

                      1 Reply Last reply Reply Quote 0
                      • Eumldeumlundefined
                        Eumldeuml @DocTrucker
                        last edited by

                        @doctrucker But that would mean that I need a servo to move the magnet and thus tilt the extruder. Either that or using the servo directly to tilt the extruder was my original plan but it's not that easy to fit a small servo on the printhead and get it to reliably and repeatably set the tilt. Also I'll save some time since I don't need an ooze shield or in the case of a single nozzle, an excessive purge tower.
                        Sooner or later I'll move to a toolchanger but that's another can of worms entirely...

                        @deckingman I think, either C1 or C0 will get me the results I want because when it's not printing it's usually not important if the tool is in the right spot as I can include a toolchange routine at the beginning of each print which will set the tilt to the desired position.

                        DocTruckerundefined deckingmanundefined 2 Replies Last reply Reply Quote 0
                        • DocTruckerundefined
                          DocTrucker @Eumldeuml
                          last edited by DocTrucker

                          @eumldeuml Fair enough, I'd assumed there were two magnets.

                          @eumldeuml said in Tilting dual extruder - position check with endstops?:

                          The extruder is then locked by magnets in either position.

                          Running 3 P3Steel with Duet 2. Duet 3 on the shelf looking for a suitable machine. One first generation Duet in a Logo/Turtle style robot!

                          1 Reply Last reply Reply Quote 0
                          • deckingmanundefined
                            deckingman @Eumldeuml
                            last edited by

                            @eumldeuml said in Tilting dual extruder - position check with endstops?:

                            @deckingman I think, either C1 or C0 will get me the results I want because when it's not printing it's usually not important if the tool is in the right spot as I can include a toolchange routine at the beginning of each print which will set the tilt to the desired position.

                            Yes, I think so too. I use M581 for additional axis maxima end stops in case I do something stupid, and although it's been a while since they have been triggered, IIRC it's pretty instant.

                            Ian
                            https://somei3deas.wordpress.com/
                            https://www.youtube.com/@deckingman

                            1 Reply Last reply Reply Quote 1
                            • Eumldeumlundefined
                              Eumldeuml
                              last edited by

                              So, I've built my tilting extruder and now I want to configure the triggers. Does anyone know if and how I can set a trigger with M581 with a dependency on the loaded tool? That means I only want a trigger input to be monitored when the corresponding tool is active. To be more specific, I need a way to use an "if" command without actually using it (since gcode doesn't support conditionals).
                              My idea is to initiate the trigger monitoring for the specific endstop upon selecting the tool. But I don't know how to stop monitoring that endstop when deselecting the tool...

                              deckingmanundefined 1 Reply Last reply Reply Quote 0
                              • deckingmanundefined
                                deckingman @Eumldeuml
                                last edited by deckingman

                                @eumldeum Conditional gcode statements are not possible at this point in time. Coming soon I believe.

                                Edit. If you use the tool change macros (tfree, tpost etc). you could maybe add the M581 to one of those. Come to that, you can always call any macro from within a macro so that might be a work around? So the M581 only gets called if a certain macro is running if you get my meaning.

                                Ian
                                https://somei3deas.wordpress.com/
                                https://www.youtube.com/@deckingman

                                Eumldeumlundefined 2 Replies Last reply Reply Quote 0
                                • Eumldeumlundefined
                                  Eumldeuml @deckingman
                                  last edited by

                                  @deckingman I'm not sure about that since gcode has been around for a very long time without such changes... I think we will see another implementation of machine control code (maybe based on gcode). But that's another topic... πŸ˜„
                                  Regarding my question: I found the answer in the documentation (I just didn't read thoroughly enough)...

                                  deckingmanundefined 1 Reply Last reply Reply Quote 0
                                  • deckingmanundefined
                                    deckingman @Eumldeuml
                                    last edited by

                                    @eumldeuml Oh I meant that conditional gcode will be implemented in RRF soon. That's from DC42 and is on his work list.

                                    Ian
                                    https://somei3deas.wordpress.com/
                                    https://www.youtube.com/@deckingman

                                    1 Reply Last reply Reply Quote 0
                                    • Eumldeumlundefined
                                      Eumldeuml @deckingman
                                      last edited by

                                      @deckingman Really? That would add a lot of possibilities to Duet controled machines! Although only for the advanced user, I don't think that the average person needs conditional gcode for printing vases and figures... πŸ˜…

                                      Regarding your edit in your post above: Calling a macro from within another macro would certainly work butfor now I'm testing it with a M581 S1 in tpost#.g and a M581 S-1 in tfree#.g. This command also calls a macro (trigger#.g) so in a way you were right πŸ™‚

                                      deckingmanundefined 2 Replies Last reply Reply Quote 0
                                      • deckingmanundefined
                                        deckingman @Eumldeuml
                                        last edited by

                                        @eumldeuml Yes, conditional gcode and also the use of variables have been asked for on many occasions on these forums and it's definitely on David's "todo" list. For sure not needed for straight printing as such, but these things would be very useful inside macros and for configuration purposes.

                                        Ian
                                        https://somei3deas.wordpress.com/
                                        https://www.youtube.com/@deckingman

                                        1 Reply Last reply Reply Quote 0
                                        • deckingmanundefined
                                          deckingman @Eumldeuml
                                          last edited by

                                          @eumldeuml said in Tilting dual extruder - position check with endstops?:
                                          ...................... This command also calls a macro (trigger#.g) so in a way you were right πŸ™‚

                                          That sounds just like my wife - she will never admit that I might be right about something but might go as far as saying "in a way"....☺

                                          Ian
                                          https://somei3deas.wordpress.com/
                                          https://www.youtube.com/@deckingman

                                          Eumldeumlundefined 1 Reply Last reply Reply Quote 0
                                          • Eumldeumlundefined
                                            Eumldeuml @deckingman
                                            last edited by

                                            @deckingman The phrase "in a way" might be subject to my deficiency in expressing the desired statement distinctly enough in the prior sentence. So I'll gladly and openly admit that you were absolutely right πŸ˜›

                                            This post was made possible by google translator and other sources of fancy english words lol

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