G-Code Interfering with Runout Sensor???
I've created several PrusaSlicer profiles for a Raise3D Pro3 (RepRapFirmware) and they all work pretty well except for one major issue: the extruder will not extrude after recovering from filament runout.
Series of Events:
- Filament runs out and triggers runout sensor. Printer goes into a paused state and displays message saying filament runout sensor has been triggered.
- I unload the remaining filament and load in a new spool. Everything primes perfectly during the loading process. All is well.
- I resume the print and the filament does not extrude. There is no clog present. The extruder is not slipping.
- I marked the filament with a sharpie and let it continue and all the extruder is doing is retraction and deretraction moves (filament moving up and down in the same spot). I tried forcing the filament past the gears, but the gears have a firm hold on the filament (no slippage).
- I stop the print.
- I restart the print and everything prints fine.
This happens every single time. I usually try to manually pause the print before this happens, but I'm only human.
My question is, is there some setting in PrusaSlicer that could be interfering with the runout sensor and causing this issue? Could this be G-Code related? I'm inserting my current g-code below. I've also attached screenshots of my Printer Settings.
Start G-Code
M104 T0 S[first_layer_temperature] ; set left extruder temp M140 S[first_layer_bed_temperature] ; set bed temp M190 S[first_layer_bed_temperature] ; wait for bed temp M109 T0 S[first_layer_temperature] ; wait for left extruder temp T0 G21 G90 M82 M107 G28 G1 Z0.3 F500 G92 E0 G1 Z0.3 F400 G1 X100 Y-3 F1000 G1 X170 Y-3 E30 F200 G1 Z5 E30 F200 G92 E0 G1 Z10 F2000 ; move up from purge line G1 Y30 F2000 ; move away from purge line G1 Z[first_layer_height] M117 Printing...
Emit Temperature Commands Automatically: Enabled
End G-Code:
M221 T0 S100 M104 S0 M140 S0 M107 G91 G1 E-1 F300 G1 Z+0.5 E-5 X-20 Y-20 F9000.00 G28 X0 Y0 M84 G90
BLC: Empty
ALC: Empty
Tool Change: Empty
Between Objects: Empty
Color Change: Empty
Pause Print G-Code:
M2000
Temp Custom: Empty
I'm relatively new to g-code (less than a year of experience), but I've got a pretty good grasp of it. Any help would be greatly appreciated!
RE: G-Code Interfering with Runout Sensor???
I've attached the Extruder Settings as well:
RE: G-Code Interfering with Runout Sensor???
Please dont attaching pictures. They do not provide a complete view of your settings. Please attach a ZIPPED up saved project file using File>Save Project As from Prusa Slicer. The 3mf saved will contain the model as well as copies of all 3 in use profiles. As such we will get all your start gcode settings anyway. Its a snapshot and allows anyone to slice the same as you and output the gcode if needed etc. You are far more likely to get an answer that way. Must be zipped or the forum will just silently not attach it as it only allows very limited file types.
Off the top of my head, as I've seen this before on other threads here with different printers, though there could be a mismatch between extruder settings. In your Printer profile start gcode you have M82, which is putting the extruder into absolute mode. So 9mm goes to 10mm, retract 2mm will cause the value to go to 8mm etc. However in your General settings you have extrusion configured for Relative.
When you experience a filament runout the printers firmware takes over. Internally it might be switching to either Absolute or Relative mode. When you exit the reload sequence the firmware is supposed to restore the mode it was in before hand. Unfortunately some firmware's aren't very well tested or just expect it be in a specific mode all the time so don't consider things like that. This can make all the following extruder values nonsensical.
Without your saved project I cant tell if its actually putting out. Whatever its set to Id try configuring it to the opposite and testing again. Remember that if you do reconfigure to use relative extrusion then you will need to add in the G90 E0 line in the before layer change custom gcode field to keep the count accurate.
If it is a mismatch then there are a couple of things you could try. The easiest would just be leaving it in the extrusion mode that the printer is using for the filament change.