Over extrusion at the end of printing with the sonic pad

HI, I’m new to the forum and I need your help.
I have the Sonic Pad installed with the latest update and I use an Ender 3 S1 pro printer with Cura 5.4.
I have used the profiles downloaded from the Creality website for this printer.
The prints in general come out very well, but at the end of the print, before raising the nozzle to return to the starting point, it extrudes extra material, leaving a drop of filament.
How could it be solved? Should some gcode have to be modified?
Thank you in advance.

Hi @Javitolago and welcome to the forums.

One thing you could try is adding an extra piece of code to your end gcode to perform a small retraction then the print ends to prevent the oozing onto the print.

Something like the following should work and would add a 3mm retraction when the print completes…

G1 F1800 E-3 ; Retract filament 3 mm to prevent oozing

Hi Nikoli.
These are the G codes that I downloaded from Creality (Sonic Pad) for Cura, among which G codes more specifically should I put it, thank you.
M140 S0
M104 S0
M106 S0
G1 Z0.2 E2 F2400
G1 X5 Y5 F3000
G1 Z10
G1 X0 Y230

Just to be sure your current start gcode is:

M140 S0
M104 S0
M106 S0

and your end gcode is:

G1 Z0.2 E2 F2400
G1 X5 Y5 F3000
G1 Z10
G1 X0 Y230

Is that correct?

If so I would recommend changing them out for the following…


G90; Use absolute positioning.

M140 S{material_bed_temperature_layer_0}; Start heating the print bed.
M104 S150; Start pre-heating the hotend to 150 to prevent oozing.

G28; Home all axis.

; Bed Mesh - Use either CALIBRATE or PROFILE LOAD.
; Uncomment one of the lines below as required. (Usually BED_MESH_PROFILE LOAD=default).
;BED_MESH_CALIBRATE; Probes the entire bed.
;BED_MESH_PROFILE LOAD=default; Loads stored mesh.

G1 Z2.0 F3000; Move Z Axis up a bit.
G1 X2.0 Y20 F5000; Move to purge-line start.
G1 Z0.28; Lower nozzle and wait for temperature to stabilize.

M190 S{material_bed_temperature_layer_0}; Set and wait for the bed to reach temperature.
M109 S{material_print_temperature_layer_0}; Set and wait for the nozzle to reach temperature.

G92 E0; Reset extruder.
G1 X2.0 Y140 Z0.28 F1500 E10; Draw the first purge line.
G1 X2.3 Y140 Z0.28 F5000; Move to side a little bit.
G1 X2.3 Y10 Z0.28 F1500 E20; Draw the second purge line.


G91; Relative positioning.
G1 E-2 F2700; Retract filament 2mm to prevent oozing.
G1 Z0.2 F2400; Raise nozzle.
G1 X5 Y5 F3000; Move nozzle.
G1 Z10; Raise nozzle a bit more.

G90; Absolute positioning.
G1 X0 Y200; Present the finished print.

M104 S0; Turn off hotend.
M140 S0; Turn off bed.
M106 S0; Turn off fan.

M84; Disable steppers.

In the end gcode you will see the second line of code instructs the extruder to retract by 2mm to prevent oozing at the end of the print. You can increase this if you still see oozing but try not to go above 4mm. You can do decimal places too such as 2.5.

You can either use the gcodes above to replace the ones in your slicer or if you wish you can adjust the 2nd line in your end gcode beneath G91 (G1 Z0.2 E2 F2400) so that it has a negative value on E as follows…
G1 Z0.2 E-2 F2400

This should prevent any oozing at the end of the print.

Hope that helps.

Yes, the Gcodes are correct.
Ahhh, I now realize that I didn’t put the negative value in the first G1 code.
I try the change and I respond, very grateful and I am understanding how this works.

1 Like

You’re very welcome, hope the change to the gcode fixes the issues for you.