Duet3D Logo Duet3D
    • Tags
    • Documentation
    • Order
    • Register
    • Login

    Random pauses with 3.5.0-rc.3+8

    Scheduled Pinned Locked Moved Solved
    Beta Firmware
    4
    9
    253
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • balajiramaniundefined
      balajiramani
      last edited by

      I tried the new 3.5.0-rc.3+8 firmware and I see random pauses. Here is a video that shows the pause. The pause is between 11 and 13 seconds into the video.

      Here is the output of M122 taken after one such pause:

      M122
      === Diagnostics ===
      RepRapFirmware for Duet 2 WiFi/Ethernet version 3.5.0-rc.3+8 (2024-04-05 15:37:41) running on Duet WiFi 1.0 or 1.01
      Board ID: 08DAM-999TL-MQ4SD-6JTDL-3SS6N-968BX
      Used output buffers: 2 of 26 (23 max)
      === RTOS ===
      Static ram: 23256
      Dynamic ram: 73416 of which 20 recycled
      Never used RAM 12324, free system stack 110 words
      Tasks: NETWORK(1,ready,33.2%,220) HEAT(3,nWait 5,0.1%,313) Move(4,nWait 5,3.5%,258) MAIN(1,running,55.0%,745) IDLE(0,ready,8.3%,29), total 100.0%
      Owned mutexes: WiFi(NETWORK)
      === Platform ===
      Last reset 00:31:47 ago, cause: power up
      Last software reset at 2024-04-07 11:33, reason: User, Gcodes spinning, available RAM 14388, slot 2
      Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0041f000 BFAR 0xe000ed38 SP 0x00000000 Task MAIN Freestk 0 n/a
      Error status: 0x00
      Aux0 errors 0,0,0
      MCU temperature: min 34.7, current 47.5, max 49.1
      Supply voltage: min 23.4, current 24.2, max 24.7, under voltage events: 0, over voltage events: 0, power good: yes
      Heap OK, handles allocated/used 99/4, heap memory allocated/used/recyclable 2048/1212/1088, gc cycles 1
      Events: 0 queued, 0 completed
      Driver 0: ok, SG min 0
      Driver 1: ok, SG min 0
      Driver 2: ok, SG min 0
      Driver 3: phase B may be disconnected, SG min 0
      Driver 4: standstill, SG min n/a
      Driver 5: 
      Driver 6: 
      Driver 7: 
      Driver 8: 
      Driver 9: 
      Driver 10: 
      Driver 11: 
      Date/time: 2024-04-07 16:00:29
      Cache data hit count 4294967295
      Slowest loop: 233.94ms; fastest: 0.13ms
      I2C nak errors 0, send timeouts 0, receive timeouts 0, finishTimeouts 0, resets 0
      === Storage ===
      Free file entries: 7
      SD card 0 detected, interface speed: 20.0MBytes/sec
      SD card longest read time 53.6ms, write time 15.3ms, max retries 1
      === Move ===
      DMs created 83, segments created 53, maxWait 490265ms, bed compensation in use: none, height map offset 0.000, max steps late 1, min interval -24898, bad calcs 0, ebfmin 0.00, ebfmax 1.00
      next step interrupt due in 64 ticks, disabled
      Moves shaped first try 826, on retry 580, too short 4644, wrong shape 93438, maybepossible 1202
      === DDARing 0 ===
      Scheduled moves 118046, completed 118006, hiccups 48, stepErrors 0, LaErrors 0, Underruns [116, 3, 184], CDDA state 3
      === Heat ===
      Bed heaters 0 -1 -1 -1, chamber heaters -1 -1 -1 -1, ordering errs 0
      Heater 0 is on, I-accum = 0.1
      Heater 1 is on, I-accum = 0.2
      === GCodes ===
      Movement locks held by null
      HTTP is idle in state(s) 0
      Telnet is idle in state(s) 0
      File is doing "G1 X-21.782 Y13.17 E.00871" 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
      LCD is idle in state(s) 0
      Daemon is idle in state(s) 0 0, running macro
      Autopause is idle in state(s) 0
      Q0 segments left 1
      Code queue 0 is empty
      === Network ===
      Slowest loop: 131.97ms; fastest: 0.00ms
      Responder states: HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0)
      HTTP sessions: 1 of 8
      === WiFi ===
      Interface state: active
      Module is connected to access point 
      Failed messages: pending 0, notrdy 0, noresp 0
      Firmware version 2.1beta6
      MAC address 5c:cf:7f:2c:25:00
      Module reset reason: Turned on by main processor, Vcc 3.40, flash size 2097152, free heap 43088
      WiFi IP address 192.168.1.61
      Signal strength -45dBm, channel 6, mode 802.11n, reconnections 0
      Clock register 00002002
      Socket states: 0 0 0 0 0 0 0 0
      
      jay_s_ukundefined 1 Reply Last reply Reply Quote 0
      • balajiramaniundefined balajiramani referenced this topic
      • jay_s_ukundefined
        jay_s_uk @balajiramani
        last edited by

        @balajiramani can you provide the gcode, and if possible highlight the code being ran when the pause occurred?.
        also supply your config

        Owns various duet boards and is the main wiki maintainer for the Teamgloomy LPC/STM32 port of RRF. Assume I'm running whatever the latest beta/stable build is

        balajiramaniundefined 1 Reply Last reply Reply Quote 0
        • balajiramaniundefined
          balajiramani @jay_s_uk
          last edited by

          @jay_s_uk Here is the gcode. Silica-box_lid_50mm_small_0.2mm_PLA_BigDelta_1h39m.gcode

          I think it is between lines 202363 and 202453.

          Here is the config.

          ; Setup some global variables
          global power_fail_retract = 2   ;  Retract 2mm when power fails
          global RunDaemon = true;
          
          ; Communication and general
          M550 P"BigDelta"				        ; Machine name and Netbios name (can be anything you like)
          M551 Preprap                        	; Machine password (used for FTP)
          M552 S1					                ; Enable WiFi. Disabled for setup and testing. Enable once set up on your network.
          
          ; Enable telnet
          M586 S1 P2
          
          ; Debugging
          M111 S0                                 ; Debug off
          M929 P"eventlog.txt" S1                 ; Start logging to file eventlog.txt
          
          M555 P2                           	    ; Set output to look like Marlin
          G21                                 	; Work in millimetres
          G90                                	    ; Send absolute coordinates...
          M83                                 	; ...but relative extruder moves
          
          ; Axis and motor configuration
          M569 P0 S0				; Drive 0 goes backwards
          M569 P1 S0				; Drive 1 goes backwards
          M569 P2 S0				; Drive 2 goes backwards
          M569 P3 S0				; Drive 3 goes backwards
          
          ; Assign extruder drive
          M584 E3
          
          
          ; Set homing switch config
          M574 X2 S1 P"!xstop"        ; Set homing switch configuration on S1 = high-end, active-low
          M574 Y2 S1 P"!ystop"        ; Set homing switch configuration on S1 = high-end, active-low
          M574 Z2 S1 P"!zstop"        ; Set homing switch configuration on S1 = high-end, active-low
          
          ; Set it as a linear delta
          M669 K3
          
          ; Setup paneldue 5i
          M575 P1 S1 B57600
          
          M665 L395.647:395.647:395.647 R214.811 H359.735 B160.0 X-0.041 Y0.017 Z0.000
          M666 X-1.119 Y-1.265 Z2.385 A0.00 B0.00
          M350 X16 Y16 Z16 E16 I1    	; Set 16x microstepping with interpolation
          M92 X200 Y200 Z200			; Set axis steps/mm
          
          M906 X1400 Y1400 Z1400 E1400 I60	; Set motor currents (mA) and increase idle current to 60%
          M84 S60                             ; Set idle timeout
          M201 X12000 Y12000 Z2000 E10000        ; Accelerations (mm/s^2)
          M203 X20000 Y20000 Z5000 E3600		; Maximum speeds (mm/min)
          ;M566 X900 Y900 Z300 E3600 P1		; Maximum instant speed changes mm/minute
          M566 X600 Y600 Z300 E450 P1         ; Maximum instant speed changes mm/minute
          M204 P6000 T6000                    ; Set acceleration for print and travel moves
          
          ; Configure Input shaping
          M593 P"zvdd" F42 S0.05
          ;M593 P"mzv" F42 S0.05
          
          ; Thermistors
          M308 S0 P"bed_temp" Y"thermistor" T100000 B3950 R4700 H30 L0	; Put your own H and/or L values here to set the bed thermistor ADC correction
          ;M308 S1 P"e0_temp" Y"thermistor" T100000 B3950 R4700 H30 L0	; 100K NTC
          M308 S1 P"e0_temp" Y"thermistor" T100000 B4658 C6.5338987554e-08 ; 104-NT
          
          
          M950 H0 C"bed_heat" T0      ; Set up H0 as the bed heater using T0 as the sensor
          M950 H1 C"e0_heat" T1       ; Set up H1 as the extruder heater using T1 as the sensor
          M140 H0                     ; Map H0 as the bed heater
          
          ; Set temperature excursion warnings
          M570 H0 P20
          M570 H1 P20
          
          M308 S3 Y"mcu-temp" A"MCU" ; configure sensor 3 as thermistor on pin e1temp for left stepper
          M308 S4	Y"drivers"  A"Drivers"  ; configure sensor 4 as temperature warning and overheat flags on the TMC2660 on Duet
          M912 P0 S-3.5               ; Calibrate MCU temp
          
          ; Fan definitions
          M950 F0 C"fan0"
          M950 F1 C"fan1"
          M950 F2 C"fan2"
          
          ; Thermostatic fan on 1 for cooling the hotend
          M106 P1 T50 H1
          ; Thermostatic fan on 2 for cooling the board
          M106 P2 H3:4 L.3 X1 B0.3 T35:70 ; set fan 2 value
          
          ; Tool definitions
          M563 P0 D0 H1                       	; Define tool 0
          G10 P0 S0 R0                        	; Set tool 0 operating and standby temperatures
          ;M92 E1392								; Based on https://www.thingiverse.com/thing:1359717; 2023/01/06
          M92 E1077.1646                          ; This is the new value for the hobb-goblin extruder.  03/07/2023
          ;M92 E319.2005                           ; Set extruder steps per mm.  This is for the MK8 gear
          
          ; Z probe and compensation definition
          M558 P8 C"^!zprobe.in" R0.4 H4 F1200 T6000 A5 S0.01	; Z probe is a piezo sensor
          G31 X0 Y0 Z-0.08 P100			; Set the zprobe height and threshold
          M557 R150 S20				; Probe within a radius of 150mm and mesh spacing of 20
          M376 H5                     ; Taper off bed compensation after 5mm
          
          ; Configure power failure and resume
          M911 S21.0 R23.0 P"G91 M83 G1 Z3 E{-global.power_fail_retract} F1000" ; Relative movement and extrusion.  Move head up and retract 2mm filament.
          
          M208 S1 Z-0.5				; set minimum Z
          T0					        ; select first hot end
          
          M501					    ; Load any config overrides
          
          jay_s_ukundefined 1 Reply Last reply Reply Quote 0
          • jay_s_ukundefined
            jay_s_uk @balajiramani
            last edited by

            @balajiramani thanks. can you also post your daemon.g?

            Owns various duet boards and is the main wiki maintainer for the Teamgloomy LPC/STM32 port of RRF. Assume I'm running whatever the latest beta/stable build is

            balajiramaniundefined 1 Reply Last reply Reply Quote 0
            • balajiramaniundefined
              balajiramani @jay_s_uk
              last edited by

              @jay_s_uk Here daemon.g

              ; /sys/daemon.g 
              ; Used to execute regular tasks, the firmware executes it and once the end of file is reached it waits. If the file is not found it waits and then looks for it again.
              
              ; Loop, to be able to turn on/off daemon.g
              while global.RunDaemon
                ; Stuff goes here         
              
                ; Resume after filament change
                if exists(global.FilamentCHG)
                  if global.FilamentCHG = true && state.status="paused"
                    M24                                                                        ; Resume the pause automatically now that the manual filament change is done
                    set global.FilamentCHG = false
              
              NeoDueundefined dc42undefined 2 Replies Last reply Reply Quote 0
              • Phaedruxundefined Phaedrux marked this topic as a question
              • NeoDueundefined
                NeoDue @balajiramani
                last edited by NeoDue

                @balajiramani you might want to take a look at the manual - you are running an endless (as long as your global variable is active) loop in daemon.g which is normally not needed since RRF runs daemon.g in fixed intervals.
                In such cases, it is highly suggested to add a recurring wait into the loop since it might clog up the processor otherwise, but in your case my guess would be to simply change the "while" in line 5 with an "if", unless the default wait time is too long for your needs.

                1 Reply Last reply Reply Quote 0
                • dc42undefined
                  dc42 administrators @balajiramani
                  last edited by dc42

                  @balajiramani the main issue with your daemon.g file is that there is no delay command in the while-loop. I suggest you add a delay at the end, like this:

                  ; /sys/daemon.g 
                  ; Used to execute regular tasks, the firmware executes it and once the end of file is reached it waits. If the file is not found it waits and then looks for it again.
                  
                  ; Loop, to be able to turn on/off daemon.g
                  while global.RunDaemon
                    ; Stuff goes here         
                  
                    ; Resume after filament change
                    if exists(global.FilamentCHG)
                      if global.FilamentCHG = true && state.status="paused"
                        M24                                                                        ; Resume the pause automatically now that the manual filament change is done
                        set global.FilamentCHG = false
                    G4 S2
                  

                  I've added a delay of 2 seconds, but use a longer delay if that will still respond quickly enough for you.

                  Duet WiFi hardware designer and firmware engineer
                  Please do not ask me for Duet support via PM or email, use the forum
                  http://www.escher3d.com, https://miscsolutions.wordpress.com

                  balajiramaniundefined 1 Reply Last reply Reply Quote 0
                  • balajiramaniundefined
                    balajiramani @dc42
                    last edited by

                    Thank you all for the suggestion. Let me remove daemon.g, as I am currently not using it and will try again.

                    balajiramaniundefined 1 Reply Last reply Reply Quote 0
                    • balajiramaniundefined
                      balajiramani @balajiramani
                      last edited by

                      So, after removing daemon.g, there are no pauses. Sorry for the false alarm.

                      1 Reply Last reply Reply Quote 1
                      • balajiramaniundefined balajiramani has marked this topic as solved
                      • First post
                        Last post
                      Unless otherwise noted, all forum content is licensed under CC-BY-SA