wishlist: interrupt tool change from a trigger



  • i know that the movement etc is locked during a tool change, but is it possible to that if a trigger condition is met whilst a tool change is in progress that the trigger will work immediately? this is in regards to monitoring MMU2 tool changes as at the moment if im printing on T0 but then switch to T1 but i have an unloading problem with T0 the firmware carries on with the loading of T1 until it "thinks" the tool change is complete. then the trigger activates but too late.

    is this possible?

    thanks again
    Gav



  • I would urgently need it too.
    I have two triggers at the filament loading level, I have windows of errors but at the end of the tool change.
    M582 should be blocking and the windows modal, even during the tool change.
    It's possible?



  • Any chance this could be implemented?


  • administrators

    I have this early on in my Tpre0.g on the tool changer:

    ;setup trigger to detect if the pickup fails
    M581 Z S0 T2 C0

    and this at the end of my Tpost0.g:
    M582 T2 ;check for successful pickup

    then this in tfree0.g:
    M581 Z S-1 T2 C0 ;turn off connection trigger



  • My issue is with my application that the trigger needs to be immediately activated or else the loading of the next tool occurs before the pause happens. If my tool change faults on unloading I wish the tool change to pause until I intervene but it carrys on with loading the next one even though the conditions for the trigger have occurred. Once the post.g has finished the machine will then pause and alert me to the fault. It's a mess by then


  • administrators

    Would it be sufficient to allow a trigger to be processed immediately after executing the tfree#.g file? I can see issues with allowing the tool change sequence to be interrupted at other places.



  • Yes, thats better than it currently is. I can at least intervene then before any collisions occur when switching to the next tpre.g

    Would it be ok to have it be able to be processed at the end of any of the them? Not just tfree?



  • There must be a subtlety that I do not understand. This is not sequential code, the g-code?

    It seems, that the message is put on hold? and executed at the output of the macro.

    Yesterday I was doing a test, and everything was working well, until the filament got entangled with its neighbor. For once, I have to find a method to channel the filaments, after retractation ...

    Personally, I use only free and post, and in both cases, I have two triggers in action, so I prefer an interruption to each test of the trigger.



  • @dc42
    @gavatron3000 said in wishlist: interrupt tool change from a trigger:

    Would it be ok to have it be able to be processed at the end of any of the them? Not just tfree?

    Is this possible? Or will it be restricted to tfree.g?

    Thanks again



  • Sorry to be a pain @dc42 but is this scheduled for a change in the near future? My self and @NicoLab28
    and others with would be of benefit for our MMU2 reliability

    Regards
    Gav


  • administrators

    RRF can execute GCodes from different sources concurrently. Triggers are a separate source of GCodes. So in principle, a trigger will execute concurrently with whatever else is happening. Only one trigger at a time can be executing, except that the emergency stop trigger can pre-empt any other.

    In practice, if different GCode sources try to use the same resource, then one of them will have to wait until the other has finished with that resource. In particular, the motion system is a resource.

    What does your trigger do? If it attempts to perform motion, then I suspect it is waiting for the motion resource to become free, which will happen when the tool change has completed.



  • All my trigger does is execute a M291 with an ok button in the message. So Essentially just a pause but this pause doesn't happen until all the change macro's have finished regardless whether the condition for the trigger occurred in free, pre or post.



  • I wrote this in another post

    @nicolab28 said in How to extrude until trigger:

    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.

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

    I did not understand how things were going at the time

    And this

    https://forum.duet3d.com/topic/8916/m581-m582-m291-what-am-i-doing-wrong/9

    I tested to see, this afternoon, it is the test of the trigger with the M291 that does not work in time.
    I tested too, M291 in post.g works well



  • @dc42 did you see my post above with what my trigger does?



  • We are the forgotten duet ...

    I was thinking, why not use triggers as filament sensors? I have not put any yet, but have you tested?
    Will this go into tool change macros?


  • administrators

    @gavatron3000 said in wishlist: interrupt tool change from a trigger:

    All my trigger does is execute a M291 with an ok button in the message. So Essentially just a pause but this pause doesn't happen until all the change macro's have finished regardless whether the condition for the trigger occurred in free, pre or post.

    I think I see what's happeing:

    if (sParam >= 2 && !LockMovementAndWaitForStandstill(gb))
    {
    	return false;		// if it's a blocking message, wait for movement to stop before displaying it
    }
    

    In the next beta I can try changing it so that it only locks the movement system if the jog buttons are enabled.



  • That would be excellent, very much appreciated. Thanks



  • @nicolab28 said in wishlist: interrupt tool change from a trigger:

    We are the forgotten duet ...

    I was thinking, why not use triggers as filament sensors? I have not put any yet, but have you tested?
    Will this go into tool change macros?

    I use M591 for normal printing with filament sensor outside of tool changing. I only use the triggers during the tool changes so I can show particular messages depending on where in the tool change an error/state occurred


Log in to reply