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

Toolchanger Tool Prep

Scheduled Pinned Locked Moved
General Discussion
7
17
1.3k
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
    Danal
    last edited by Danal 5 Sept 2020, 18:24 9 May 2020, 18:22

    Here are a couple of my starting thoughts, subject to change as we all discuss:

    • Firmware look ahead: It would be really hard to decide how much to look ahead.

    • Slicer placement of new commands: I like this because we could experiment via post-processor to start.

    • Such a post processor could insert things a fixed number of lines back from a tool change, or a calculated amount of time back. It is not that hard to look at each line and calculate how long it takes. There are a ton of code examples around.

    • Commands: Heater: This is fairly easy, and in fact COULD be done with today's "standby" temp commands. Just raise standby to match extrusion at the "advance prep point". And, put in a command to put the "old" tool's standby at an appropriate temp, put that right after the Tx. So that would work, I'm just curious if there is a "more automated" way.

    • Commands Extruder: I believe this is going to take either a new command, or new syntax on G1. I'm leaning toward syntax on G1. Something like "G1 E0.123" stays exactly like today, moves the mounted extruder. "G1 E2:0.123" moves the extruder for tool 2. Thoughts?

    • Also on extruder, the concept of "constant drool" is something we may want. Continuous slow extrusion while parked, to keep plastic moving through the melt chamber. This would allow standby temps to be quite a bit higher, maybe even the same as extrusion temps. Syntax? I don't know, this is fundamentally different than "coordinated linear motion". This is motion that continues after the command (line) finishes. It could start with the idea of "G1 E2:99999 F90" or similar... move very far very slowly. But how to continue the move? On unix systems '&' causes a command (really a process) to continue in background. So how about "G1 E2:99999 F90 &" This would need to be auto-canceled the next time the tool is mounted. Or have a syntax for canceling it. "G1 E2:0 &" maybe.

    Again, I'm not married to any of the above, and the purpose of this thread is to solicit ideas.

    Delta / Kossel printer fanatic

    undefined 1 Reply Last reply 9 May 2020, 19:49 Reply Quote 0
    • undefined
      jay_s_uk
      last edited by 9 May 2020, 19:15

      Have you seen this?
      https://github.com/mkudzia84/toolchanger-pspp
      I've started playing with it to set the tool changer temperature etc

      Owns various duet boards and is the main wiki maintainer for the Teamgloomy LPC/STM32 port of RRF. Assume I'm running whatever the latest beta/stable build is

      undefined 1 Reply Last reply 9 May 2020, 20:23 Reply Quote 0
      • undefined
        whosrdaddy
        last edited by 9 May 2020, 19:21

        I believe the look-ahead feature for tool changes is already on David's roadmap, no?

        1 Reply Last reply Reply Quote 0
        • undefined
          deckingman @Danal
          last edited by 9 May 2020, 19:49

          @Danal On a similar vein, a few years ago I came up with the idea (which I still use) of advancing the tool change point within the gcode file by post processing with a python script. The rationale for that is for use with a mixing hot end when changing from one colour (tool) to another. When this happens, it takes nn amount of extrusion to purge one filament out of the mixing chamber before the next one comes through. So if one advances the tool change point, then the new tool is selected before it is needed and so takes care of most of the purging.

          The reason for all this diatribe is that DC42 said he would look to implement this look ahead tool change "thingy" in firmware. In fact, I think it's still on the firmware wish list somewhere so he might still have it in mind. IIRc I think he mentioned something about having 2 parallel gcode streams or some such.

          I'd have thought that it wouldn't be too difficult to have a macro containing the commands you want to use, then run this at the appropriate "pre tool change point" in the gcode file. You could certainly do it by post processing I'd have thought.

          On the subject of keeping filament at print temperature for extended periods of time, I can say that PLA is a bugger but PET-G isn't too bad. PLA will hydrolyse and this process begins at something like 140 deg C IIRC. So you need a very low standby temperature. It's probably just as easy and possibly less time consuming to keep it hot, accept that it will hydrolyse and run a big purge before before you use it. I've held PET-G at print temperature for over 8 hours before using it and not noticed any detrimental effects. But I haven't held any other filaments at print temperature for extended periods.

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

          1 Reply Last reply Reply Quote 0
          • undefined
            Danal @jay_s_uk
            last edited by 9 May 2020, 20:23

            @jay_s_uk said in Toolchanger Tool Prep:

            Have you seen this?
            https://github.com/mkudzia84/toolchanger-pspp
            I've started playing with it to set the tool changer temperature etc

            I have not seen that... will look at and think about!! Thanks.

            Delta / Kossel printer fanatic

            1 Reply Last reply Reply Quote 0
            • undefined
              Danal
              last edited by 9 May 2020, 20:24

              @deckingman , excellent info, thanks. Very intriguing about the PetG. I've printed that some, but not a lot. Hmmm...

              Delta / Kossel printer fanatic

              undefined 1 Reply Last reply 9 May 2020, 20:36 Reply Quote 0
              • undefined
                deckingman @Danal
                last edited by 9 May 2020, 20:36

                @Danal said in Toolchanger Tool Prep:

                @deckingman , excellent info, thanks. Very intriguing about the PetG. I've printed that some, but not a lot. Hmmm...

                Yes, that's a big drawback with mixing hot ends - all filaments have to be loaded at all times and they share a common heater. So "unused" filaments get held at print temperature. Keeping them moving forward even slightly helps enormously but even 1% white mixed with red will come out as pink so it's not always possible to keep them all moving. With PLA, if it's been at print temperature for more than say half and hour, I always purge 20 or 30 mm before printing with it. Otherwise, what's been held in the melt/mixing chamber just runs out in one big sloppy mess. But like I said, PET-G seems to hold up forever (well at least 8 hrs). That goes for Taulman T glass too (but I think that's likely a variant of PET-G).

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

                1 Reply Last reply Reply Quote 0
                • undefined
                  pawPrinter @Danal
                  last edited by 10 May 2020, 16:36

                  @Danal Cura puts heating commands in the Gcode in advance of the tool change command so that the tool is up to heat by the time the change is due. The tool is parked at standby temp which can be whatever you like - off, if you prefer. I have found the timing works quite well, but I can see advantages to the firmware doing it

                  undefined 2 Replies Last reply 10 May 2020, 16:44 Reply Quote 0
                  • undefined
                    Danal @pawPrinter
                    last edited by 10 May 2020, 16:44

                    @pawPrinter said in Toolchanger Tool Prep:

                    @Danal Cura puts heating commands in the Gcode in advance of the tool change command so that the tool is up to heat by the time the change is due. The tool is parked at standby temp which can be whatever you like - off, if you prefer. I have found the timing works quite well, but I can see advantages to the firmware doing it

                    I did not know that Cura did that! Is there anything you have to "turn on"? I will play around with it.

                    Delta / Kossel printer fanatic

                    undefined 1 Reply Last reply 10 May 2020, 17:37 Reply Quote 0
                    • undefined
                      Danal
                      last edited by 10 May 2020, 16:52

                      Lots of great discussion above about various ways to set temperature in advance of a toolchange.

                      Any thoughts about ways to move the extruder on a parked tool? In terms of G-Code syntax?

                      Delta / Kossel printer fanatic

                      1 Reply Last reply Reply Quote 0
                      • undefined
                        pawPrinter @Danal
                        last edited by 10 May 2020, 17:37

                        @Danal No, it just does it. So there is no control, and you are stuck with what Cura decides. I rather took it for granted until I tried out PrusaSlicer recently, and found their tool change handling not so well developed. Which is a shame because otherwise it is easier to use with multiple tools. I suppose its all still early days

                        1 Reply Last reply Reply Quote 0
                        • undefined
                          bot
                          last edited by bot 5 Dec 2020, 00:43 12 May 2020, 00:41

                          I've just discovered that IceSL-Slicer seems to have the functionality to preheat a tool so that it is heated to the correct temperature by the time it is called, based on a given slicer parameter degrees_per_second and the slicer's estimated print time.

                          I do not know how it is implemented, but I will look into it and add it to the RRF profile I'm building, of which I'm nearing the completion of the first version for beta release.

                          The feature is called active temperature control and is described as such:

                          When printing with multiple materials, only one extruder is active at a given time. Active temperature control is specifically designed to avoid material to degrade and ooze from idle extruders. The idle extruder is dynamically cooled down and heated during printing, such that it is ready when needed and cooled when not needed. Adjust extruder parameters idle_extruder_temp_degree_c and extruder_degrees_per_sec when using this feature.

                          Emphasis mine.

                          *not actually a robot

                          1 Reply Last reply Reply Quote 2
                          • undefined
                            Danal @pawPrinter
                            last edited by 15 May 2020, 15:57

                            @pawPrinter said in Toolchanger Tool Prep:

                            @Danal Cura puts heating commands in the Gcode in advance of the tool change command so that the tool is up to heat by the time the change is due. The tool is parked at standby temp which can be whatever you like - off, if you prefer. I have found the timing works quite well, but I can see advantages to the firmware doing it

                            I've looked at the gcode, and I only see M104 and M109 right at the moment of toolchange. Is there something needed to get 'advance'?

                            Delta / Kossel printer fanatic

                            undefined 1 Reply Last reply 15 May 2020, 17:23 Reply Quote 0
                            • undefined
                              sebkritikel @Danal
                              last edited by 15 May 2020, 17:23

                              @Danal said in Toolchanger Tool Prep:

                              @pawPrinter said in Toolchanger Tool Prep:

                              @Danal Cura puts heating commands in the Gcode in advance of the tool change command so that the tool is up to heat by the time the change is due. The tool is parked at standby temp which can be whatever you like - off, if you prefer. I have found the timing works quite well, but I can see advantages to the firmware doing it

                              I've looked at the gcode, and I only see M104 and M109 right at the moment of toolchange. Is there something needed to get 'advance'?

                              Impeccable timing on my part 😵 I think you need to install the "Machine Settings Plugin"

                              69756e77-bc74-491b-b4c0-8b57bc3e6236-image.png

                              https://forum.duet3d.com/topic/16350/standby-temperature-definition-in-dual-extruder/29

                              Copied below:

                              Maybe a comment better suited for the tool changing thread from the other day -

                              Cura (with the "Machine Settings" plugin) has the capability to fine tune the standby temperature as well as the "expected" heat up and cool down rates.

                              Much like IceSL's "Heating/cooling rate (C/sec)" setting, the plugin allows you to set both heat up and cool down speeds (C/sec), as well as minimum standby times.

                              When the M104 commands are injected into the GCODE is driven by the layer time / print speed, as well as the heat up and cool down values entered. Changing the heat up speed from, for example, 1°C/s to 4°C/s will result in the M104 Tx command being injected a number of lines later. It appears that, if the layer time where the heat up would occur is too short to allow for the nozzle to heat up from the standby temperature to active temperature, Cura will modify the standby temperature so that the nozzle will be ready in time.

                              18de0474-36b1-4b12-8ccb-498879e95276-image.png

                              Left columns are at 4°C/s, right is at 1°C/s. You can see that the print temperature for T0 is set many layers (233, 237, 104, etc) later in the file for hotends that can heat up faster. Looking at some of the highlighted cells you can see where Cura modulated the standby temperature to account for the limiting heat up speed.

                              Obviously a hotends heat up/cool down speed is not some magic, made up number - its based on the actual heater performance. I believe* that where the M104 commands are injected is based on print speed and the heat up/cool down values, and is not impacted by acceleration, jerk, etc. These heating values can get someone really close to reducing time spent waiting during tool changes, but really Cura (or any software) doesn't have a clue what the "machine model" (acceleration, jerk, dynamic acceleration, tool change files, etc) is.

                              *I tried adjusting acceleration values in Cura and saw no change in where the lines were inserted.

                              As far as firmware looking ahead - I think that this would be the best solution, as the firmware should know what the "machine model" is - the config.g is loaded on the machine anyways 😀! However, how far should the firmware look ahead? Is the real solution to determining when to heat up hotends, priming the a different tools extruder, etc, to simulate a print file, and allow the firmware to rewrite the print file to include the relevant lines needed - a similar approach that is taken to determine realistic print times by simulating the print first. I am far from an expert, but I feel that there would be limits to looking ahead, and a full simulation of a print file would be needed.

                              Large(ish?) IDEX - 6HC, 1HCL
                              Stratasys Dimension 1200es to 6HC Conversion

                              undefined 1 Reply Last reply 16 May 2020, 20:51 Reply Quote 1
                              • undefined
                                Danal
                                last edited by 15 May 2020, 18:01

                                Nice!! I will check that out!

                                Delta / Kossel printer fanatic

                                1 Reply Last reply Reply Quote 0
                                • undefined
                                  pawPrinter @sebkritikel
                                  last edited by 16 May 2020, 20:51

                                  @sebkritikel excellent! Thanks. Nice to know that you can do a bit of tuning contrary to what I thought - Cheers

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