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

    Moving extruder motors?

    Scheduled Pinned Locked Moved
    Tuning and tweaking
    3
    9
    1.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.
    • devleonundefined
      devleon
      last edited by devleon

      I'm currently setting up my files for multi material printing with a single hotend, a y-splitter, 2 extruder motors and a purge bucket.

      I have setup multiple tools that share a heater and have dedicated extruder drives.
      When tfreeN is called, filament is retracted above the y-splitter.
      When tpostN is called, it is loaded into the y-splitter and hotend.

      TfreeN

      M98 Ppurge_bucket.g ; go to purge bucket
      M116 P0 ; wait for heating up
      M98 Punload.g ; Unload to above y-splitter
      

      TpostN

      ; Wait for set temperatures to be reached
      M116 P0
      
      M98 Pload.g ; Load from above y-splitter into hotend
      M98 Ppurge.g ; purge some filament
      

      Now, I want to write the macros that will allow me to unload the filament from above the splitter, all the way out of the extruder. I got this far.

      ; Unload extruder 0
      T-1 ; make sure all tools are deselected
      M302 P1 ; Allow cold extrusion
      ; todo free drive 0
      M302 P0 ; Disable cold extrusion
      

      Now I know that I can allow cold extrusion with M302, but how would I actually move the E0 or E1 steppers? Can I even move them at all without selecting a tool? If I were to select a tool, this would then destroy my workflow from above. These will be bondtech BMG extruders, so I don't really want to do this progress manually.

      1 Reply Last reply Reply Quote 0
      • Scachiundefined
        Scachi
        last edited by Scachi

        I am using a y-splitter too.
        To un/load my filament from the spool to above the Y-splitter I select the tool to use with the P0 argument in my load/unload macros.
        It activates the tool without running the tool change macros.
        After load/unload is finished I select a non existing tool, T99, with P0 too.

        T1 P0 ; select tool 1 but don't run any tool change macro files
        

        https://duet3d.dozuki.com/Wiki/Gcode#Section_T_Select_Tool

        devleonundefined 1 Reply Last reply Reply Quote 1
        • devleonundefined
          devleon @Scachi
          last edited by

          @scachi said in Moving extruder motors?:

          I am using a y-splitter too.
          To un/load my filament from the spool to above the Y-splitter I select the tool to use with the P0 argument in my load/unload macros.
          It activates the tool without running the tool change macros.
          After load/unload is finished I select a non existing tool, T99, with P0 too.

          T1 P0 ; select tool 1 but don't run any tool change macro files
          

          https://duet3d.dozuki.com/Wiki/Gcode#Section_T_Select_Tool

          Ah, I forgot about the P0 option thanks. How are you making sure the hotend is heated in tfree?

          1 Reply Last reply Reply Quote 0
          • devleonundefined
            devleon
            last edited by

            Also, does selecting a negative tool do the same as selecting a noexistant tool? Should I do a T-1 P0 after unloading with T1 P0 or should I do a T99 P0?

            Scachiundefined 1 Reply Last reply Reply Quote 0
            • Scachiundefined
              Scachi @devleon
              last edited by Scachi

              @devleon said in Moving extruder motors?:

              Also, does selecting a negative tool do the same as selecting a noexistant tool? Should I do a T-1 P0 after unloading with T1 P0 or should I do a T99 P0?

              From the gcodes page:

              Tool number to select. A negative number deselects all tools
              

              I guess when you select a tool number greater than -1 you can run the tool change macros file tfree for tool 99 when switching back to another tool.
              When you select T -1 and change from T-1 to another tool you won't trigger the tool change macro "tfree" of as T-1 is "no real tool", it just deselected all.

              I had tried lowering temperature before unload to get a better tip for the filament.
              I am using an own perl script for slic3r Prusa Edition 1.41.2
              I used a custom tool-change gcode in slic3r that was parsed by my perl script. It lowered the temperature, waited for it to be reached before changing the tool.
              But I couldn't find a temperature/movement/ramming setting that worked for all materials (abs,petg,pla for me) so I am back to simply unload the filament at the printing temperature. I don't need to wait for temperature on tfree.

              devleonundefined 1 Reply Last reply Reply Quote 0
              • devleonundefined
                devleon @Scachi
                last edited by devleon

                @scachi said in Moving extruder motors?:

                @devleon said in Moving extruder motors?:

                Also, does selecting a negative tool do the same as selecting a noexistant tool? Should I do a T-1 P0 after unloading with T1 P0 or should I do a T99 P0?

                From the gcodes page:

                Tool number to select. A negative number deselects all tools
                

                I guess when you select a tool number greater than -1 you can run the tool change macros file tfree for tool 99 when switching back to another tool.
                When you select T -1 and change from T-1 to another tool you won't trigger the tool change macro "tfree" of as T-1 is "no real tool", it just deselected all.

                I had tried lowering temperature before unload to get a better tip for the filament.
                I am using an own perl script for slic3r Prusa Edition 1.41.2
                I used a custom tool-change gcode in slic3r that was parsed by my perl script. It lowered the temperature, waited for it to be reached before changing the tool.
                But I couldn't find a temperature/movement/ramming setting that worked for all materials (abs,petg,pla for me) so I am back to simply unload the filament at the printing temperature. I don't need to wait for temperature on tfree.

                I see, thanks! Guess I don't really need to do anything for T99, so I'll stick to T-1 P0 for now. I was just wondering if running T-1 P0 will also make sure not run any macros.

                I should also mention that the unload.g also calls ramming.g before moving the filament above the y-splitter, which looks like this. I copied the way it is done during the filament change (m600) in marlin, which leaves good tips. I'll also be moving the filament up and down a couple times in the tube right above the hotend in an effort to keep the diameter small. I'm planning to buy the tighter 1.8mmx4mm tube to go between hotend and y-splitter, but I think if my filament (especially the cheap one) has too big of a diameter, it will get stuck there frequently...

                M117 Ramming
                M82 ; use absolute distances for extrusion
                G92 E0 ; Reset Extruder
                G1 E-13 F1200; retract little slowly
                G4 S5 ; wait 5 seconds to cool
                G1 E0 F3600; unretract
                G1 E8 F3600; extrude
                G1 E-100 F3600; quickly retract as quick as possible
                G1 E-110 F3600; ramming
                G1 E-100 F3600; ramming
                G1 E-110 F3600; ramming
                G1 E-100 F3600; ramming
                G1 E-110 F3600; ramming
                G1 E-100 F3600; ramming
                G1 E-110 F3600; ramming
                G1 E-100 F3600; ramming
                G4 S10 ; wait 10 seconds to cool more
                

                Last edit: I guess I could actually disregard the part below. Seems like M104 Snnn sets the standby and active temperature to the same anyways.

                I guess I also need to set the standby temperature with G10 P[previous_extruder] R[temperature_[previous_extruder]] in the tool change G-Code in slic3r?
                The wiki states

                1. If another tool is already selected, deselect it and set its heaters to their standby temperatures (as defined by the R parameter in the most recent G10 command for that tool)

                Or how else would I make sure that the hotend doesn't cool down? How did your perl script do it?

                Scachiundefined 1 Reply Last reply Reply Quote 0
                • Scachiundefined
                  Scachi @devleon
                  last edited by

                  @devleon
                  I use the "Filament Density" g/cm³ field to enter a value as the standby temperature per filament type as I am used to it from my earlier printer with two separate tools/heaters/nozzles and I use it now as the initial temperature to soften the filament at the nozzle for probing Z with a precision piezo.

                  The main usage of my script it to track the tool set at the start of the print and if it is missing set it to my default one.
                  Using Slic3r Prusa Edition 1.41.2 the gcode doesn't contain the starting tool in all cases so I fixed via the script, it also translates the fan gcode to work with my settings.
                  You can get the script here and check if it is useful for you: https://drive.google.com/drive/folders/1uOl2hUzCcJHYZljG15EenpiywwpBvULu

                  This are my "Start G-code" settings for using the density as standby temp:

                  ;slic3r start g-code
                  ;my_default_tool=[perimeter_extruder]
                  ;my_part_fan=P0
                  M115 U3.1.0 ; tell printer latest fw version
                  M83 ; extruder relative mode
                  ;
                  T-1 P0 ; deselect all tools
                  G10 P0 S0 R0 ; clear settings of tool 0, rear extruder
                  G10 P1 S0 R0 ; clear settings of tool 1, front extruder
                  ;
                  ;G29 S1; load last heightmap ; not needed atm as my bed is flat enough
                  ;
                  M140 S[first_layer_bed_temperature_0] ; set bed temp
                  G10 P0 S[first_layer_temperature_0] R[filament_density_0] ; set standby temp to filament density
                  G10 P1 S[first_layer_temperature_1] R[filament_density_1] ; set standby temp to filament density
                  T0 P0; select tool for heating, do not run tool macros
                  T1 P0; select tool for heating, do not run tool macros
                  T99 P0; select dummy tool to set the previous tool to standby  temp
                  ;
                  G28 ; home
                  ;
                  M190 S[first_layer_bed_temperature_0] ; wait for bed temp
                  M116 ; wait for all temps to reach
                  G28 Z ; home Z again because of bed heating/filament at nozzle
                  ;
                  ;
                  ;my_startgcode_end
                  
                  vacalosundefined 1 Reply Last reply Reply Quote 1
                  • vacalosundefined
                    vacalos @Scachi
                    last edited by

                    @scachi

                    Hello,

                    I am aware that this topic is a little old, however I am attempting to get a Y-Splitter to work on my Delta printer and I'm having some problems. I was hoping that someone that has successfully accomplished this task could offer some advice.

                    So far I have I printed and installed the Y-Splitter from the Prometheus website and installed the special longer heatbreak. I've also wrote the TFree, TPre & TPost files (initially using the recommended values then using slower values for retraction). I'm experiencing problems when changing filaments. I'm not sure if it's due to:

                    1. filament jamming
                    2. a flaw in the splitter design which may cause the filament to hang/catch/get caught
                    3. The angle/radius that the filament travels above the splitter
                    4. The TPre/TFree/TPost files

                    Does anyone have suggestions or experience resolving s simliar issue?
                    Can this type of setup be made to work consistently?

                    I initially used the filament chaning speeds recommended on the prometheus website
                    0_1561385241390_IMG_0680.JPG

                    Scachiundefined 1 Reply Last reply Reply Quote 0
                    • Scachiundefined
                      Scachi @vacalos
                      last edited by

                      @vacalos I have no experience with the prometheus splitter
                      I have used this splitter for some time : https://www.thingiverse.com/thing:3039887 with a e3d clone
                      At the moment I am using no splitter as I have a new printer and want to get other stuff done first before playing a round with a splitter again.

                      My biggest issue with the splitter was changing the filament. I couldn't get good tips on the filament for PLA at all. It did work reliable with abs only and like 90% with petg. I have tried a lot of different settings to get better filament tips without having to adjust the settings all the time for different materials or brands without success.
                      Next time I will build a cutting mechanism into a splitter to get rid of that problem.

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