Random pauses with 3.5.0-rc.3+8
-
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
-
-
@balajiramani can you provide the gcode, and if possible highlight the code being ran when the pause occurred?.
also supply your config -
@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
-
@balajiramani thanks. can you also post your daemon.g?
-
@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
-
-
@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. -
@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.
-
Thank you all for the suggestion. Let me remove daemon.g, as I am currently not using it and will try again.
-
So, after removing daemon.g, there are no pauses. Sorry for the false alarm.
-