Reume after m601 pause not performing as expected



  • So I have a duet 3 hc6 hooked up too an ender 5 with 3 extruders into 1 hotend rig. I'm using Duet web control on a raspberry pi 4 hooked up via serial cable to the duet 3 board. I'm using perusa slicer as I like how it creates purge towers but have run into the following issue. I want to pause the print to change out the color on an extruder then resume printing. I use persua slicer to insert m601 at layer 2 it does pause althought seems to ignore my pause.g script, but then when I resume it just kinda extrudes a bit of fillament and puts the nozzle back on the print and then pauses again.After 3 days trying to research this I cant for the life of me figure out how to get it to resume printing. I will attach my pause.g and resume.g below in the hopes someone cant point out what I'm doing wrong or maybe suggest a better way to go about this with duet hardware. (I used to use cura slicer with the pause at height on marlin firmware mks gen L board without any issues).
    Thanks for your attention!

    ; pause.g
    ; called when a print from SD card is paused
    ;
    ; generated by RepRapFirmware Configuration Tool v2.1.4 on Sun Dec 22 2019 16:11:22 GMT-0500 (Eastern Standard 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
    ; called before a print from SD card is resumed
    ;
    ; generated by RepRapFirmware Configuration Tool v2.1.4 on Sun Dec 22 2019 16:11:22 GMT-0500 (Eastern Standard 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

    build info below
    Board: Duet 3 MB6HC (MB6HC)
    DSF Version: 1.1.0.5
    Firmware: RepRapFirmware for Duet 3 MB6HC v0.6 or 1.0 3.0beta12 (2019-11-02b1)



  • You want M226 for pause.

    M601 is not defined for Duet/RepRap firmware. Nor in Marlin, etc. It is a Prusa only thing.



  • @Danal Sorry Yes ribbon cable, g code is below
    G1 F1200.000
    G1 X36.795 Y43.354 E9.52794
    G1 X36.771 Y43.475 E9.53077
    G1 X36.747 Y43.597 E9.53311
    G1 X36.730 Y43.835 E9.53663
    G1 X36.730 Y56.927 E9.69288
    G1 X36.763 Y57.252 E9.69678
    G1 X36.782 Y57.347 E9.69873
    G1 X36.818 Y57.402 E9.70003
    G1 X36.835 Y57.424 E9.70055
    G1 X36.975 Y57.585 E9.70432
    G1 X39.744 Y60.379 E9.76438
    G1 X39.759 Y60.399 E9.76469
    G1 X39.763 Y60.407 E9.76480
    G1 X39.767 Y60.411 E9.76485
    G1 X39.771 Y60.414 E9.76490
    G1 X39.822 Y60.441 E9.76544
    M106 S229.5
    G1 Z1.700 F7800.000
    M117 PAUSE HAPPENS HERE
    M601
    G1 E4.76544 F2400.00000
    G92 E0
    G1 Z2.700 F7800.000
    G1 X39.542 Y43.201
    G1 Z1.700
    G1 E5.00000 F2400.00000
    G1 F900.000
    G1 X39.322 Y43.292 E5.00808
    G1 X39.201 Y43.385 E5.01323
    G1 X39.043 Y43.004 E5.02717
    G1 X39.503 Y43.004 E5.04273
    G1 X39.531 Y43.142 E5.04748
    G1 E0.04748 F2400.00000
    G92 E0



  • That was it! I just needed to insert M226! thanks Danal!!!! 3 days I was dreading having to ask someone lol!


  • administrators

    The other command you can use for this purpose is M600. See https://duet3d.dozuki.com/Wiki/Gcode#Section_M600_Filament_change_pause.



  • So I was wrong that m226 didnt resolve the behavior. Basically it seemed to use the pause and resume scripts but then it squirts some plastic on the spot the pause happens circles around and goes back to pause. another oddity it seemed to retract T1 when I was using T0 although none of the gcode appears to have a tool change in it.

    https://www.youtube.com/watch?v=3XeIBw7q12c



  • I don't use pause a lot, so I could be wrong... but... this looks to me like two different pause commands:

    6e96c927-6764-44aa-a931-3f20b62ec5b7-image.png

    One is "at byte" and the other is "at Xnnn Ynnn Znnn". Any chance the slicer has two different pause things enabled?

    What happens if you hit resume print again?



  • @Danal I checked the slicer and there is no custom gcode in it aside from my tool change gcode which shouldn't be coming into play as I'm not changing tools in this test. When I click on resume, it does what that video shows every time over and over and over, like it starts running the code right before the pause m226 so just gets stuck in a loop, I checked the slicer and the only thing I'm seeing is the right click on layer 3 where I inserted M226. (had the same experience with m600 but I don't have any custom filament change g code file saved so am assuming m600 defaults to running my pause.g and resume.g). I checked the gcode file and it doesn't appear to have anything other then M226 in it either.


  • administrators

    It may be a firmware issue. Are you running your Duet 3 with or without a Raspberry Pi connected?



  • @dc42 Running it with Duet web control through a raspberry pi 4 on the SBC 26 pin header.
    Board: Duet 3 MB6HC (MB6HC)
    DSF Version: 1.1.0.5
    Firmware: RepRapFirmware for Duet 3 MB6HC v0.6 or 1.0 3.0beta12 (2019-11-02b1)


  • administrators

    @tsunaminaut said in Reume after m601 pause not performing as expected:

    @dc42 Running it with Duet web control through a raspberry pi 4 on the SBC 26 pin header.
    Board: Duet 3 MB6HC (MB6HC)
    DSF Version: 1.1.0.5
    Firmware: RepRapFirmware for Duet 3 MB6HC v0.6 or 1.0 3.0beta12 (2019-11-02b1)

    Thanks, I suspect it is to do with the way that DSF is handling M226 and M600.



  • @dc42 Is there a way of generating a log to see what commands are being sent by the pi? I'm pretty sure manually pressing the pause and resume buttons inside the web interface work as they should, it feels like upon resume its starting up again right before the pause in the code.



  • ssh to the pi, then:

    sudo journalctl -u duetcontrolserver will dump the entire log; if to terminal with a 'more' like interface; if pipe or redirect, entire log.

    sudo journalctl -fu duetcontrolserver with 'f' will follow (like tail -f) the log. You can leave this running while you try various commands, if you just want to see the log.


  • administrators

    Please upgrade your DSF version and check if the problem perists. The print management has changed significantly since v1.1.0.5.



  • @chrishamm updated as follows
    Board: Duet 3 MB6HC (MB6HC)
    DSF Version: 1.2.3.0
    Firmware: RepRapFirmware for Duet 3 MB6HC v0.6 or 1.0 3.0beta12 (2019-11-02b1)

    https://www.youtube.com/watch?v=Pl8WEcgjPe8

    Now M226 does the pause.g script when I hit resume it goes back to the print and throws error below

    1/19/2020, 12:31:44 PM M24
    Printing resumed
    1/19/2020, 12:31:44 PM Printing paused at X114.2 Y113.1 Z1.3
    1/19/2020, 12:31:44 PM Error: G1 has thrown an exception: [AggregateException] One or more errors occurred. (A task was canceled.)
    1/19/2020, 12:31:44 PM Cancelled printing file 0:/gcodes/PRINTER_CANAL_v2PauseTestNew3.gcode, print time was 0h 2m


  • administrators

    @tsunaminaut I'm sorry you're still having an issue with that version. I believe this is fixed in DSF 1.2.3.1 which is available on the unstable package feed. To activate it, replace stable with unstable in /etc/apt/sources.list.d/duet3d.list and run a regular system update (sudo apt-get update && sudo apt-get upgrade).



  • @chrishamm Im now on
    Board: Duet 3 MB6HC (MB6HC)
    DSF Version: 1.2.3.1
    Firmware: RepRapFirmware for Duet 3 MB6HC v0.6 or 1.0 3.0 (2020-01-03b3)
    The issue continues, it appears to be fixed on 1 single extruder print but once I put a pause in a print that has multiple extruders it goes back to doing the same thing as in the video from the above post.

    1/19/2020, 7:59:14 PM M24
    Printing resumed
    1/19/2020, 7:58:05 PM Printing paused at X72.4 Y117.9 Z0.5
    1/19/2020, 7:58:02 PM M24
    Printing resumed
    1/19/2020, 7:57:43 PM Printing paused at X72.4 Y117.9 Z0.5
    1/19/2020, 7:57:40 PM M24
    Printing resumed
    1/19/2020, 7:57:31 PM Printing paused at X72.4 Y117.9 Z0.5
    1/19/2020, 7:57:28 PM M24
    Printing resumed
    1/19/2020, 7:57:28 PM Printing paused at X72.4 Y117.9 Z0.5


  • administrators

    I've prepared another in DSF 1.2.4 which I will release shortly. It will allow you to pause prints wherever you want.

    Thanks for reporting this!



  • @chrishamm @chrishamm Appreciate you looking into this thanks! Ill report back if 1.2.4 fixes this!



  • I installed 1.2.4 and now m226 just freezes the printer and it wont resume, also oddly now when I attempt to print files it prints the purge tower base and then just drops the bed untill it bottoms out and starts skipping my z motor. On another test print it was printing a skirt and halfway around it it just started dropping my z as well. I'm having trouble figuring out how to go back to a stable build. would you be able to share a link to the documentation with instructions for that, it would be appreciated as my printer is now unusable.



  • @tsunaminaut Starting to think I have a defective board. I will get a file to print then half an hour later the next time I try to print the same file it just freezes for no obvious reason 1 minute in theres no error codeit stays hot, is there some limit on the size of files a duet 3 hc 6 can handle?. Also I cant find any documentation on how to get back to a stable build do I need to wipe everything out and start over again?

    1/28/2020, 1:17:00 AM M122
    === Diagnostics ===
    RepRapFirmware for Duet 3 MB6HC v0.6 or 1.0 version 3.0 running on Duet 3 MB6HC
    Board ID: 08DJM-956L2-G43S4-6JTDL-3SN6R-1S62G
    Used output buffers: 1 of 32 (6 max)
    === RTOS ===
    Static ram: 152720
    Dynamic ram: 150320 of which 12 recycled
    Exception stack ram used: 536
    Never used ram: 89628
    Tasks: NETWORK(ready,1984) HEAT(blocked,1200) CanReceiv(suspended,3808) CanSender(suspended,1428) CanClock(blocked,1424) TMC(blocked,76) MAIN(running,4156) IDLE(ready,160)
    Owned mutexes:
    === Platform ===
    Last reset 00:12:16 ago, cause: software
    Last software reset at 2020-01-28 06:04, reason: User, spinning module LinuxInterface, available RAM 89628 bytes (slot 3)
    Software reset code 0x0010 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0444a000 BFAR 0x00000000 SP 0xffffffff Task 0x4e49414d
    Error status: 0
    Free file entries: 10
    SD card 0 not detected, interface speed: 37.5MBytes/sec
    SD card longest block write time: 0.0ms, max retries 0
    MCU temperature: min 37.3, current 38.1, max 38.6
    Supply voltage: min 24.7, current 24.9, max 25.1, under voltage events: 0, over voltage events: 0, power good: yes
    12V rail voltage: min 12.3, current 12.3, max 12.4, under voltage events: 0
    Driver 0: standstill, reads 4095, writes 30 timeouts 0, SG min/max 0/1023
    Driver 1: standstill, reads 4096, writes 30 timeouts 0, SG min/max 0/1023
    Driver 2: standstill, reads 4105, writes 21 timeouts 0, SG min/max 0/792
    Driver 3: standstill, reads 4110, writes 17 timeouts 0, SG min/max 0/123
    Driver 4: standstill, reads 4113, writes 14 timeouts 0, SG min/max 0/0
    Driver 5: standstill, reads 4114, writes 14 timeouts 0, SG min/max 0/0
    Date/time: 2020-01-28 06:17:04
    Slowest loop: 3.62ms; fastest: 0.09ms
    === Move ===
    Hiccups: 0(0), FreeDm: 315, MinFreeDm: 310, MaxWait: 459429ms
    Bed compensation in use: mesh, comp offset 0.000
    === MainDDARing ===
    Scheduled moves: 349, completed moves: 289, StepErrors: 0, LaErrors: 0, Underruns: 0, 0
    === AuxDDARing ===
    Scheduled moves: 0, completed moves: 0, StepErrors: 0, LaErrors: 0, Underruns: 0, 0
    === Heat ===
    Bed heaters = 0 -1 -1 -1 -1 -1 -1 -1 -1, chamberHeaters = -1 -1 -1 -1
    Heater 0 is on, I-accum = 0.2
    Heater 1 is on, I-accum = 0.5
    === GCodes ===
    Segments left: 1
    Stack records: 2 allocated, 0 in use
    Movement lock held by null
    http* is ready with "M122" in state(s) 0
    telnet is idle in state(s) 0
    file* is doing "G1 X153.694000 Y154.263000 E0.010930" in state(s) 0
    serial is idle in state(s) 0
    aux is idle in state(s) 0
    daemon* is idle in state(s) 0
    queue is idle in state(s) 0
    lcd is idle in state(s) 0
    spi is idle in state(s) 0
    autopause is idle in state(s) 0
    Code queue is empty.
    === Network ===
    Slowest loop: 1.13ms; fastest: 0.01ms
    Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0) Telnet(0)
    HTTP sessions: 0 of 8

    • Ethernet -
      State: 0
      Error counts: 0 0 0 0 0
      Socket states: 0 0 0 0 0 0 0 0
      === CAN ===
      Messages sent 2951, longest wait 0ms for type 0
      === Linux interface ===
      State: 0, failed transfers: 0
      Last transfer: 14ms ago
      RX/TX seq numbers: 27156/21561
      SPI underruns 0, overruns 0
      Number of disconnects: 0
      Buffer RX/TX: 556/1940-0
      === Duet Control Server ===
      Duet Control Server v1.2.4.0
      File:
      Buffered code: G1 X153.694 Y154.263 E0.01093
      Buffered code: G1 X154.121 Y153.937 E0.03475
      Buffered code: G1 X154.369 Y153.815 E0.01786
      Buffered code: G1 X155.198 Y153.486 E0.05777
      Buffered code: G1 X155.585 Y153.297 E0.02785
      Buffered code: G1 X155.890 Y153.113 E0.02304
      Buffered code: G1 X156.754 Y152.483 E0.06922
      Buffered code: G1 X157.616 Y151.744 E0.07352
      Buffered code: G1 X158.648 Y150.809 E0.09015
      Buffered code: G1 X159.380 Y150.063 E0.06768
      Buffered code: G1 X163.268 Y145.845 E0.37137
      Buffered code: G1 X163.533 Y145.620 E0.02248
      Buffered code: G1 X163.784 Y145.458 E0.01938
      Buffered code: G1 X164.002 Y145.375 E0.01511
      Buffered code: G1 X164.668 Y145.584 E0.04513
      Buffered code: G1 X165.153 Y145.711 E0.03246
      Buffered code: G1 X165.696 Y145.777 E0.03541
      Buffered code: G1 X166.110 Y145.756 E0.02690
      Buffered code: G1 X166.484 Y145.695 E0.02449
      Buffered code: G1 X166.920 Y145.570 E0.02935
      Buffered code: G1 X168.305 Y144.986 E0.09736
      Buffered code: G1 X169.123 Y144.716 E0.05573
      Buffered code: G1 X169.809 Y144.543 E0.04582
      Buffered code: G1 X170.648 Y144.367 E0.05546
      Buffered code: G1 X171.354 Y144.269 E0.04619
      Buffered code: G1 X172.213 Y144.202 E0.05578
      Buffered code: G1 X173.781 Y144.252 E0.10157
      Buffered code: G1 X174.194 Y144.244 E0.02675
      Buffered code: G1 X174.613 Y144.163 E0.02757
      Buffered code: G1 X175.452 Y143.916 E0.05665
      Buffered code: G1 X175.672 Y143.887 E0.01438
      Buffered code: G1 X175.970 Y143.882 E0.01927
      ==> 1408 bytes
      Code buffer space: 2156
      Configured SPI speed: 2000000 Hz
      Full transfers per second: 29.65
      File /opt/dsf/sd/gcodes/18YodaRobes.gcode is selected, printing

    Log shows the following
    Jan 28 06:13:47 duet3 DuetControlServer[366]: [info] File: Finished macro file retractprobe.g
    Jan 28 06:13:47 duet3 DuetControlServer[366]: [info] Height map loaded from file heightmap.csv
    Print fails at this time so I am unable to cancel the print or abort it all I can do is emergency stop
    Jan 28 06:17:38 duet3 DuetControlServer[366]: [warn] Firmware halted
    Jan 28 06:17:38 duet3 DuetControlServer[366]: [warn] Firmware reset imminent
    Jan 28 06:17:38 duet3 DuetControlServer[366]: [warn] Emergency stop
    Jan 28 06:17:38 duet3 DuetControlServer[366]: [warn] Resetting controller
    Jan 28 06:17:38 duet3 DuetControlServer[366]: [info] Aborted print file


  • administrators

    @tsunaminaut Plesse share your sys directory and the file you have been trying to print. I have been unable to reproduce pause problems with 1.2.4 but I would really like to figure out why you still seem to have issues.

    For now, you may have more success using the Duet 3 in standalone mode, i.e. with a microSD card installed and without a Raspberry Pi.