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

Y Adapter filament switching

Scheduled Pinned Locked Moved
General Discussion
11
75
15.9k
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
    Yonkiman
    last edited by 15 Mar 2017, 22:44

    I totally get the basic principles. It's just that your T0.g script seems incomplete:

    You have to pull a bit back, cool it, extrude it, then yank it back again.

    Where is the "yank it back again" part in the T0.g procedure? Does another macro start that yanks it back? Does control go back to the object's gcode file where the Tool Change script yanks it back?

    Maybe I just don't understand when/how T0.g and T1.g are supposed to be used. To me they look like scripts that retract the filament, then shove it back in (minus 1/10 of a mm), and then things go idle, almost as if Tx.g had never been run.

    Thanks again for bearing with me!

    1 Reply Last reply Reply Quote 0
    • undefined
      kraegar
      last edited by 15 Mar 2017, 22:49

      Ok, now we're on the same page. T0.g does the "prep" work of priming the filament, so to speak, then at the end of it is the command "T0"

      So, if your current extruder is T1, and you run my "T0.g" it will do the following:

      Run T0.g
      Run tpre1.g
      Run tfree1.g
      Run tpost0.g

      Those last 3 are called when the T0 command is interpreted by RRF.

      Co-Creator of the RailcoreII CoreXY printer
      https://www.thingiverse.com/thing:2407174

      1 Reply Last reply Reply Quote 0
      • undefined
        Yonkiman
        last edited by 15 Mar 2017, 23:10

        That's it! Should have realized that a tool change will call those three .g files regardless of where it comes from. Thanks!

        1 Reply Last reply Reply Quote 0
        • undefined
          Yonkiman
          last edited by 16 Mar 2017, 19:44

          I got it (mostly) working! Can swap filaments with T0.g and T1.g doing your packing trick. Dealing with some bed-leveling issues (the two Bowden tubes are causing some flexing of my printhead) and working on the same trade-off between putting the code in S3D vs in the Duet's .g files. I also think the swapping might be easier with my Lite6 (bowden tube all the way down to the nozzle) than with an original V6. Before I got your packing working reliably, I saw some pretty ugly, long filament trails, but it never jammed. Also, I didn't appreciate how useful it is to have a transparent Y adapter! Was originally going to try this with a printed Y, but the ability to see what's happening is alone worth the $20.

          I also had an entertaining accident: S3D writes the extruder commands in absolute mode, but somewhere an M83 was accidentally inserted (or an M82 was missing), so my extruder was interpreting absolute commands as relative, and my 4:1 geared extruder sounded like a jet's turbine engine as it started spinning up with no end in sight. Apparently the right commands in the right order is sorta important. 😕

          Thanks again for your help, kraegar. Will post my best config once I dial things in a little more. Please let me know where you settle on the S3D/macro split.

          1 Reply Last reply Reply Quote 0
          • undefined
            kraegar
            last edited by 16 Mar 2017, 20:09

            Awesome, glad it's working. I suspect the lite6 will indeed do better - it should suffer from heat creep less. Depending on what extruder you're running, if you can retract at 100mm/s you might want to try that method, as it was by far the cleanest.

            Playing with the pause and such can make a big difference, too.

            Co-Creator of the RailcoreII CoreXY printer
            https://www.thingiverse.com/thing:2407174

            1 Reply Last reply Reply Quote 0
            • undefined
              DjDemonD
              last edited by 17 Mar 2017, 10:47

              This seems very relevant to the latest edge firmware:

              Known issues

              If you enable tool mixing, you should use relative extrusion only. If you use absolute extrusion, then if you pause and resume the print, the extruder is likely to extrude the wrong amount of filament in the first move after resuming.

              Simon. Precision Piezo Z-Probe Technology
              www.precisionpiezo.co.uk
              PT1000 cartridge sensors NOW IN, just attach to your Duet board directly!

              1 Reply Last reply Reply Quote 0
              • undefined
                kraegar
                last edited by 17 Mar 2017, 12:53

                I only use relative extrusion during my prints, anyway, but I've wondered what would happen if you were switching from absolute to relative & back within your free/post scripts. I was guessing it probably wouldn't go so well.

                Co-Creator of the RailcoreII CoreXY printer
                https://www.thingiverse.com/thing:2407174

                1 Reply Last reply Reply Quote 0
                • undefined
                  Yonkiman
                  last edited by 17 Mar 2017, 17:07

                  Ah…didn't know there was an S3D option for relative extrusion. That should make things a lot safer!

                  Here's my current setup/scripts:

                  S3D Tool Change Script (at this point I'm doing it all in tpost and tfree):

                  T[new_tool]		; Change tool
                  

                  tfree:

                  ; tfree0.g
                  ; called when tool 0 is freed
                  
                  M83			; Make sure extruder is in relative mode (prob not needed anymore)
                  G1 E-5.0 F3600		; Retract filament as soon as possible...
                  G91			; Relative
                  G1 Z2 F6000		; ...Then lower the bed...
                  G90			; Absolute
                  G1 X115 Y232 F18000	; ...Then get the hell away from the print
                  G4 S2			; Pause two seconds to cool the retracted filament
                  G1 E4.9    F3600	; Pack the filament to eliminate the tail
                  G1 E-150.1 F6000	; Yank the filament past the Y adapter and into its Bowden tube
                  

                  tpost:

                  ; tpost0.g
                  ; called after tool 0 has been selected
                  
                  G1 E145 F6000		; Extrude 145mm @ 100mm/s
                  G1 E5   F1500		; Extrude   5mm @  25mm/s
                  G91			; Relative
                  G1 Z-2  F6000		; Raise bed
                  G90			; Absolute
                  

                  The retracted filament end doesn't look perfect (needs to be optimized for PLA with an E3D Lite6):

                  But it was working well enough that I could print this:

                  It's pretty ugly because I just built this printer and have a lot of single-filament fine-tuning to do, but it's a solid piece of plastic in two colors! Thanks for all your help, kraegar!

                  Now back to the fine-tuning…

                  1 Reply Last reply Reply Quote 0
                  • undefined
                    kraegar
                    last edited by 17 Mar 2017, 17:11

                    Off to a good start!

                    To test my switching, I just made a macro to retract a single extruder, and ran it over and over, slightly changing things until I got the cleanest break I could. I literally ran hundreds of tests. That break isn't bad, but for the lite6, I'd guess you can improve it

                    Co-Creator of the RailcoreII CoreXY printer
                    https://www.thingiverse.com/thing:2407174

                    1 Reply Last reply Reply Quote 0
                    • undefined
                      kraegar
                      last edited by 24 Mar 2017, 13:58

                      Ok, so I couldn't figure out why my single color s3d prints with firmware retracts looked fine, but my dual color prints had stringing and super blobby retraction points… but only on the retraction points before filament change. Going to software based retraction didn't fix that - it got rid of the blobs, but made the stringing worse.

                      Turns out, s3d does some odd things on tool change, particularly if you use z-hop with retraction. Before a tool change, s3d will trigger a Z-Hop without retraction.

                      See here: http://imgur.com/p4WAb1k

                      The line after the highlighted one is the hop, but there's no retract before it. That'll cause a string.

                      You can stop that by going to Firmware retraction, but I was getting strings with it with the titans - dc42's response to me about how firmware retraction works - it spreads out the z-hop speed so it takes the same time as the retraction - was the key. I have to do very short z-hops (0.1mm) or I get very blobby retraction points.

                      I think this is due to the extra hysteresis in the bowden from the Y adapter - it's hard to clear the pressure on it fast enough, and during a z-hop on retraction the filament oozes, causing a blob. Going to a very short z-hop takes care of that.

                      Of course, short z-hops cause other problems, like the nozzle dragging over curled parts. Solve one thing, cause another issue.

                      So, for now, I'm back to firmware retracts along with some pressure advance like this:
                      M207 S3 R-0.2 F1500 T1200 Z0.1 ; y adapter
                      M572 D0 S0.1
                      M572 D1 S0.1

                      And it's yielding decent results.

                      Co-Creator of the RailcoreII CoreXY printer
                      https://www.thingiverse.com/thing:2407174

                      1 Reply Last reply Reply Quote 0
                      • undefined
                        Yonkiman
                        last edited by 10 Apr 2017, 16:59

                        So the dual filament switching is working pretty reliably (though if kraegar has any new tweaks I'd love to see them, particularly since I upgraded my Lite6 to a full E3D V6 so our setups are that much more identical). But I'm running into a problem when I try to run SINGLE filament that I'd like to see if anyone else has run into.

                        I use T0 exclusively for single-filament printing. When I cancel a print from Duet Web Control, something (not sure if it's the firmware or the web interface) releases T0. So to start a new print, I have to Select Tool T0 from the Heater 1 pulldown. When that happens, the tpost0.g file is run, which is a big problem since that script tries to feed 150mm of filament at high speed, when the filament is already loaded into the hotend.

                        So is there a way to make sure either:

                        1. T0 is not released when a print is canceled, or
                        2. tpostX.g is not run if the previous tool was TX

                        I think 1 is probably the cleanest answer since 2 might be the right thing to do in other use cases.

                        1 Reply Last reply Reply Quote 0
                        • dc42undefined
                          dc42 administrators
                          last edited by 10 Apr 2017, 19:46

                          If you create a cancel.g file then that will be run when you cancel a print, and it won't release the current tool unless you put T-1 in it.

                          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
                          • undefined
                            Yonkiman
                            last edited by 10 Apr 2017, 20:14

                            That was easy - thanks, David!

                            1 Reply Last reply Reply Quote 0
                            • undefined
                              DjDemonD
                              last edited by 23 Apr 2017, 22:45

                              Hi Kraegar thanks for this info finally got around to trying swapping filaments, I am using ABS but your tfreeX and tpostX macros for the titan work, and I can swap filaments. Now its a case of trying to work out how using slic3r to generate a wipe and prime tower in order to print some two coloured objects or just some rough and ready method to incorporate a prime of some sort into the tpostx file. Otherwise I am going to have to grapple with a new slicer which I'm not sure I have the time to do.

                              Simon. Precision Piezo Z-Probe Technology
                              www.precisionpiezo.co.uk
                              PT1000 cartridge sensors NOW IN, just attach to your Duet board directly!

                              1 Reply Last reply Reply Quote 0
                              • undefined
                                kraegar
                                last edited by 24 Apr 2017, 12:08

                                I never found a good method for slic3r, and the last I knew prusa hadn't released his post processing script for adding a prime pillar yet. Cura does well for a lot of people, but I hit some weird oddities with it printing layers in the wrong order / swapping colors. Never figured it out, but it's probably the best free solution… though then you may hit bugs with absolute extrusion values, and switching to relative extrusion in the free/post scripts.

                                Currently I'm still using simplify 3d, as it's given me the best results. I haven't been dual color printing in a while, I was working on some printer changes, and now have a small backlog of prints to do. When I do get back to it, I have some things to try that might make switching even cleaner yet.

                                Co-Creator of the RailcoreII CoreXY printer
                                https://www.thingiverse.com/thing:2407174

                                1 Reply Last reply Reply Quote 0
                                • deckingmanundefined
                                  deckingman
                                  last edited by 24 Apr 2017, 12:19

                                  It's pretty easy to use one of the Duet tool change macros to move to a corner of the bed, dump some filament, then move back again. If you have something like an old toothbrush strategically placed at a fixed position relative to the nozzle in Z, it'll wipe off any ooze as well. Works best with fast non-print moves.

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

                                  1 Reply Last reply Reply Quote 0
                                  • undefined
                                    kraegar
                                    last edited by 24 Apr 2017, 12:27

                                    I played with that some with my delta, and it's one of the options I wanted to try - putting a "dump bucket" up high between two of the towers, so I could move up to it, switch filaments, purge a bit, and then move back. Has to be up high on a delta so the arms don't hit your print… or needs to follow along in Z as your print gets higher.

                                    Co-Creator of the RailcoreII CoreXY printer
                                    https://www.thingiverse.com/thing:2407174

                                    1 Reply Last reply Reply Quote 0
                                    • deckingmanundefined
                                      deckingman
                                      last edited by 24 Apr 2017, 12:41

                                      Ah yes - hadn't considered what you would do with a Delta.

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

                                      1 Reply Last reply Reply Quote 0
                                      • undefined
                                        DjDemonD
                                        last edited by 24 Apr 2017, 16:22

                                        I was thinking about just printing an ooze wall, purging some at the edge of the bed after a tool change, then coming back across the wall to wipe the nozzle. I tried bodging some gcode to print a tower but this won't work under all conditions such as layers which have only one colour etc..

                                        Deltas do make it harder, I could devise a dump area but it would have to do some sort of relative move to lift away from the print, move towards the edge, descend to the dump area, then lift back up etc… to avoid collision with the print. It would be satisfying if I can work out the gcode to do it.

                                        Simon. Precision Piezo Z-Probe Technology
                                        www.precisionpiezo.co.uk
                                        PT1000 cartridge sensors NOW IN, just attach to your Duet board directly!

                                        1 Reply Last reply Reply Quote 0
                                        • undefined
                                          kraegar
                                          last edited by 24 Apr 2017, 16:26

                                          I think for a delta an absolute position move to a dump bucket near the max Z for a perimeter would be the ideal. it's a LOT of travel, though, and I'm sure you'd want an ooze shield.

                                          Originally I was just purging and using an ooze shield. You get tons of buildup in a hurry, though, and eventually I'd always end up with filament on my part (usually stuck to the nozzle and then it sticks to the part)

                                          Co-Creator of the RailcoreII CoreXY printer
                                          https://www.thingiverse.com/thing:2407174

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