Firmware Retraction causing odd pauses
-
I am trying to move away from S3D (no development) and Cura (slow, unstable) into Prusa Slicer.
While tuning my newest printer with Duet Wifi, I have noticed that there is a definite pause when the printer is performing a firmware retract. I have no such pauses with retracts baked into the gcode using slicer parameters. I can't seem to find any information on this on the forum, but perhaps I am using the incorrect search terms.
Please find M122 output, config.g, and gcode below as well as a video showing the issue. The first pause happens at ~41 seconds.
M122:
8/18/2020, 6:27:40 PM M122 === Diagnostics === RepRapFirmware for Duet 2 WiFi/Ethernet version 3.1.1 running on Duet WiFi 1.02 or later Board ID: 0JD0M-9K662-MG5TD-6J9D6-3SJ6S-1ALLX Used output buffers: 3 of 24 (16 max) === RTOS === Static ram: 27980 Dynamic ram: 94300 of which 44 recycled Exception stack ram used: 536 Never used ram: 8212 Tasks: NETWORK(ready,708) HEAT(blocked,1224) MAIN(running,1552) IDLE(ready,80) Owned mutexes: WiFi(NETWORK) === Platform === Last reset 00:33:28 ago, cause: software Last software reset time unknown, reason: User, spinning module GCodes, available RAM 8420 bytes (slot 2) Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x04417000 BFAR 0xe000ed38 SP 0xffffffff Task MAIN Error status: 8 MCU temperature: min 40.5, current 42.2, max 42.5 Supply voltage: min 23.6, current 23.8, max 24.2, under voltage events: 0, over voltage events: 0, power good: yes Driver 0: ok, SG min/max 0/1023 Driver 1: ok, SG min/max 0/225 Driver 2: standstill, SG min/max not available Driver 3: ok, SG min/max 0/299 Driver 4: standstill, SG min/max not available Date/time: 2020-08-18 18:27:39 Cache data hit count 3373496550 Slowest loop: 29.67ms; fastest: 0.13ms I2C nak errors 0, send timeouts 0, receive timeouts 0, finishTimeouts 0, resets 0 === Storage === Free file entries: 9 SD card 0 detected, interface speed: 20.0MBytes/sec SD card longest read time 11.1ms, write time 4.5ms, max retries 0 === Move === Hiccups: 0(0), FreeDm: 156, MinFreeDm: 128, MaxWait: 0ms Bed compensation in use: mesh, comp offset 0.000 === MainDDARing === Scheduled moves: 6147, completed moves: 6131, StepErrors: 0, LaErrors: 0, Underruns: 0, 0 CDDA state: 3 === 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 = -1 -1 -1 -1 Heater 0 is on, I-accum = 0.2 Heater 1 is on, I-accum = 0.5 === GCodes === Segments left: 1 Movement lock held by null HTTP is idle in state(s) 0 Telnet is idle in state(s) 0 File is doing "G1 X142.985 Y144.775 E0.01617" 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: 199.66ms; fastest: 0.09ms Responder states: HTTP(2) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0), 0 sessions HTTP sessions: 1 of 8 - WiFi - Network state is active WiFi module is connected to access point Failed messages: pending 0, notready 0, noresp 1 WiFi firmware version 1.23 WiFi MAC address 48:3f:da:4e:c4:bc WiFi Vcc 3.37, reset reason Unknown WiFi flash size 4194304, free heap 21912 WiFi IP address 10.10.30.28 WiFi signal strength -48dBm, reconnections 0, sleep mode modem Socket states: 4 0 0 0 0 0 0 0
Config.g:
; Drives M569 P0 S0 ; physical drive 0 (X) goes backwards M569 P1 S0 ; physical drive 1 (Y) goes backwards M569 P2 S0 ; physical drive 2 (Z) goes backwards M569 P3 S0 ; physical drive 3 (E0) goes backwards M569 P4 S0 ; physical drive 4 (E1) goes backwards M584 X0 Y1 Z2:4 E3 ; set drive mapping for dual Z M350 X16 Y16 Z16:16 E16 I1 ; configure microstepping with interpolation M906 X1275 Y1275 Z1150:1150 E1000 I30 ; set motor currents (mA) and motor idle factor in per cent M92 X80 Y80 Z400:400 E413 ; set steps per mm M84 S30 ; Set idle timeout ; Speeds M566 X900 Y900 Z600:600 E120 ; set maximum instantaneous speed changes (mm/min) M203 X18000 Y18000 Z600:600 E7200 ; set maximum speeds (mm/min) M201 X3500 Y3500 Z120:120 E10000 ; set accelerations (mm/s^2) M204 P2500 T3500 ; Set printing and travel accelerations (mm/s^2) ; Axis Limits M208 X0 Y0 Z-5 S1 ; set axis minima M208 X300 Y300 Z325 S0 ; set axis maxima ; Endstops M574 X1 S1 P"!xstop" ; configure active-low endstop for low end on X via pin xstop M574 Y2 S1 P"!ystop" ; configure active-low endstop for low end on Y via pin ystop M574 Z1 S2 ; configure Z-probe endstop for low end on Z ; Z-Probe M950 S0 C"exp.heater3" ; create servo pin 0 for BLTouch M558 P9 C"^zprobe.in" H5 F100 T4000 A10 R0.5 S0.020 ; set Z probe type to bltouch and the dive height + speeds G31 P500 X0 Y-42.8 Z.6 ; set Z probe trigger value, offset and trigger height M671 X-20:320 Y150:150 S5.0 ; Define Z leadscrews on either side M557 X0:300 Y0:257.2 S50 ; define mesh grid ; Sensors M308 S3 P"mcu-temp" Y"mcu-temp" A"MCU" ; Create sensor for MCU temp M308 S4 P"drivers" Y"drivers" A"TMC" ; Create senhsor for drivers ; Heaters M308 S0 P"bedtemp" Y"thermistor" T100000 B4092 ; configure sensor 0 as thermistor on pin bedtemp M950 H0 C"bedheat" T0 ; create bed heater output on bedheat and map it to sensor 0 M307 H0 B0 S1.00 ; disable bang-bang mode for the bed heater and set PWM limit M140 H0 ; map heated bed to heater 0 M143 H0 S120 ; set temperature limit for heater 0 to 120C M308 S1 P"e0temp" Y"thermistor" T100000 B4092 ; configure sensor 1 as thermistor on pin e0temp M950 H1 C"e0heat" T1 ; create nozzle heater output on e0heat and map it to sensor 1 M307 H1 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit ; Fans M950 F0 C"fan0" Q500 ; create fan 0 on pin fan0 and set its frequency M106 P0 S0 H-1 ; set fan 0 value. Thermostatic control is turned off M950 F1 C"fan1" Q500 ; create fan 1 on pin fan1 and set its frequency M106 P1 S1 H1 T45 ; set fan 1 value. Thermostatic control is turned on ; Virtual Fans used as Variables M950 F2 C"duex.fan8" ; virtual fan on duex fan 8 pin M106 P2 S0 C"vFan Homeall" ; set name for macro use ; Tools M563 P0 S"Dragon" D0 H1 F0 ; define tool 0 G10 P0 X0 Y0 Z0 ; set tool 0 axis offsets G10 P0 R0 S0 ; set initial tool 0 active and standby temperatures to 0C ; Firmware Retraction M207 T0 S5.55 R0 F2400 T2400 Z0 ; firmware retract G10/G11 5.55mm at 40mm/s no z-hop ; Custom settings are not defined ; Miscellaneous T0 ; select first tool M575 P1 S1 B57600 M501 ; Load Config Overrides
gcode file is available here. I can't seem for the life of me to figure out why this is pausing. The slowness makes the retraction distance meaningless since the hotend has time to dribble filament anyway.
Any assistance is greatly appreciated.
-
The
T
word of M207 refers to the unretract speed, not the tool. You have set your unretract speed to 0 mm/min, then again to T2400. I do not know how problematic that is, but it's not correct. You should putP0
to refer to tool 0.https://duet3d.dozuki.com/Wiki/Gcode#Section_M207_Set_retract_length
-
You're a wizard. That solved everything. It is now flying as I would expect it to!
Thank you so much for the second set of eyes.