Duet 2 V3.0 RC12 Constant pausing and stack overflow



  • Hi,

    I am using a bought printer that uses a Duet wifi on firmware V3.01-RC12.

    Today it is constantly pausing and reporting Push() stack overflow.

    I will be communicating with the supplier about updating the firmware but I'd like to try and narrow the problem down.

    I see the change notes for version 3.1.0 mention a macro stack depth fix and there is a simple filament sensor fitted.

    Could the filament sensor be triggering too often and be overwhelming the stack on this firmware version?

    Bad commands are also reported but with a stack overflow I don't know which could have occured first.

    I don't have access to unplug the sensor so I was thinking of commenting out the contents of pause.g to see if that removes the problem, any suggestions without updating the firmware or accessing the PCB would be appreciated.

    06/10/2020, 10:16:10 M122
    === Diagnostics ===
    RepRapFirmware for Duet 2 WiFi/Ethernet version 3.01-RC12 running on Duet Ethernet 1.02 or later
    Board ID: ---
    Used output buffers: 1 of 24 (23 max)
    === RTOS ===
    Static ram: 28084
    Dynamic ram: 94412 of which 40 recycled
    Exception stack ram used: 528
    Never used ram: 8008
    Tasks: NETWORK(ready,124) HEAT(blocked,1228) MAIN(running,616) IDLE(ready,76)
    Owned mutexes:
    === Platform ===
    Last reset 01:27:49 ago, cause: power up
    Last software reset at 2020-10-01 11:10, reason: User, spinning module GCodes, available RAM 9064 bytes (slot 2)
    Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0441f000 BFAR 0xe000ed38 SP 0xffffffff Task MAIN
    Error status: 8
    MCU temperature: min 22.0, current 27.9, max 28.4
    Supply voltage: min 23.4, current 24.1, max 24.1, under voltage events: 0, over voltage events: 0, power good: yes
    Driver 0: standstill, SG min/max 0/1023
    Driver 1: standstill, SG min/max not available
    Driver 2: standstill, SG min/max 0/232
    Driver 3: standstill, SG min/max 0/230
    Driver 4: standstill, SG min/max 0/243
    Date/time: 2020-10-06 10:16:06
    Cache data hit count 4294967295
    Slowest loop: 643.67ms; fastest: 0.14ms
    I2C nak errors 0, send timeouts 0, receive timeouts 0, finishTimeouts 0, resets 0
    === Storage ===
    Free file entries: 8
    SD card 0 detected, interface speed: 20.0MBytes/sec
    SD card longest read time 2.2ms, write time 172.5ms, max retries 0
    === Move ===
    Hiccups: 231(0), FreeDm: 169, MinFreeDm: 101, MaxWait: 2052945ms
    Bed compensation in use: none, comp offset 0.000
    === MainDDARing ===
    Scheduled moves: 17036, completed moves: 17036, StepErrors: 0, LaErrors: 0, Underruns: 0, 0 CDDA state: -1
    === AuxDDARing ===
    Scheduled moves: 0, completed moves: 0, StepErrors: 0, LaErrors: 0, Underruns: 0, 0 CDDA state: -1
    === Heat ===
    Bed heaters = 0 -1 -1 -1, chamberHeaters = 3 6 -1 -1
    Heater 0 is on, I-accum = 0.0
    Heater 1 is on, I-accum = 0.3
    Heater 3 is on, I-accum = 0.0
    === GCodes ===
    Segments left: 0
    Movement lock held by null
    HTTP is idle in state(s) 0
    Telnet is idle in state(s) 0
    File is idle in state(s) 0
    USB is idle in state(s) 0
    Aux is idle in state(s) 0
    Trigger is idle in state(s) 0
    Queue is idle in state(s) 0
    Daemon is idle in state(s) 0
    Autopause is idle in state(s) 0
    Code queue is empty.
    === Network ===
    Slowest loop: 149.81ms; fastest: 0.02ms
    Responder states: HTTP(1) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0)
    HTTP sessions: 3 of 8
    Interface state active, link 100Mbps full duplex
    06/10/2020, 10:12:48 Error: Printing is already paused!
    06/10/2020, 10:12:45 Error: Printing is already paused!
    06/10/2020, 10:11:46 Error: Push(): stack overflow
    06/10/2020, 10:11:44 Error: Printing is already paused!
    06/10/2020, 10:11:41 Error: Printing is already paused!
    06/10/2020, 10:11:29 Printing paused at X20.9 Y9.1 Z13.0
    06/10/2020, 10:11:25 Resume state saved
    06/10/2020, 10:11:07 Error: Bad command: Y1.626 E0.1030
    06/10/2020, 10:11:05 Printing paused at X2.6 Y-9.2 Z13.0
    06/10/2020, 10:11:02 Resume state saved
    06/10/2020, 10:10:55 Error: Bad command: 2 Y22.020 E0.2199
    06/10/2020, 10:10:45 Error: Printing is already paused!
    06/10/2020, 10:10:43 Printing paused at X17.5 Y22.0 Z13.0
    06/10/2020, 10:10:41 Resume state saved
    06/10/2020, 10:09:59 Error: Bad command: 096 E0.1030
    06/10/2020, 10:09:56 Printing paused at X11.6 Y-21.9 Z12.6
    06/10/2020, 10:09:52 Resume state saved
    06/10/2020, 10:09:42 Error: Bad command: 0 Y7.057 E0.1030
    06/10/2020, 10:09:30 Error: Printing is already paused!
    06/10/2020, 10:09:28 Error: Printing is already paused!
    06/10/2020, 10:09:22 Error: Printing is already paused!
    06/10/2020, 10:09:20 Printing paused at X2.6 Y-3.8 Z12.6
    06/10/2020, 10:09:16 Resume state saved
    06/10/2020, 10:09:12 Error: Bad command: 2 Y22.020 E0.2199


  • administrators

    Please post your pause.g macro file. It sounds as though it may be recursive.



  • This looks like the command to trigger the pause?
    M581 P1 T1 S1 R1

    pause.g

    M83
    G1 E-4 F2500
    G91
    G1 Z5 F5000
    G90
    G1 X0 Y85 F5000

    M300 S4000 P500
    G4 P1000
    M300 S4000 P500
    G4 P1000
    M300 S4000 P500


  • administrators

    Thanks. I think your diagnosis is correct, the filament monitor is providing several triggers (contact bounce?), causing nested pauses. I will change the firmware in the next RRF beta so that the T1 trigger is ignored if the print is already paused.



  • Would commenting out M581 P1 T1 S1 R1 be the simplest option for now?


  • administrators

    @Printer42 said in Duet 2 V3.0 RC12 Constant pausing and stack overflow:

    Would commenting out M581 P1 T1 S1 R1 be the simplest option for now?

    Yes, but of course that will also stop the filament sensor working.



  • Thanks for the quick responses, that will get things moving along again for now.


  • Moderator

    In the meantime you may want to update your firmware off of the old release candidate.

    Connect to the web interface and upload these zip file as is (do not extract them first) to the system folder.

    https://github.com/Duet3D/RepRapFirmware/releases/download/3.0/Duet2and3Firmware-3.0.zip

    https://github.com/Duet3D/RepRapFirmware/releases/download/3.1.1/Duet2and3Firmware-3.1.1.zip

    Afterwards you should be running firmware 3.1.1 and your config.g should work a lot better. Send M115 to confirm.

    Then send M98 P"config.g" and report any error messages.


Log in to reply