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

    How to extrude until trigger

    Scheduled Pinned Locked Moved
    Tuning and tweaking
    6
    38
    4.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.
    • NicoLab28undefined
      NicoLab28
      last edited by

      For info :
      M115
      FIRMWARE_NAME: RepRapFirmware for Duet 2 WiFi/Ethernet FIRMWARE_VERSION: 2.0(RTOS) ELECTRONICS: Duet Ethernet 1.02 or later + DueX5 FIRMWARE_DATE: 2018-06-05b3

      1 Reply Last reply Reply Quote 0
      • NicoLab28undefined
        NicoLab28
        last edited by

        there is something that escape me.

        I'm just trying to stop the G1 E1000 command when E0's trigger is off.
        I'm not in printing mod, but in cold extrusion enable to test the gcode.

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

          There is currently no direct facility in RepRapFirmware to extrude until trigger. However, there is a facility to extrude until the extruder motor stalls - just use a G1 S1 Exxx Fxxx command.

          To achieve the effect of extrude until endstop switch triggered, you could create an additional axis (say U) using M584, and assign the extruder moor to both the extruder and U. Then a G1 S1 Uxxx command will drive the motor until the U endstop is triggered. Afterwards, use the M584 P parameter to hide the U axis.

          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
          • NicoLab28undefined
            NicoLab28
            last edited by

            exactly, a solution not very elegant, but which remains in the concept of all gcode.

            Why so much difference between the management of the XYZ and E axes?

            Finally it probably saves me, I will test this step!

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

              @nicolab28 said in How to extrude until trigger:

              exactly, a solution not very elegant, but which remains in the concept of all gcode.

              Why so much difference between the management of the XYZ and E axes?

              Finally it probably saves me, I will test this step!

              I don't think anyone has asked for extrude-until-trigger before. What is the use case?

              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
              • NicoLab28undefined
                NicoLab28
                last edited by

                Yes but how to affect E0 endstop to U axe?
                I need to wire it?

                dc42undefined 1 Reply Last reply Reply Quote 0
                • NicoLab28undefined
                  NicoLab28
                  last edited by

                  it's for create a MMU.
                  I want to push/retract the filament until a position. Perhaps there is another method?

                  For my MMU, I use one extruder for direct drive, and 2 stepper for selecting et bowden.
                  For the moment I use an 5 multi filament. this one https://www.thingiverse.com/thing:2785379
                  I use a sensor before the direct drive, to know exactly where the filament is.
                  So I need to push until trig.

                  1 Reply Last reply Reply Quote 0
                  • NicoLab28undefined
                    NicoLab28
                    last edited by

                    Another question
                    how to do an
                    if (E5 trig sensor) then G1 U-100

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

                      @nicolab28 said in How to extrude until trigger:

                      Yes but how to affect E0 endstop to U axe?
                      I need to wire it?

                      The first axis you create using M584 will use the E0 endstop, and the next will use the E1 endstop.

                      I use a sensor before the direct drive, to know exactly where the filament is.

                      Are you sure you can't use extruder stall detection instead?

                      Another question
                      how to do an
                      if (E5 trig sensor) then G1 U-100

                      Conditions in GCode are planned to be supported in RRF 2.03.

                      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

                      NicoLab28undefined 2 Replies Last reply Reply Quote 0
                      • NicoLab28undefined
                        NicoLab28 @dc42
                        last edited by

                        @dc42 said in How to extrude until trigger:

                        The first axis you create using M584 will use the E0 endstop, and the next will use the E1 endstop.

                        I use
                        M584 X0 Y1 Z4:5 E3:6:7:8:9 U6 P4
                        So E3 use E0 endstop
                        E6 and U6 -> E1 endstop ...

                        Ok I will try

                        If i do
                        M584 X0 Y1 Z4:5 E9:8:7:6:3 U6 P4
                        So E9 become E0 endstop
                        E6 and U6 -> E3 endstop ...
                        And I can do this on the fly without loosing my tool definition?



                        My T1 def:
                        M563 P1 D0:1 H1 S"Tool 1" ; Define tool 1
                        M567 P1 E1:0.975 ; mixing
                        G10 P1 X0 Y0 Z0

                        So I need to do this
                        M584 X0 Y1 Z4:5 E3:6:7:8:9 U6 P4
                        T1
                        G1 E-100 S1 ; with E1 endstop

                        Are you sure you can't use extruder stall detection instead?

                        When I'm looking for Extruder stop I saw "stall" in a gcode title command, but I was thinking that was for loosing step for the XYZ axes, I will take a look.

                        Conditions in GCode are planned to be supported in RRF 2.03.
                        YES YES YES!!!
                        Varaiable too?
                        when? 1 week, 1 month or 1 year?
                        A python/php/lua would be grate

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

                          @nicolab28 said in How to extrude until trigger:

                          I use
                          M584 X0 Y1 Z4:5 E3:6:7:8:9 U6 P4
                          So E3 use E0 endstop
                          E6 and U6 -> E1 endstop ...

                          No, because extruders are not axes. U will use the E0 endstop.

                          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
                          • NicoLab28undefined
                            NicoLab28
                            last edited by

                            OK,

                            even if Z use driver 4:5 it doens't take E4 E5 endstop
                            P4 from M584 say E0 for 4th axe U and only 4 axes
                            So I need to use P8 for U V W and A? B?

                            1 Reply Last reply Reply Quote 0
                            • NicoLab28undefined
                              NicoLab28 @dc42
                              last edited by

                              @dc42 said in How to extrude until trigger:

                              Are you sure you can't use extruder stall detection instead?

                              I took a look in the doc, but I don't understand how stall detection will help me. how did you see the thing?

                              I did not take the time to test the M584, for the endstop, I'm experiment without for the moment.

                              1 Reply Last reply Reply Quote 0
                              • NicoLab28undefined
                                NicoLab28
                                last edited by

                                Back from holidays!

                                Ok it works, if I affect a 4th axis "A" it has the E0 endstop.
                                By mapping the axis A to the extruder E0, I can extrude and control the position of my filament.

                                M569 P5 S0                          ; Driver 5
                                M584 X0 Y1 Z2 E5 A5 P4     ; Extruder E and A-axis on the driver 5
                                ... set step / mm speed ...
                                M574 X1 Y1 A1 S1                 ; Set active high endstops

                                So if I want to extrude normally I use as usual G1 Exx
                                And If I want to get the filament back to endstop I use the function G1 A-1000 S1

                                Thank you DC42 !!!

                                What is the M577 command for? in which situation to use it?

                                1 Reply Last reply Reply Quote 0
                                • NicoLab28undefined
                                  NicoLab28
                                  last edited by

                                  Another question...

                                  Can we use the laser filament sensor as endstop for an axis? If yes, how?

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

                                    @nicolab28 said in How to extrude until trigger:

                                    Another question...

                                    Can we use the laser filament sensor as endstop for an axis? If yes, how?

                                    That's not supported, or planned at present. Would you be wanting to extrude until the filament monitor detects motion, or until it detects no motion?

                                    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
                                    • NicoLab28undefined
                                      NicoLab28
                                      last edited by

                                      both ... It's mostly to have contactless sensors.

                                      2 extruders (a bowden and a direct drive)
                                      In fact I have an extruder that pushes the filament to the second which is a direct drive.
                                      I have an endstop that is just after the first extruder, which serves me to change filament. I retract until endstop, I retract a few millimeters again, and I change my filament.
                                      And I push the filament until the second endstop, before the direct drive, I push a few millimeters to hang the direct drive, and I disengaged the first extruder that pushed the filament.

                                      My printer is big enough, my bed is 500x500, I have a long tube of ptfe, and it's quite complicated to be precise enough in the position of the filament.

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

                                        @nicolab28 said in How to extrude until trigger:

                                        In fact I have an extruder that pushes the filament to the second which is a direct drive.

                                        I have an endstop that is just after the first extruder, which serves me to change filament. I retract until endstop, I retract a few millimeters again, and I change my filament.

                                        And I push the filament until the second endstop, before the direct drive, I push a few millimeters to hang the direct drive, and I disengaged the first extruder that pushed the filament.You should be able to use extruder stall detection for that one.

                                        You should be able to use extruder stall detection to use the first extruder to push the filament and stop when it reaches the direct drive extruder.

                                        The way endstops are configured and used is scheduled to be reworked in firmware 2.03, so I'll bear your suggestions in mind.

                                        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
                                        • NicoLab28undefined
                                          NicoLab28
                                          last edited by

                                          I do not think I can use the stall, with the extruder pushing, because the filament must always be engaged in it.
                                          With a servo I engage or I disengage this extruder.

                                          But it is to test for the direct drive.

                                          Normally, all parts are finished product tomorrow, I will finally be able to make the first tests ...

                                          1 Reply Last reply Reply Quote 0
                                          • gavatron3000undefined
                                            gavatron3000
                                            last edited by gavatron3000

                                            @NicoLab28 im currently doing the same project running a MMU2 with the duet, your welcomed to use my macros if you like. they work ok so far but dont have many miles on them yet so use them as you will. they detect loading and unloading failures. the triggers are very new and not fully tested but seem ok so far

                                            My axes:
                                            A=selector B=filament gear C=idler pulleys

                                            i aim to install the laser sensor once it comes back in stock. you can see where ive added space for it.

                                            cheers
                                            Gav

                                            tpre0.g ( 1-4 are the same apart from the A and C positions)

                                            G90 ; absolute moves
                                            M913 A100 B100 C100
                                            G1 A1 F2000 ; move selector to T0 position
                                            G1 C4 F10000 ; move idler to T0 position
                                            M400 ; wait for moves to stop
                                            M98 P"tpremaster.g"
                                            M913 A50 B20 C20

                                            tpremaster.g (global loading macro)

                                            M591 D0 P2 C3 S0 ; deactivate filament sensor
                                            M574 B2 S0 ; set B axis max endstop to switched low
                                            G91 ; relative moves
                                            G1 B30 S1 F3000 ; feed filament to filament sensor
                                            G92 B0 ; force B to 0mm
                                            G1 B20 F3000 ; feed a bit more to reliably switch sensor and reach tube
                                            M400 ; wait till moves finish
                                            M574 B2 S3 ; set B axis max endstop to sensorless
                                            M581 E0 S0 T2 C0 ; activate trigger 2 on falling edge
                                            M582 T2 ; check filament sensor to confirm loading successful
                                            G4 P4000 ; trial wait to signify it progress
                                            M913 B50 ; reduce motor current to 50% to prevent grinding
                                            M915 B S5 F0 ; set stall guard parameters
                                            G1 S1 B550 F3600 ; fast feed filament into extruder
                                            M591 D0 P2 C3 S1 ; activate filament sensor
                                            G92 B0 ; force B to 0mm
                                            G90 ; absolute moves

                                            tpost0.g (1-4 are the same apart from C position)

                                            M913 A100 B100 C100
                                            G1 C4
                                            M98 P"tpostmaster.g"
                                            M116 P0
                                            M913 A50 B20 C20

                                            tpostmaster.g ( global loading macro)

                                            G91 ; relative moves
                                            G1 E5 B5 F300 ; feed filament into extruder with both B and E axis
                                            ;activate laser pew pew pew
                                            G90 ; absolute moves
                                            G1 C78 F10000 ; move C to safe position
                                            M400 ; wait for moves to finish
                                            G91 ; relative moves
                                            M915 E S3 F0 ; set extruder stall parameters
                                            M913 E70 ; lower extruder current by 50%
                                            G1 S1 E100 F3000 ; drive extruder till stall
                                            M913 E100 ; return extruder current to 100%
                                            G90 ; absolute moves

                                            tfree0.g

                                            M913 A100 B100 C100
                                            M98 P"TipSmoothing.g"
                                            G90 ; absolute moves
                                            G1 C4 F10000 ; select T0 with idler
                                            M98 P"tfreemaster.g"
                                            M913 A50 B20 C20

                                            tfreemaster.g (global unloading macro)

                                            M591 D0 P2 C3 S0 ; deactivate filament sensor
                                            G91 ; relative moves
                                            M574 B1 S1 ; set B axis min endstop to switched high temporarily
                                            G4 P4000 ; trial wait to show progress
                                            G1 B-500 S1 F3000 ; retract filament till sensor switches off
                                            G92 B0 ; force B axis position to 0mm
                                            M581 E0 S1 T3 C1 ; activate trigger 3 on rising edge while printing
                                            M582 T3 ; check filament sensor to confirm unloading successful
                                            G1 B-22 F3000 ; retract to position clear of selector
                                            G90 ; absolute moves
                                            ;G1 C78 F10000 ; move C to safe position
                                            M400 ; wait for moves to finish

                                            trigger2.g

                                            ; for detecting loading problems
                                            M400
                                            M291 P"Loading failure detected" S2 B1

                                            trigger3.g

                                            ;for detecting unloading problems
                                            M400
                                            M291 P"Unloading failure detected" S2 B1

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