Second Layer too high Prusaslicer
-
Hi everyone, I seem to have some issues with my second layer printing too high. The first layer is printing as it should (tuned with babystepping) but the second layer seems to be printing roughly one layer too high or is severly underextruding. The problem fixed itself during the print after many layers but seems like something that should not happen regardless.
I recall I had a similar issue before but I am not sure anymore what the exact fix was: https://forum.duet3d.com/topic/22452/second-layer-printing-too-high
Some details:
- Duet Mini 5+
- Bear MK3
- RRF 3.3
- DWC 3.3
- Prusaslicer 2.4.0
- SuperPinda
Here are some relevant files:
start.g
;---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ; start.g ; ; Description: ; - system file ; - called at the start of a print before slicer start gcode is executed ;---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ;---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ; Preparation ;---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- T0 ; select tool 0 M220 S100 ; set speed to 100% M221 S100 ; set extrusion to 100% G90 ; absolute positioning M83 ; extruder relative mode ;---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ; Preheating ;---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- G28 ; home all M568 P0 S160 ; set tool 0 temperature to 160°C G1 X{move.axes[0].max/2} Y{move.axes[1].max/2} Z{move.axes[2].max/2} ; move nozzle to the center of each axis
Start Gcode Prusaslicer
M140 S[first_layer_bed_temperature] ; set bed temp M116 ; wait for hotend + bed temp G32 ; true bed leveling with mesh bed leveling G10 S[first_layer_temperature] ; set hotend temp M116 ; wait for hotend temp G92 E0.0 ; reset extruder position to 0 G1 X60.0 E9.0 F1000.0 ; intro line thin part G1 X100.0 E12.5 F1000.0 ; intro line thick part G92 E0.0 ; reset extruder position to 0
bed.g
;-------------------------------------------------------------------------------------------------------------------- ; bed.g ; ; Description: ; - system file ; - called via G32 ; - performs mesh bed leveling and true bed leveling ; - part of start gcode in Prusaslicer ;-------------------------------------------------------------------------------------------------------------------- ;-------------------------------------------------------------------------------------------------------------------- ; True Bed Leveling ;-------------------------------------------------------------------------------------------------------------------- ; Preparation G28 ; home all M400 ; wait for current moves to finish M558 A3 ; set number of probes to 3 ; Leveling G30 P0 X24 Y104 Z-9999 ; probe near left leadscrew at the front of the Y axis G30 P1 X228 Y104 Z-99999 S2 ; probe near right leadscrew, at the back of the Y axis and calibrate both Z motors M400 ; wait for current moves to finish ; Restore Defaults M558 A1 ; reset number of probes to 1 ;-------------------------------------------------------------------------------------------------------------------- ; Mesh Bed Leveling ;-------------------------------------------------------------------------------------------------------------------- ; Preparation G91 ; relative positioning G1 Z5 ; lift Z axis by 5mm M400 ; wait for current moves to finish G90 ; absolute positioning ; Leveling G29 ; perform mesh bed leveling G1 X0 Y-3 Z0.4 F3000 ; move nozzle to prime line position
End Gcode Prusaslicer
M0 ; calls stop.g
Before Layer Change Gcode Prusaslicer
G92 E0.0 ; reset extruder position to 0 {if layer_z == layer_height+first_layer_height}M98 P"layer-change.g"{endif} ; execute layer-change.g if Z height = first layer height + layer height ;[layer_z]
stop.g
;---------------------------------------------------------------------------------------------- ; stop.g ; ; Description: ; - system file ; - called via M0 ; - called as part of end gcode in Prusaslicer ; - turns off heaters ; - idles printer ; - used in cancel.g ;---------------------------------------------------------------------------------------------- ;---------------------------------------------------------------------------------------------- ; Retract ;---------------------------------------------------------------------------------------------- G1 E-0.4 F3000 ; retract 0.4mm of filament G4 P200 ; wait foor 200ms ;---------------------------------------------------------------------------------------------- ; Heaters Off ;---------------------------------------------------------------------------------------------- M104 S0 ; turn off hotend heater M140 S0 ; turn off bed heater M107 ; turn off part cooling fan ;---------------------------------------------------------------------------------------------- ; End Moves ;---------------------------------------------------------------------------------------------- if move.axes[2].machinePosition < 100 ; if Z axis is < 100mm G1 Z120 F1500 ; lift Z axis to 120mm else ; if Z axis => 100mm G91 ; relative positioning G1 Z10 F1500 H2 ; lift Z axis by 10mm G90 ; absolute positioning G1 X10 Y200 F3000 ; move X axis to the left and Y axis to the front ;---------------------------------------------------------------------------------------------- ; Idling ;---------------------------------------------------------------------------------------------- M564 S1 ; forbid movement beyond axis limits defined in config.g M84 ; disable motors M290 R0 S0 ; reset babystepping to 0 M501 ; load saved parameters config-override.g
Here is the gcode I used: test_gcode.txt
I know there was a case where
;E
needed to be added in the comments but I am not sure if this is my issue and if so where to add it.Thanks!!
-
Also adding the homing files:
homeall.g
;---------------------------------------------------------------------------- ; homeall.g ; ; Description: ; - system file ; - called to home all axes ; - used in homez.g ;---------------------------------------------------------------------------- ;---------------------------------------------------------------------------- ; Preparation ;---------------------------------------------------------------------------- M98 P"homing-modifications.g" ; calls homing-modifications.g ; Lift Z Axis G91 ; relative positioning G1 H2 Z5 F1200 ; lift Z axis by 5mm M400 ; wait for current moves to finish ;---------------------------------------------------------------------------- ; Home X Axis ;---------------------------------------------------------------------------- G1 H2 X0.5 F10000 ; energise motor to ensure it's not stalled M400 ; wait for current moves to finish G4 P200 ; wait 200ms G1 H1 X5 F1200 ; move X axis away from homing position by 5mm G1 H1 X-255 F3000 ; move to X axis endstop and stop there G1 X5 F1200 ; move back by 5mm G1 H1 X-10 F3000 ; move to X axis endstop again G1 X10 F1200 ; move back by 10mm M400 ; wait for current moves to finish ;---------------------------------------------------------------------------- ; Home Y Axis ;---------------------------------------------------------------------------- G1 H2 Y0.5 F10000 ; energise motor to ensure it's not stalled M400 ; wait for current moves to finish G4 P200 ; wait 200ms G1 H1 Y5 F1200 ; move Y axis away from homing position by 5mm G1 H1 Y-220 F3000 ; move to Y axis endstop and stop there G1 Y5 F1200 ; move back by 5mm G1 H1 Y-10 F3000 ; move to Y axis endstop again G1 Y10 F1200 ; move back by 10 mm M400 ; wait for current moves to finish ;---------------------------------------------------------------------------- ; Home Z Axis ;---------------------------------------------------------------------------- G90 ; absolute positioning G1 X11.5 Y4.5 F6000 ; go to first probe point G30 ; home Z axis by probing the bed G1 Z0.6 F500 ; move Z axis to 0.6mm G91 ; relative positioning G1 Z1 F500 ; lift Z axis by 1mm M400 ; wait for current moves to finish ;---------------------------------------------------------------------------- ; Restore Defaults ;---------------------------------------------------------------------------- M98 P"homing-modifications-reset.g" ; calls homing-modifications-reset.g
homing-modifications.g
;--------------------------------------------------------------------------------- ; homing-modifications.g ; ; Description: ; - system file ; - sets motor current and V parameter for homing moves ; - tunes motor drivers ; - used in all homing system files ;--------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------- ; Modifications ;--------------------------------------------------------------------------------- M569 P0.3 V10 ; reduce V parameter to ensure stealthChop is enabled for X M569 P0.2 V10 ; reduce V parameter to ensure stealthChop is enabled for Y M913 X60 Y60 ; drop X and Y motor current to 60% G4 P150 ; wait 150ms ;--------------------------------------------------------------------------------- ; Driver Tuning ;--------------------------------------------------------------------------------- G91 ; relative positioning G1 H2 X0.2 Y0.2 F3000 ; power up X and Y motors to ensure they are not stalled G4 P150 ; wait 150ms M400 ; wait for current moves to finish G1 H2 X-0.2 Y-0.2 F3000 ; move back to original position
homing-modifications-reset-g
;----------------------------------------------------------------------- ; homing-modifications-reset.g ; ; Description: ; - system file ; - resets all homing modifications applied in homing_modifications.g ; - used in all homing system files ;----------------------------------------------------------------------- M913 X100 Y100 ; reset X and Y motor current to 100% M569 P0.3 V2000 ; restore default V parameter for X M569 P0.2 V2000 ; restore default V parameter for Y G90 ; absolute positioning
-
@flobler have you checked what first layer height you have PrusaSlicer set to? When I installed PrusaSlicer, I found that the first layer height defaulted to a much higher value than normally use.
-
@dc42 thanks for the quick reply.
I just checked and it is set to 0.2mm
-
I can't see anything in the gcode that would indicate a problem.
All I notice is that you use Z hop. Is there perhaps some backlash or inaccuracy in your Z movement? Have you tried without Z hop?
The other thing is that it's simply a matter of flow rate being a bit off? It looks good for the first layer, but maybe only because it's actually too close? And then the next layer is actually under extruded?
You could also try a different slicer, just to remove that as a variable. It's not a bad idea to have two setup anyway.