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

    Tool changer commands

    Scheduled Pinned Locked Moved
    Tuning and tweaking
    5
    32
    5.1k
    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.
    • RajaaKahelundefined
      RajaaKahel @dc42
      last edited by

      @dc42 Hello again, I managed to
      park any nozzle at the end of a print by putting the following Ending Script in my slicer:

      G1 E-15 F4000
      M104 S0 ; turn off extruder
      M140 S0 ; turn off bed
      T0
      M98 P/macros/parkT0
      G28 X ; home x and y axes
      G28 Y ; home x and y axes
      M84 ; disable motors
      M107
      M1

      In Duet firmware I have the following:

      ; tfree0.g
      ; called when tool 0 is freed
      M98 P/macros/parkT0

      ; tfree1.g
      ; called when tool 1 is freed
      M98 P/macros/parkT1

      ; tpost0.g
      ; called after tool 0 is selected
      M98 P/macros/selectT0

      ; tpost1.g
      ; called after tool 1 is selected
      M98 P/macros/selectT1

      But the problem is when I start a print, Duet is always activating T0 (even if the first tool to run is T1) when starting to heat up, but it does not actually go and pick T0 tool (so it thinks T0 is already picked up).

      I can work this around by picking T0 at the end of each print without parking it. But I want both nozzles to be parked to prevent oozing and stuff.

      So the question is: how can I tell the duet to start a print (heat up) without activating any tool until the print gcode tells it to activate (thus pick up) the right tool?

      *I don't have T0 or T1 at the end of config.g
      *I tried to include T-1 or M1 at the Starting Script of my slicer, but it didn't work. (Duet is always activating T0 regardless of what tool gonna start).
      *I tried sending M1 manually before I start a print (to deactivate tools) but same thing happens when a print is started by heating up (activating T0).

      zerspaner_gerdundefined dc42undefined 2 Replies Last reply Reply Quote 0
      • zerspaner_gerdundefined
        zerspaner_gerd @RajaaKahel
        last edited by zerspaner_gerd

        @rajaakahel Make sure that all axes are referenced before the tool command!
        Only then will the tool script be triggered!

        @rajaakahel said in Tool changer commands:

        But the problem is when I start a print, Duet is always activating T0 (even if the first tool to run is T1) when starting to heat up, but it does not actually go and pick T0 tool (so it thinks T0 is already picked up).

        Do you have a start.g file? With me the duet does not select a tool at the print start, so you have somewhere a tool command.

        @rajaakahel said in Tool changer commands:

        I can work this around by picking T0 at the end of each print without parking it. But I want both nozzles to be parked to prevent oozing and stuff.

        Does not T-1 work? There must be no M84, M18, M1 before.

        G1 E-15 F4000 
        M104 S0; Extruder 
        M140 S0 ausschalten; Bett ausschalten 
        T-1
        G28 X; home x und y Achsen 
        G28 Y; home x und y Achsen 
        M84; Deaktivieren Sie die Motoren 
        M107 
        M1
        

        @rajaakahel said in Tool changer commands:

        So the question is: how can I tell the duet to start a print (heat up) without activating any tool until the print gcode tells it to activate (thus pick up) the right tool?

        You can activate tools with T# P0 (# = Tool Number) without changing the tool

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

        Board: Duet WiFi 1.03 | Firmware Version: 3.1.1 | WiFi Server Version: 1.23 | Web Interface Version: 3.1.1

        RajaaKahelundefined 1 Reply Last reply Reply Quote 0
        • RajaaKahelundefined
          RajaaKahel @zerspaner_gerd
          last edited by RajaaKahel

          @zerspaner_gerd
          "Make sure that all axes are referenced before the tool command!
          Only then will the tool script be triggered!"
          You mean by "referenced" homed? if so, then yes they are homed.

          "Do you have a start.g file? With me the duet does not select a tool at the print start, so you have somewhere a tool command."
          No I don't have a start.g file in the Duet. And in my slicer only G28 is included in the Start Script. I don't find any tool command..

          "Does not T-1 work? There must be no M84, M18, M1 before."
          I tried T-1 and M1 in the Start Script of my slicer, they do nothing. After I upload a print to the Duet, it immediately choose T0 (but doesn't activate the tpost1.g (same if I manually send T-1 or M1 before I start a print).

          You can activate tools with T# P0 (# = Tool Number) without changing the tool
          Where should I put T# P0?
          Again, Duet is always activating T0 (even if the first tool to run is T1) when starting to heat up, but it does not activate the tpost1.g.

          1 Reply Last reply Reply Quote 0
          • RajaaKahelundefined
            RajaaKahel
            last edited by

            Here are all my settings if that helps..
            Macros:
            https://drive.google.com/open?id=1Nwte-EtKEzL_ogCqJp7PMQ2qsLK7RBkM

            Configurations:
            https://drive.google.com/open?id=1q-h8eojJ91CQwK2p5YhWKuQaQph0sQ_T

            0_1535131031908_8.gcode

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

              @rajaakahel said in Tool changer commands:

              But the problem is when I start a print, Duet is always activating T0 (even if the first tool to run is T1) when starting to heat up, but it does not actually go and pick T0 tool (so it thinks T0 is already picked up).

              That probably means you have either a T0 command or a M109 command near the start of your GCode file before the printer has been homed. M109 or M109 T0 will select T0 implicitly if no tool is selected, and if the printer hasn't been homed than the tool change macros won't be run.

              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

              RajaaKahelundefined 1 Reply Last reply Reply Quote 0
              • RajaaKahelundefined
                RajaaKahel @dc42
                last edited by

                @dc42 said in Tool changer commands:

                M109

                This is my Start and Ending Scripts in Simplify3D, nothing else is there in between:
                Start Script:
                G1 E15 F3000
                G28 ; home all axes
                G1 Y37
                Ending Script
                G1 E-15 F4000
                M104 S0 ; turn off extruder
                M140 S0 ; turn off bed
                T0
                ;M98 P/macros/parkT0
                G28 X ; home x and y axes
                G28 Y ; home x and y axes
                M84 ; disable motors
                M107
                M1

                I can't find any M109. Where in the Duet I can look for what is causing this? You see I attached all the files in my last post, I can't either find anything in them, please check them yourself too. Maybe my firmware is bad somehow? especially that I have another problem that I have to fix in order for my printer to function! (G10 Z offset for T1 simply doesn't work) as you see here:
                https://forum.duet3d.com/topic/6517/setting-z-offset-for-t1/15

                Any suggestions please? (at least I have to fix the T1 Z offset issue).

                Firmware Name: RepRapFirmware for Duet 2 WiFi/Ethernet
                Firmware Electronics: Duet WiFi 1.02 or later
                Firmware Version: 1.21 (2018-03-21)
                WiFi Server Version: 1.21RC4(08b3)
                Web Interface Version: 1.21-RC4

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

                  Please post the first 50 or so lines (not counting comment lines) of the GCode file generated by your slicer. You may find that it has inserted a M109 command before your start GCode.

                  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

                  1 Reply Last reply Reply Quote 0
                  • RajaaKahelundefined
                    RajaaKahel
                    last edited by

                    A file starts with T0:

                    G90
                    M82
                    M106 S255
                    M140 S0
                    M104 S180 T0
                    M104 S180 T1
                    M109 S180 T0
                    M109 S180 T1
                    G1 E15 F3000
                    G28 ; home all axes
                    G1 Y37
                    G92 E0
                    G1 E-3.0000 F2400
                    G1 Z0.600 F1800
                    ; process Process1-1-1-1-1
                    ; layer 1, Z = 0.200
                    T0
                    ; tool H0.200 W0.720
                    ; inner perimeter
                    G1 X194.300 Y161.800 F18000
                    G1 Z0.200 F1800
                    G1 E0.0000 F720
                    G92 E0
                    G1 X194.944 Y161.800 E0.0409 F1125
                    G1 X194.821 Y162.257 E0.0709
                    G1 X194.324 Y162.390 E0.1036
                    G1 X194.300 Y162.404 E0.1053
                    G1 X194.300 Y161.800 E0.1436

                    A file starts with T1:

                    G90
                    M82
                    M106 S255
                    M140 S0
                    M104 S180 T0
                    M104 S180 T1
                    M109 S180 T0
                    M109 S180 T1
                    G1 E15 F3000
                    G28 ; home all axes
                    G1 Y37
                    G1 Z0.600 F1800
                    ; process Process1
                    ; layer 1, Z = 0.200
                    T1
                    ; tool H0.200 W0.480
                    ; inner perimeter
                    G1 X220.180 Y161.680 F18000
                    G1 Z0.200 F1800
                    G92 E0
                    G1 X221.135 Y161.680 E0.0404 F1125
                    G1 X221.085 Y161.759 E0.0443
                    G1 X220.921 Y162.368 E0.0710
                    G1 X220.405 Y162.482 E0.0934
                    G1 X220.180 Y162.611 E0.1044
                    G1 X220.180 Y161.680 E0.1438
                    G1 X220.180 Y177.346 F18000

                    True, there is M109 before G28! How can I fix this please although as you see nothing in my Start Script is there!
                    Start Script:
                    G1 E15 F3000
                    G28 ; home all axes
                    G1 Y37

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

                      In most slicers, if you put tool heating commands in your start GCode then the slicer won't generate them itself. So you use something like this in your start GCode:

                      G28 ; ensure homed before selecting tool
                      G10 P0 S[first_layer_temperature] ; set tool 0 temperature
                      T0 ; select tool
                      M116 ; wait for all temperatures - not needed if you already do it in your tpost files

                      The details will depend on your slicer.

                      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

                      1 Reply Last reply Reply Quote 0
                      • RajaaKahelundefined
                        RajaaKahel
                        last edited by

                        Thank you for your time DC42. I'll try to fix this. Now I know it's because of the slicer.

                        zerspaner_gerdundefined 1 Reply Last reply Reply Quote 0
                        • zerspaner_gerdundefined
                          zerspaner_gerd @RajaaKahel
                          last edited by

                          @rajaakahel
                          In S3D the variable is:
                          [extruder0_temperature]

                          G10 P0 S[extruder0_temperature]

                          Here is my S3D Start Code, maybe it will help you:

                          M104 S[extruder0_temperature] T0 ; heat left
                          M104 S[extruder1_temperature] T1 ; heat right
                          G28 ; home all axes
                          G1 X10 Y10 F9000 ; bring extruder to front
                          G92 E0 ; zero the extruded length
                          G1 Z40.0 F3000 ; lower
                          
                          G29 S1
                          
                          T1
                          G10 P1 S[extruder1_temperature] R[extruder3_temperature]
                          M98 P0:/sys/S3D_Priming.g
                          
                          T0
                          G10 P0 S[extruder0_temperature] R[extruder2_temperature]
                          M98 P0:/sys/S3D_Priming.g
                          
                          G1 X50 Y15 F6000 ; wipe
                          ; 1ster layer
                          

                          I use extruder 3 and 2 as standby temperature

                          Board: Duet WiFi 1.03 | Firmware Version: 3.1.1 | WiFi Server Version: 1.23 | Web Interface Version: 3.1.1

                          1 Reply Last reply Reply Quote 0
                          • zerspaner_gerdundefined
                            zerspaner_gerd
                            last edited by

                            For Singel print I use a different start code, so that only one tool is heated.

                            Board: Duet WiFi 1.03 | Firmware Version: 3.1.1 | WiFi Server Version: 1.23 | Web Interface Version: 3.1.1

                            RajaaKahelundefined 1 Reply Last reply Reply Quote 0
                            • RajaaKahelundefined
                              RajaaKahel @zerspaner_gerd
                              last edited by

                              @zerspaner_gerd Thank you, i'll check that 🙂

                              1 Reply Last reply Reply Quote 0
                              • RajaaKahelundefined
                                RajaaKahel
                                last edited by RajaaKahel

                                Thank you all for the help. Now I can start a print with no tool is pre-selected and finish the print with all tools parked. The problem solved by un-checking the Wait For Temperature box! So now a print starts with both tools heat in standby mode.
                                And to make the tools reach the temperature before they start printing I put M116 in tpre0.g and tpre1.g (because I removed the M109 by un-checking the Wait For Temperature box in S3D).

                                0_1535205497692_Screen Shot 2018-08-25 at 3.55.10 PM.png

                                0_1535205513400_Screen Shot 2018-08-25 at 3.55.33 PM.png

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