Does not extrude first g1 after a pause



  • If you pause a print, the first G1 Ex after the pause does not extrude, even if it has extrude command.

    Kulitorum


  • administrators

    Please provide more detail, because this can't always be the case or it would have been noticed before. Are you sure that you don't have some retraction in the pause.g file that you are not undoing in the restore.g file?



  • Yes I am sure. The extruder is not moving for the first line after a pause. (that is, you press pause in the WEB interface, then continue) You may need to move the printhead a bit to provoke the error, but I don't think so.

    I know because the gear on my concrete extruder is quite noisy, so I am very sure. Also, my lines are typically around 100mm or more and extrude 300ml of material during that move, so it's quite noticeable.

    I guess for a plastic print it's not important, because the next layer fills the gab.

    Printing with concrete is like always watching the print through a 100x microscope 🙂

    EDIT: It has always been like this, it's not something new.

    Kulitorum


  • administrators

    Are you using mesh bed compensation?



  • Could not it be the same as here:

    https://forum.duet3d.com/topic/4612/problems-with-pause-function-m226

    That only the order is not correct and by long travels seeps out filament.



  • No, I am not using mesh bed compensation (yet)

    Kulitorum



  • Have you verified this problem?


  • administrators

    I tried pausing and resuming prints many times yesterday. In every case, extrusion started again at the correct place. However, I found and fixed two issues in the pause code:

    • The setting of a variable that controls the extrusion on resuming a print may not have been correct in some cases. This didn't cause a problem on my printer, but could perhaps explain the problem on your printer.

    • It was intended that if a move gets segmented (for example because it is an arc move, or it is a long move with mesh bed compensation enabled, or on a SCARA printer), the print could be paused between segments if the allowed jerk was high enough. But the printer never paused between segments.

    These fixes will be in 2.0RC6.



  • Sounds good, looking forward to testing it.

    Kulitorum



  • Sorry, it still do not work.

    And on top of that, pausing in the middle of a G2/G3 move is messed up - it will pause and when continuing it moves to a semi-random point, then makes a wierd arc to the endpoint (while not extruding).

    I will try to film it.

    Kulitorum



  • It looks like it's not re-calculating the center point (which is relative to the start point, remember) but running a new arc code with the "same" - but now offset - center, is that possible?

    Do you seperate the arcs into piecewise linear sections? If you do, can I please decide the segment length?

    Kulitorum

    Kulitorum



  • Sorry for the SD quality, I can't upload HD from my phone outside of wifi.

    https://youtu.be/tNc5vhht5g8

    Kulitorum



  • Pause-extrude-test video

    Running this gcode:

    g92 e0
    g1 x0 y0 u90
    g1 x0 y300 e15 f6000
    g1 x0 y600 e30 f6000
    g1 x0 y900 e45 f6000
    g1 x0 y1200 e60 f6000
    g1 x0 y1500 e75 f6000
    g1 x0 y1800 e90 f6000
    g1 x0 y2100 e105 f6000
    g1 x0 y2400 e120 f6000
    g1 x0 y2700 e135 f6000

    I pause and resume.

    https://youtu.be/zxxbrBXzHNo

    Kulitorum



  • EDIT: FORGET THIS POST, I WAS WRONG, IT STILL FAILS WITHOUT PRESSURE ADVANCE.

    Ok, I found a hint, it only fails to extrude after a pause if you have pressure advance enabled.

    Try with M572 D0 S0.1 ;Pressure advance 0.1sek

    I don't really need pressure advance, so I'm fine with a "known bugs" note for now, if you want to release.



  • Ok, better hint:

    It only happens in absolute extrusion mode.

    This will not extrude after a pause:

    M302 P1
    T0
    g92 e0
    M82
    g1 x0 y0 u90
    g1 x0 y100 e5 f6000
    g1 x0 y200 e10 f6000
    g1 x0 y300 e15 f6000
    g1 x0 y400 e20 f6000
    g1 x0 y500 e25 f6000
    g1 x0 y600 e30 f6000
    g1 x0 y700 e35 f6000
    g1 x0 y800 e40 f6000
    g1 x0 y900 e45 f6000

    This WILL extrude after a pause:

    M302 P1
    T0
    g92 e0
    M83
    g1 x0 y0 u90
    g1 x0 y100 e5 f6000
    g1 x0 y200 e5 f6000
    g1 x0 y300 e5 f6000
    g1 x0 y400 e5 f6000
    g1 x0 y500 e5 f6000
    g1 x0 y600 e5 f6000
    g1 x0 y700 e5 f6000
    g1 x0 y800 e5 f6000
    g1 x0 y900 e5 f6000

    Kulitorum


  • administrators

    Thanks, it's on my list to retest this, using absolute extrusion mode.



  • Ok, cool.

    Did you have a chance to take a look at the pause-during-arc-moves problem?

    Kulitorum


  • administrators

    @kulitorum said in Does not extrude first g1 after a pause:

    Ok, cool.

    Did you have a chance to take a look at the pause-during-arc-moves problem?

    Kulitorum

    I'm sorry, that one slipped off my radar. The extrude-after-pause issue is fixed in firmware 2.0.

    I've added resume-after-pause during G2 and G3 moves to the work list for firmware 2.01. The simplest fix would be to defer the pause until the arc move has completed.



  • that would be a bad solution though, quite often I need to make a stop to clean a jammed extruder or something like that, so the current behavour is perfect, you just need to recalculate the center when you continue.

    Kulitorum


  • administrators

    @kulitorum said in Does not extrude first g1 after a pause:

    that would be a bad solution though, quite often I need to make a stop to clean a jammed extruder or something like that, so the current behavour is perfect, you just need to recalculate the center when you continue.

    The disadvantage of allowing a pause in the middle of an arc move is that it will be necessary either to store additional information in each move segment to record what the original XY coordinates were at the start of the arc move (so that the centre can be calculated properly), or to read back through the print file when resuming to establish what those original XY coordinates were. The first requires additional memory, the second introduces additional complexity.


Locked
 

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