M25 doesn't pause the print ?
-
I'm using M25 to pause print in a trigger file when a sensor detects that the tool change wasn't executed correctly . The trigger is executed , printer executes the moves that I have in pause.g file , then it just continues the print.The pause button dissapears from the panel due, if I try to send m25 from console it returns " Error: M25: Printing is already paused!!" I tried to send M226 from console but nothing happened.
The expected behaviour shoud be :check the sensor-execute pause.g - pause the print.
-
Firmware version?
-
3.0 rc1 on a duet wifi+ duex. I know it may not make a lot of sense my first post so these are the relevant files :
config.g; Configuration file for Duet WiFi (firmware version 3) ; executed by the firmware on start-up ; ; generated by RepRapFirmware Configuration Tool v2.1.3 on Fri Nov 29 2019 18:20:35 GMT+0000 (Greenwich Mean Time) ; General preferences G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"Duet MMU" ; set printer name ; Network M552 S1 ; enable network M586 P0 S1 ; enable HTTP M586 P1 S0 ; disable FTP M586 P2 S0 ; disable Telnet ; Drives M569 P0 Y3:3:1 F12 S1 ; physical drive 0 goes forwards Selector (U) M569 P1 S0 ; physical drive 1 goes backwards Tumbler (W) M569 P2 R-1 ; Z drive disabled (I burnt the driver) M569 P3 Y3:3:1 F12 S1 ; physical drive 3 goes forwards Extruder (E) M569 P4 Y3:3:1 F12 S1 ; physical drive 4 goes forwards X axis (X) M569 P5 Y3:3:1 F2 S1 ; physical drive 5 goes forwards Z axis (Z1) M569 P6 Y3:3:1 F2 S1 ; physical drive 6 goes forwards Z axis (Z2) M569 P7 Y3:3:1 F12 S0 ; physical drive 7 goes backwards Y axis (Y) M569 P8 Y3:3:1 F12 S0 ; physical drive 8 goes backwards Filament drive axis mmu (V) M584 U0 W1 E3 X4 Z5:6 Y7 V8 A3 P7 ; set drive mapping M350 X16 Y16 Z16 E16 A16 U16 V16 W16 I1 ; Configure microstepping with interpolation M92 X200 Y200 Z400 E473 A473 U400 V140 W26 ; Set steps per mm M566 X800 Y800 Z60 E3000 A3000 U400 V2000 W2000 P1 ; Set maximum instantaneous speed changes (mm/min) M203 X12000 Y12000 Z900 E6000 A7200 U5000 V10000 W20000 ; Set maximum speeds (mm/min) M201 X6000 Y6000 Z200 E5000 A2500 U500 V2000 W2000 ; Set accelerations (mm/s^2) M204 P600 T3000 ; Set accelerations (mm/s^2) for print and travel moves M906 X1500 Y1500 Z600 E600 A600 U1200 V1300 W1300 I30 ; Set motor currents (mA) and motor idle factor in per cent M84 S30 ; Set idle timeout ; Axis Limits M208 X0 Y0 Z0 U0 V-1000 A-1000 W0 S1 ; Set axis minima M208 X247 Y210 Z246.60 U75 V1000 A1000 W78 S0 ; Set axis maxima ; Endstops M574 U1 W1 S3 ; configure mmu2 sensorless endstops for selector (u) and tumbler (W) M574 V2 S1 p"zstop" ; configure mmu2 filament feeder endstops at max end active-high M574 A2 S1 P"!e0stop" ; configure false extruder axis endstop at max end active-low, also split to xstop M574 X1 S1 P"e1stop" ; configure active-high endstop for low end on X via pin e1stop M574 Y1 S1 P"ystop" ; configure active-high 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"duex.pwm5" ; create servo pin 0 for BLTouch M558 P9 C"^zprobe.in" H5 F600 T9000 ; set Z probe type to bltouch and the dive height + speeds G31 P500 X0 Y0 Z2.5 ; set Z probe trigger value, offset and trigger height M557 X15:215 Y15:195 S20 ; define mesh grid G31 P25 X29 Y0 Z1.02 ; set Z probe trigger value, offset and trigger height M557 X29:242 Y0:210 P7:7 ; define mesh grid M671 X-48:285 Y105:105 S2 ; leadscrews at rear left middle and right middle ; Heaters M308 S0 P"bedtemp" Y"thermistor" T100000 B4138 ; 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 M143 H0 S120 ; set temperature limit for heater 0 to 120C M307 H0 B0 S1.00 ; disable bang-bang mode for the nozzle heater and set PWM limit M308 S1 P"e0temp" Y"thermistor" T100000 B4725 C7.06e-8 ; 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 M143 H1 S280 ; set temperature limit for heater 1 to 280C M307 H1 B0 S1.00 ; disable bang-bang mode for the nozzle 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 ; Tools M563 P0 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 M563 P1 D0 H1 F0 ; define tool 1 G10 P1 X0 Y0 Z0 ; set tool 1 axis offsets G10 P1 R0 S0 ; set initial tool 1 active and standby temperatures to 0C M563 P2 D0 H1 F0 ; define tool 2 G10 P2 X0 Y0 Z0 ; set tool 2 axis offsets G10 P2 R0 S0 ; set initial tool 2 active and standby temperatures to 0C M563 P3 D0 H1 F0 ; define tool 3 G10 P3 X0 Y0 Z0 ; set tool 3 axis offsets G10 P3 R0 S0 ; set initial tool 3 active and standby temperatures to 0C M563 P4 D0 H1 F0 ; define tool 4 G10 P4 X0 Y0 Z0 ; set tool 4 axis offsets G10 P4 R0 S0 ; set initial tool 4 active and standby temperatures to 0C ; Custom settings are not defined ; Miscellaneous M18 G92 G1 H2 Z0.002 G90 ; energise z motors M501 ; load saved parameters from non-volatile memory M911 S21 R23 P"M913 X0 Y0 G91 M83 G1 Z2 E-5 F1000" ; set voltage thresholds and actions to run on power loss M581 P"zstop" T7 C0 ; activate trigger 6 on rising edge M582 T7 ; check filament sensor to confirm extruder is unloaded M581 P"nil" T7 C0 ; deactivate trigger 6 M581 P"!e0stop" T6 C0 ; activate trigger 6 on rising edge M582 T6 ; check filament sensor to confirm extruder is unloaded M581 P"nil" T6 C0 ; deactivate trigger 6
-
tpre0.g
; called before tool 0 is selected M574 V2 S1 P"zstop" ; set V axis max endstop to switched high M581 P"zstop" T7 C0 ; activate trigger 7 on raising edge M582 T7 ; check finda sensor to confirm no filament is loaded M581 P"nil" T7 C0 ; deactivate trigger 7 G1 U1 F2000 ; move selector to T0 position G1 W4 F10000 ; move idler to T0 position M400 ; wait for moves to stop M98 P"loadselector.g" M98 P"loadextruder.g"
loadselector.g
G91 ; relative moves G1 V300 H1 F1440 ; feed filament to finda sensor G92 V0 ; force V to 0mm G1 V100 H1 F1440 ; feed a bit more to reliably switch sensor G92 V0 ; force V to 0mm G1 V30 H0 F2000 ; feed filament to reach ptfe tube G92 V0 ; force V to 0mm M400 ; wait for moves to finish M581 P"!zstop" T2 C0 ; activate trigger 2 on falling edge M582 T2 ; check finda sensor to confirm loading successful M581 P"nil" T2 C0 ; deactivate trigger 2 M400 ; wait for moves to finish G90
loadextruder.g
G91 M574 V2 S1 P"!xstop" ; set V axis max endstop to switched low M574 A2 S1 P"!e0stop" ; set A(extruder) axis max endstop to switched low G1 H1 V390 F6000 ; fast feed filament into the tube (set this 30-40mm shorter than the actual length of ptfe tube) G1 H1 V600 A600 F3000 ; fast feed filament into extruder (feed filament with both mmu and extruder until filament sensor triggers) G92 V0 A0 ; force V and A to 0mm M400 ; wait for moves to finish M581 P"e0stop" T3 C0 ; activate trigger 2 on falling edge M582 T3 ; check filament sensor to confirm loading successful M581 P"nil" T3 C0 ; deactivate trigger M400 ; wait for moves to finish G1 H2 V5 A5 F720 ; feed 5mm filament into extruder gears G90 ; absolute moves
tpost0.g
M116 P0 ; wait for nozzle heat up G1 W78 F10000 ; move W to safe position
tfree0.g
G1 W4 F10000 ; select T0 with idler M98 P"unloadextruder.g" M98 P"unloadselector.g"
trigger2.g
M25 M291 P"MMU loading failure detected" S3
trigger3.g
M25 M291 P"Extruder loading failure detected" S2
trigger4.g
M25 M291 P"Extruder unloading failure detected" S2
trigger5.g
M25 M291 P"MMU unloading failure detected" S2
trigger6.g
M584 P3 M291 P"Extruder loaded. MMU homing not allowed.Please unload extruder manually." S2 M25
trigger7.g
M584 P3 M291 P"MMU loaded. MMU operations not allowed.Please unload MMU manually." S2 M25
Fun fact, I also have a trigger10.g, just to test if the limit of 9 triggers still applies , and it works :
trigger10.gM584 P7 G28 UVWA
Trigger10 is used by homemmu.g :
;M291 P"(Re)home MMU?" S3 M574 V2 S1 p"zstop" ; configure mmu2 filament feeder endstops at max end active-high M574 A2 S1 P"!e0stop" ; configure false extruder axis endstop at max end active-low M581 P"zstop" T7 C0 ; activate trigger 6 on rising edge M582 T7 ; check filament sensor to confirm selector is unloaded M581 P"nil" T7 C0 ; deactivate trigger 6 M581 P"!e0stop" T6 C0 ; activate trigger 6 on rising edge M582 T6 ; check filament sensor to confirm extruder is unloaded M581 P"nil" T6 C0 ; deactivate trigger 6 M581 P"!zstop+e0stop" T10 C0 M582 T10 M581 P"nil" T10 C0
pause.g
; pause.g ; called when a print from SD card is paused ; ; generated by RepRapFirmware Configuration Tool v2.1.2 on Thu Nov 21 2019 10:36:05 GMT+0000 (Greenwich Mean Time) M83 ; relative extruder moves G1 E-10 F3600 ; retract 10mm of filament G91 ; relative positioning G1 Z5 F360 ; lift Z by 5mm G90 ; absolute positioning G1 X0 Y220 F6000 ; go to X=0 Y=0
-
Thanks, this is on my list to investigate.
MaxTriggers is set to 16 in RRF3 for Duet 2.
-
There was a problem with using M25 while the machine was doing a tool change. Please try the Duet2CombinedFirmware.bin file at https://www.dropbox.com/sh/3azy1njy3ayjsbp/AACquxr2m00eV568RZg5QG5wa?dl=0.
-
M25 during tool change works now, thank you.