PrusaSlicer bulges at start and end of layer, not PA
-
I have decided to migrate over from Simplify3D to PrusaSlicer, simply because S3D's update is now delayed to the point where many are asking if it will ever be released, and the free slicers are getting to the point where they are better, with improved features etc.
Ever since the switch, I was getting bulges at the start and end of each layer (this happens on all of my printers, all of which have been upgraded with Duet electronics: Duplicator 5S Mini [DuetWifi, Bondtech QR extruder, 800mm bowden tube, E3Dv6 hotend], Duplicator i3 [Duet Maestro, direct drive Flexion extruder], Ender 5 Plus [Duet Maestro, Bondtech BMG, 900mm bowden tube, E3D Volcano hotend]). I attempted to fix the issue with Pressure Advance settings, but found that the bulge did not disappear, but rather a gap formed before the bulge when increasing the PA value - once again, tested on all 3 printers.
I am not sure whether this issue is related to Duet or PrusaSlicer - if we find it is an issue in PS, I can report it there.
Having taken a closer look at the Gcode for a few of the models sliced in S3D vs PS, I see no obvious causes or differences; however I noticed that when printing, there is a noticeable delay between the end of a layer and the start of a new layer, when PS generated the gcode. I think that this dwelling/delay is causing the bulge.
Here is an example of a layer change by S3D:
G1 X84.868 Y99.227 E0.0669 G1 E-5.0000 F3000 ; layer 6, Z = 1.800 ; feature inner perimeter G1 Z1.800 F1002 G1 X83.819 Y100.429 F12000 G1 E5.0000 F3000 G1 X87.052 Y94.363 E0.4939 F3600
Compared to PS layer change (on a different model, customizable_box_try2.gcode, full file is attached, which also shows settings used at the end):
G1 X225.782 Y131.958 F12000.000 G1 E4.00000 F3000.00000 M204 S1500 G1 F2400.000 G1 X228.266 Y131.338 E0.16433 M204 S1200 ; before layer change G1 Z13.750 F12000.000 ; after layer change G1 E-4.00000 F3000.00000 G1 X145.341 Y222.207 F12000.000 G1 E4.00000 F3000.00000 M204 S1500 G1 F2400.000 G1 X139.408 Y222.214 E0.38627
PS adds the acceleration changing commands in, but I don't think they do anything related to the issue (other than M204 not having an S-parameter). I also noticed that PS adds a bunch of empty G1 commands (no parameters) when doing thin walls (as can be seen at the end of the file), but the bulge happens on all layers.
Another thing I noticed is that PS estimations are off anywhere from 50% longer to more than double the estimated time. I know it is never perfect, but still S3D was off only about 20% (and it is not like I am using outrageous speeds, or even printing way too slow).
-
Hi,
If it happens with Prusa and not S3D then that suggests the problem is Prusa.
Frederick
-
While it is reasonable to conclude that the problem should then be with PrusaSlicer, the relevant gcode (at the time the bulges form) being processed by the Duet/RRF are just about identical to my eye.
A few obvious changes, as can be seen above, PS have G1 commands with only the F-feedrate parameter and then others to command the movement of an axis or extruder, while S3D combines the Feedrate into the first movement command. Now, I am not sure how this affects the Duet reading it, it seems that it should actually be identical results - maybe someone that looked at the firmware can explain if there is a difference in performance between the 2 ways.
Maybe also a thing to note, the bulges also happened before I tried to fix the timing, by adding the acceleration to the slicer, thus the M204 with incorrect parameter, is also not causing the bulges.
-
@Jacotheron For an explanation of how the firmware treats feed rate see here https://duet3d.dozuki.com/Wiki/Gcode#Section_G0_G1_Move. Note that you will only get different behaviour if you set the feedrate in one command, then immediately have a G1 move which includes a second feedrate parameter. So in your example gcodes, they would behave the same way (because there is no second feedrate command).
Comparing the two gcode files, it looks like S3D is retracting on layer change, whereas Slic3R is not. In the S3D file, there is a G1 E-5 which is the retraction, then a G1 Z , then a G1 XY nad finally a G1 E5 which is the unretract. But in the Slic3R file, there is no code for before layer change or after layer change. Simply the Z move but with no retract/unretract either side. There is a retraction cycle but that happens after the layer change and prior to an XY move.
-
@deckingman thank you for your reply, I was not aware of the different ways the Feedrate is used, though not specifically applicable to my issue.
So with separate retraction (PS) vs combined retraction (S3D) as the only noteworthy change (I am not convinced that this cause the issue). Based on my calculations for the time it would take to retract the 4mm of filament (for the Ender 5+ with a volcano hotend), I don't think it would cause this blob (and on the Di3 with Flexion, where retraction is only 1.9mm, I don't think), as it is barely 0.122 seconds (not taking jerk into account, only acceleration, deceleration and remaining distance at full speed).
Based on the above, I decided to turn on the "retract with layer change", and once again it creates a separate command for the retraction just before layer change (not in the same command).
I think I should do a test, by increasing the acceleration and max speeds for the extruder, and see if and how it affects this bulge.
EDIT: Found a post about BMG extruder acceleration and jerk vaues (https://forum.duet3d.com/post/81579), and a quote: "be aware that if you use pressure advance such a low e jerk value will slow down your printing speed" - mine is at 300, which apparently is very low.
-
Share your full config.g and a full sliced gcode file from each slicer.
-
Ok, the increasing of the jerk for the extruder sped things up, and estimations are now much more accurately. The pressure advance was enabled and configured at about the same time I switched from S3D to PS, so it might have something to do with it.
The bulges so far remained, though reduced in size. I am now trying it with wipe with retraction, to see if that makes any difference.
My config file is attached. config-e5p.g
-
M566 X720.00 Y720.00 Z120.00 E1000.00 ; set maximum instantaneous speed changes (mm/min) M203 X15000.00 Y15000.00 Z1800.00 E9000.00 ; set maximum speeds (mm/min) M201 X2500.00 Y2500.00 Z100.00 E3000.00 ; set accelerations (mm/s^2)
Well you could try increasing your accel and jerk for the extruder and Z axis a bit more to see if it has any remaining effect.