How to extrude until trigger



  • Just a stupid question, how to extrude until the release of a specific sensor.
    I have my search everywhere, I can not find.

    G1 E9999 ???
    It extrudes 12mm, for example, stops but without error / pause / change of filament.
    A bit like a homing.

    I explain, I have a duet eternet + duex5, and I'm trying to build a MMU.
    So I would like to be able to control the postition of my filaments, move them to some sensor, then make position changes and re-extrude to another sensor.

    Do you have to use the M577? Knowing that I risk using several sensors, 2 extruders sometimes synchronized

    Of type M577 E0 S1
    knowing that E0 is the sensor and that I use the E7 engine for example
    Then G1 E9999

    Thank you



  • M577 seems to doesnt work. Or I don't know how to use it...

    I tried M581 E0 T3 S1 C0
    To use macro using trigger
    It doesn't work too.
    M581 doesn't work imediately, need it time to be enabled?

    In my macro trigger3.g I have put "M117 Trigger3" to have a message...

    then I wrote in the gcode sender:
    M581 E0 T3 S1 C0
    and
    G1 E2000 F1000
    only after 5-10 seconds, I receive the message "Trigger3", but not from the first trig.
    Futhermore, S1 or S0 do the same (perhaps need capacitor on the micro switch?)

    To finish with M581, this didn't stop the G1 code.



  • 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



  • 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.


  • administrators

    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.



  • 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!


  • administrators

    @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?



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



  • 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.



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


  • administrators

    @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.



  • @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


  • administrators

    @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.



  • 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?



  • @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.



  • 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?



  • Another question...

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


  • administrators

    @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?



  • 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.


  • administrators

    @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.


 

Looks like your connection to Duet3D was lost, please wait while we try to reconnect.