Duet 3 Software Reset when starting print



  • Having a weird issue whenever I start a print job on my Duet3. The bed heater starts warming, but within a couple of seconds I get a bunch of messages on the UI that there's been a reset and the job stops.

    Using M122, I get the following diagnostics:

    === Diagnostics ===
    RepRapFirmware for Duet 3 MB6HC v0.6 or 1.0 version 3.0 running on Duet 3 MB6HC
    Board ID: 08DJM-956L2-G43S8-6J9DA-3SD6J-1V3QF
    Used output buffers: 1 of 32 (5 max)
    === RTOS ===
    Static ram: 152720
    Dynamic ram: 149628 of which 20 recycled
    Exception stack ram used: 216
    Never used ram: 90632
    Tasks: NETWORK(ready,1984) HEAT(blocked,1200) CanReceiv(suspended,3808) CanSender(suspended,1476) CanClock(blocked,1424) TMC(blocked,212) MAIN(running,4476) IDLE(ready,160)
    Owned mutexes:
    === Platform ===
    Last reset 00:03:33 ago, cause: software
    Last software reset at 2020-02-26 17:51, reason: Memory protection fault, spinning module GCodes, available RAM 90248 bytes (slot 0)
    Software reset code 0x4163 HFSR 0x00000000 CFSR 0x00000082 ICSR 0x0444a804 BFAR 0x2235040a SP 0x20417314 Task 0x4e49414d
    Stack: 00421347 004006da 61000000 00000000 ffffffff 20415c30 0000017c 2043bec6 00000000 2043bd4e 2043bc98 00000001 00000018 00000001 00000000 00000000 0045484d 00000001 20428540 00000001 00000000 00000000 2042b758
    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 35.4, current 35.5, max 36.0
    Supply voltage: min 23.4, current 23.5, max 23.5, under voltage events: 0, over voltage events: 0, power good: yes
    12V rail voltage: min 11.9, current 12.0, max 12.0, under voltage events: 0
    Driver 0: standstill, reads 5381, writes 14 timeouts 0, SG min/max 0/0
    Driver 1: standstill, reads 5382, writes 14 timeouts 0, SG min/max 0/0
    Driver 2: standstill, reads 5382, writes 14 timeouts 0, SG min/max 0/0
    Driver 3: standstill, reads 5383, writes 14 timeouts 0, SG min/max 0/0
    Driver 4: standstill, reads 5386, writes 11 timeouts 0, SG min/max 0/0
    Driver 5: standstill, reads 5384, writes 14 timeouts 0, SG min/max 0/0
    Date/time: 2020-02-26 17:55:30
    Slowest loop: 2.23ms; fastest: 0.08ms
    === Move ===
    Hiccups: 0(0), FreeDm: 375, MinFreeDm: 375, MaxWait: 0ms
    Bed compensation in use: none, comp offset 0.000
    === MainDDARing ===
    Scheduled moves: 0, completed moves: 0, 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
    === GCodes ===
    Segments left: 0
    Stack records: 1 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 idle 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: 0.46ms; 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 852, longest wait 0ms for type 0
      === Linux interface ===
      State: 0, failed transfers: 0
      Last transfer: 13ms ago
      RX/TX seq numbers: 28973/6817
      SPI underruns 0, overruns 0
      Number of disconnects: 0
      Buffer RX/TX: 0/0-0
      === Duet Control Server ===
      Duet Control Server v1.2.4.0
      Code buffer space: 4096
      Configured SPI speed: 2000000 Hz
      Full transfers per second: 30.51

  • administrators

    Please upgrade to 3.01-RC2 and see if that fixes the problem.



  • Same issue:

    M122
    

    === Diagnostics ===
    RepRapFirmware for Duet 3 MB6HC v0.6 or 1.0 version 3.01-RC2 running on Duet 3 MB6HC
    Board ID: 08DJM-956L2-G43S8-6J9DA-3SD6J-1V3QF
    Used output buffers: 1 of 40 (13 max)
    === RTOS ===
    Static ram: 153912
    Dynamic ram: 158500 of which 44 recycled
    Exception stack ram used: 216
    Never used ram: 80544
    Tasks: NETWORK(ready,1972) HEAT(blocked,1196) CanReceiv(suspended,3820) CanSender(suspended,1488) CanClock(blocked,1436) TMC(blocked,212) MAIN(running,4544) IDLE(ready,76)
    Owned mutexes:
    === Platform ===
    Last reset 00:05:31 ago, cause: software
    Last software reset at 2020-02-27 00:24, reason: Memory protection fault, spinning module GCodes, available RAM 80160 bytes (slot 1)
    Software reset code 0x4163 HFSR 0x00000000 CFSR 0x00000082 ICSR 0x0443a804 BFAR 0x171f0b9b SP 0x20417814 Task 0x4e49414d
    Stack: 00424583 0040110e 610d0000 00000000 00000000 00000000 00000000 00000000 ffffffff 2042e520 00000000
    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 35.1, current 35.4, max 35.4
    Supply voltage: min 23.6, current 23.7, max 23.7, under voltage events: 0, over voltage events: 0, power good: yes
    12V rail voltage: min 11.9, current 11.9, max 12.0, under voltage events: 0
    Driver 0: standstill, reads 5689, writes 0 timeouts 0, SG min/max not available
    Driver 1: standstill, reads 5689, writes 0 timeouts 0, SG min/max not available
    Driver 2: standstill, reads 5689, writes 0 timeouts 0, SG min/max not available
    Driver 3: standstill, reads 5689, writes 0 timeouts 0, SG min/max not available
    Driver 4: standstill, reads 5688, writes 0 timeouts 0, SG min/max not available
    Driver 5: standstill, reads 5689, writes 0 timeouts 0, SG min/max not available
    Date/time: 2020-02-27 00:30:09
    Slowest loop: 2.16ms; fastest: 0.13ms
    === Move ===
    Hiccups: 0(0), FreeDm: 375, MinFreeDm: 375, MaxWait: 0ms
    Bed compensation in use: none, comp offset 0.000
    === MainDDARing ===
    Scheduled moves: 0, completed moves: 0, 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 -1 -1 -1, chamberHeaters = -1 -1 -1 -1
    === GCodes ===
    Segments left: 0
    Movement lock held by null
    http* is ready with "M122" in state(s) 0
    telnet is idle in state(s) 0
    file is idle 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: 0.86ms; 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 57, longest wait 0ms for type 0
      === Linux interface ===
      State: 0, failed transfers: 0
      Last transfer: 16ms ago
      RX/TX seq numbers: 7674/10552
      SPI underruns 0, overruns 0
      Number of disconnects: 0
      Buffer RX/TX: 0/0-0
      === Duet Control Server ===
      Duet Control Server v1.2.4.0
      Code buffer space: 4096
      Configured SPI speed: 2000000 Hz
      Full transfers per second: 31.73

    Not sure if it's in any way related, but M500 doesn't seem to want to save autotune results either, this is what the M500 writes to config-override.g:

    ; config-override.g file generated in response to M500 at 2020-02-27 00:43

    ; Heater model parameters
    M307 H0 A C D S V B0
    M307 H1 A C D S V B0
    ; Workplace coordinates



  • Could it have something to do with running off of the virtual sd card on the SBC, and not off of a dedicated card on the board itself?



  • Solved, or, no longer seeing the issue - I THINK it has something to do with the heater model which was coming in from config-override.g. I manually entered the correct model (because M500 wasn't saving anything other than empty values), forced the config-override to load on reboot, and... all my problems have gone away. (well, except for a inconsistent z-probe offset, but that's on me)


  • administrators

    Do you have a copy of the config.g and config-override.g that provoked the problem?

    Not saving the heater model parameters correctly is a known issue in Duet Software Framework.

    The software reset data in the M122 reports that you posted suggests that in both cases, it was trying to use an invalid tool object at the time.


Log in to reply