Manual mid-print Filament-Change with single extruder
Hello,
I have a single extruder printer and I want to change the filament during a print.
It is a Duet-3D printer with Reprap-FW and Reptier Server on a Raspi.
I have sliced a few G-codes with Prusa-Slicer and added various commands to the "Filalent End G-Code"-section in the "filament settings".
The commands appear in the G-code in the right places, but RepRap-FW and Repetier-Server ignore them completely. It simply continues print withf the other filament and does not make any effort to take a break.
I have tried the following commands: M25, M226, M600 (both: alone and all at once)RepRap-FW-Macros:
; pause.g ; called when a print from SD card is paused ; ; generated by RepRapFirmware Configuration Tool v3.3.16 on Mon May 29 2023 15:51:46 GMT+0200 (Mitteleuropäische Sommerzeit) M83 ; relative extruder moves G1 E-3 F3600 ; retract 3mm of filament G91 ; relative positioning G1 Z50 F360 ; lift Z by 50mm G90 ; absolute positioning
; resume.g
; called before a print from SD card is resumed
;
; generated by RepRapFirmware Configuration Tool v3.3.16 on Mon May 29 2023 15:51:46 GMT+0200 (Mitteleuropäische Sommerzeit)
G1 R1 X0 Y0 Z5 F6000 ; go to 5mm above position of the last print move
G1 R1 X0 Y0 Z0 ; go back to the last print move
M83 ; relative extruder moves
;G1 E3 F3600 ; extrude 3mm of filament
;filament-change.g
M25
Repetier-Server Macros:
; Sample pause code - modify to your needs!
M83 ; relative extrusion mode
G1 E-3 F1800 ; Retract a bit to reduce oozing
G91 ;Set to Relative Positioning
@if {{state.pos_z + 5 < config.move_z_max }}
G1 Z5 F600
@endif
G90 ;Set to Absolute Positioning
G1 X0 Y0 F9000
;resume code
Example of an gcode section with intended filament-change
[....]
G1 X1.685 Y4.112 E2.43328 G1 X1.727 Y4.154 E2.43586 G10 ; retract G92 E0 ; Filament-specific end gcode M25 M226 M600 ;END gcode for filament T0 G92 E0 G10 S240 ; set temperature ; Filament gcode M207 S4 R0.05 F2000 Z0.2 G1 X13.253 Y1.749 F12000 G11 ; unretract G92 E0 G92 E0 ;TYPE:Perimeter ;WIDTH:0.399999 G1 F2856.511 G1 X9.767 Y1.749 E.11385 G1 X9.767 Y-2.137 E.24077
[...]
I also don't understand who is actually responsible for the pause here: Repetier-Server or RepRap-FW.
The pause button on the Repetier-Server touchscreen works and moves up 5mm.
Comments
@pause
and server will be responsible and stop sending until you hit continue on server. This will not use rrf pause methods. You might want to define a pause script or modify the existing one in server gcode event configuration.
The manual pause was in fact only 3 seconds. I will try a longer pause for manual-mode and also have a closer look at the temperature during the scripted G-code-pause.
What i didnt mention before: I even tried the regular "@pause" and also the "@pauseNoCooldown". both with no extrusion afterwards.
Have a look here
https://docs.duet3d.com/User_manual/Reference/Gcodes
M302 to see cold extrusion settings.
The extruder turns only for one of the both Filaments and stands still for the other one.
And it also uses a wrong temperature for one of the filaments.
The one standing still ist at 215°C (Should be 240°C). The Turning one ist at 255°C.
M305 is set to 200°C / 200°C.
I cant find an error in the G Code: it always uses the same Extruder "G1", and has a realistic number following the "E" for extruder distance.
And nowhere in the whole G-code is a "S215" mentioned. Where do the 215°C come from?
The new temperatures are set after i hit "resume" after moving direktly over the print bed. During the pause it holds the last temperature.
Tets-gcode