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

Pause to change filament colour?

Scheduled Pinned Locked Moved
General Discussion
7
27
5.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
    DjDemonD
    last edited by 13 Nov 2017, 14:15

    Request it as a feature on the relevant github page. Having the ability to insert custom gcode at layer x, would be quite a powerful feature.

    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
      whosrdaddy
      last edited by 13 Nov 2017, 15:12

      I believe Prusa has made an utility for this purpose.

      1 Reply Last reply Reply Quote 0
      • undefined
        BlitzReg @KeithW
        last edited by 20 Aug 2018, 02:45

        @keithw I tried using this script on my duetwifi and when it hit the layer height I chose the extruder moved homed and turned off everything and said the file was completed. That's not what suppose to do!

        undefined 1 Reply Last reply 20 Aug 2018, 10:28 Reply Quote 0
        • undefined
          SpoonUnit
          last edited by SpoonUnit 20 Aug 2018, 04:39

          I follow the same path as @DjDemonD:

          • Produce your GCODE.
          • Look at the results of the slicer and determine which layer you want to do your color change.
          • Open the GCODE using a text editor
          • Search for Layer X, where X is the layer you want to change on.
          • Insert M226 line where you want the pause.
          • Repeat for all required pauses.
          • Upload to printer

          For M226 to do its job perfectly for your printer, you need to setup pause.g and resume.g appropriately. For reference, my pause.g looks like this:

          M83 ; relative extrusion
          G1 E-2 F3600 ; retract 2mm
          G91 ; relative motion
          G1 Z5 F6000 ; up 5mm
          G90 ; absolute motion
          G1 X5 Y5 F6000 ; swap spot
          G1 E-100 F200 ; eject
          M18 E0 ; disable extruder motor
          M18 E1 ; disable extruder motor

          I disable the extruder motor so that I can manually feed the new filament into the extruder to prime it fully. Once I hit resume on the UI, resume.g executes:

          G1 R1 Z5 F6000
          G1 R1 F500

          This uses R1, which is used to return the head to it's previous position, though I override Z so that it positions the head 5mm above where it needs to be at speed, I then return completely to the actual position where we left off lowering Z slowly at the final step. Somewhere during the move, I usually poke something under the extruder to clear any ooze before the head finally gets back to work.

          1 Reply Last reply Reply Quote 0
          • undefined
            dc42 administrators @BlitzReg
            last edited by 20 Aug 2018, 10:28

            @blitzreg said in Pause to change filament colour?:

            @keithw I tried using this script on my duetwifi and when it hit the layer height I chose the extruder moved homed and turned off everything and said the file was completed. That's not what suppose to do!

            In most 3D printer firmwares (including RRF) M0 terminates the print. Instead of G1 X10 Y5\nM0 you should just use M226 to pause the print.

            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

            undefined 1 Reply Last reply 22 Aug 2018, 10:06 Reply Quote 0
            • undefined
              Adrian52
              last edited by 20 Aug 2018, 10:53

              Using s3d, I have
              {REPLACE "; layer 6" "M226/n; layer 6"}
              in the 'Additional terminal commands for post processing' box under the scripts tab
              Obviously change 6 for the layer number you want to stop at
              Just comment it out with a ; if you don't need a stop

              undefined 1 Reply Last reply 22 Aug 2018, 10:08 Reply Quote 0
              • undefined
                BlitzReg
                last edited by 22 Aug 2018, 10:01

                Hi dc42, appreciate the help! So, if you wrote the script what would it look like? to pause at a specific layer height to change out filament? I did like where there was a popup on the screen and showed Z axis and the layer number it was currently on. What I did not like was all the blue boxes popping up on my computer blocking out everything on the duetwifi IP browser control. Changing out filament at a specific layer is where I've been beating my head against the wall!!!! I tried using S3D and make 2 processes with 2 files but the problem is getting them to line up on the Z axis. Please help and show the entire script file you would use to make it do the layer pause. I have an H800 Afinia and there you just punch in the layer numbers you want and it does it automatically. I would be nice if the duetwifi LCD under the pause had this option where you could pick a layer line number to pause at. Thanks again for your help, Larry

                undefined 1 Reply Last reply 22 Aug 2018, 19:50 Reply Quote 0
                • undefined
                  BlitzReg @dc42
                  last edited by 22 Aug 2018, 10:06

                  @dc42 I put the reply message in the wrong place. I was asking you if you could show us the full script file where you could pause at a specific layer height and also display on the LCD. I'm using your LCD that came with my duetwifi. I love this controller! Lot of people ask me about it and all I give is praise! I've built the hypercube evolution and using for my fishing tackle business. I'm trying to make lures that are 2 color with a single nozzle and need to pause at certain layer height. I'm pretty busy doing other things and it would be nice fo set a layer height and have it beep at me when it gets to that layer height and pause. so all my lure bodies are the same. I'm only running a single titan aero nozzle with a volcano. My program is S3D. Appreciate any help! Larry

                  1 Reply Last reply Reply Quote 0
                  • undefined
                    BlitzReg @Adrian52
                    last edited by 22 Aug 2018, 10:08

                    @adrian52 Can you show me your entire script you have under Additional Terminal commands for pausing the print. Do you have it where is displays on the LCD and beeps when it pauses? Thanks, Larry

                    undefined 1 Reply Last reply 22 Aug 2018, 16:02 Reply Quote 0
                    • undefined
                      Adrian52 @BlitzReg
                      last edited by 22 Aug 2018, 16:02

                      @blitzreg The line in my previous post is it. I just use dwc, and only have one printer, so I hang around for the pause, then change the filament, and hit resume. I have also used the same method to insert captive nuts. Adrian

                      undefined 1 Reply Last reply 22 Aug 2018, 19:18 Reply Quote 0
                      • undefined
                        BlitzReg @Adrian52
                        last edited by 22 Aug 2018, 19:18

                        @adrian52 I just ran your line for pause in script. I set it for layer 81. I do have a raft. So, what happened it paused at layer 84 and when I hit resume it left a 1mm gap in between two halfs. Any ideas?

                        undefined 1 Reply Last reply 22 Aug 2018, 19:52 Reply Quote 0
                        • undefined
                          dc42 administrators @BlitzReg
                          last edited by 22 Aug 2018, 19:50

                          @blitzreg said in Pause to change filament colour?:

                          Hi dc42, appreciate the help! So, if you wrote the script what would it look like? to pause at a specific layer height to change out filament? I did like where there was a popup on the screen and showed Z axis and the layer number it was currently on. What I did not like was all the blue boxes popping up on my computer blocking out everything on the duetwifi IP browser control. Changing out filament at a specific layer is where I've been beating my head against the wall!!!! I tried using S3D and make 2 processes with 2 files but the problem is getting them to line up on the Z axis. Please help and show the entire script file you would use to make it do the layer pause. I have an H800 Afinia and there you just punch in the layer numbers you want and it does it automatically. I would be nice if the duetwifi LCD under the pause had this option where you could pick a layer line number to pause at. Thanks again for your help, Larry

                          I would use Adrian's script,but in front of the M226 command I would insert 'M117 Change filament\n' to display a message too.

                          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
                            dc42 administrators @BlitzReg
                            last edited by 22 Aug 2018, 19:52

                            @blitzreg said in Pause to change filament colour?:

                            @adrian52 I just ran your line for pause in script. I set it for layer 81. I do have a raft. So, what happened it paused at layer 84 and when I hit resume it left a 1mm gap in between two halfs. Any ideas?

                            Have you tested your pause and resume macro files, by pausing a print and then resuming 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

                            undefined 3 Replies Last reply 23 Aug 2018, 00:27 Reply Quote 0
                            • undefined
                              BlitzReg @dc42
                              last edited by 23 Aug 2018, 00:27

                              @dc42 I just test it and its not working right. I've posted it here so you can look at the pause and resume files.

                              pause.g

                              ; pause.g
                              ; called when a print from SD card is paused
                              ;
                              ; generated by RepRapFirmware Configuration Tool on Sun May 20 2018 02:01:02 GMT-0700 (Pacific Daylight Time)
                              M83 ; relative extruder moves
                              G1 E-10 F3600 ; retract 10mm of filament
                              G91 ; relative positioning
                              G1 Z5 F360 ; lift Z by 5mm
                              G90 ; absolute positioning
                              G1 X0 Y0 F6000 ; go to X=0 Y=0

                              resume.g

                              ; resume.g
                              ; called before a print from SD card is resumed
                              ;
                              ; generated by RepRapFirmware Configuration Tool on Sun May 20 2018 02:01:02 GMT-0700 (Pacific Daylight Time)
                              G1 R1 X0 Y0 Z5 F6000 ; go to 5mm above position of the last print move
                              G1 R1 X0 Y0 ; go back to the last print move
                              M83 ; relative extruder moves
                              ;G1 E10 F3600 ; extrude 10mm of filament

                              undefined 1 Reply Last reply 23 Aug 2018, 10:03 Reply Quote 0
                              • undefined
                                BlitzReg @dc42
                                last edited by 23 Aug 2018, 00:33

                                @dc42 Looks like in my resume.g its not going right where it left off but 5mm higher

                                undefined 1 Reply Last reply 23 Aug 2018, 00:52 Reply Quote 0
                                • undefined
                                  BlitzReg @BlitzReg
                                  last edited by 23 Aug 2018, 00:52

                                  @blitzreg I may have found the problem. It retracts 10mm at pause and the when it goes to resume there is a ; in front of extruding 5mm back. So when the nozzle starts to print there is no plastic until it catches up.

                                  1 Reply Last reply Reply Quote 0
                                  • undefined
                                    BlitzReg @dc42
                                    last edited by 23 Aug 2018, 01:24

                                    @dc42 Ok, the pause and resume .g files are working when I click on the lcd pause and resume. But when the script runs in S3D I'm getting a 1mm gap in between the model. I put the script bellow. Not sure if its a filament extruding problem. Maybe I should prime it more until it comes out of the nozzle.

                                    undefined 1 Reply Last reply 23 Aug 2018, 07:26 Reply Quote 0
                                    • undefined
                                      Adrian52 @BlitzReg
                                      last edited by 23 Aug 2018, 07:26

                                      @blitzreg Yes I do small extrudes from dwc until the new filament is coming through properly, then retrieve dangling filament just before hitting resume. Generally gives a seamless transition.

                                      1 Reply Last reply Reply Quote 0
                                      • undefined
                                        dc42 administrators @BlitzReg
                                        last edited by dc42 23 Aug 2018, 10:03

                                        @blitzreg, this line in resume.g:

                                        G1 R1 X0 Y0 ; go back to the last print move

                                        should have a Z0 parameter too. But I'm not sure that is causing the problem.

                                        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

                                        undefined 1 Reply Last reply 24 Aug 2018, 02:12 Reply Quote 0
                                        • undefined
                                          BlitzReg @dc42
                                          last edited by 24 Aug 2018, 02:12

                                          @dc42 Ok, after it has paused and I change the filament and before I hit resume. I manually click on retract about 2mm. If I don't when it goes to resume it pushes out to much filament at the first start and leaves a glob. If I do a 2mm retract before I hit resume then it comes out perfect.

                                          undefined undefined 2 Replies Last reply 24 Aug 2018, 02:13 Reply Quote 0
                                          • First post
                                            Last post
                                          Unless otherwise noted, all forum content is licensed under CC-BY-SA