Printer model
Prusa CORE One L+ GT1.5 belts Official Nozzle Wiper installed and enabled
Firmware version
6.8.1+16182
Upgrades and modifications
Official CORE One L+ configuration with GT1.5 belts and Prusa Nozzle Wiper.
Printing from...
Prusa Connect / PrusaSlicer
Describe the bug
The print-start Nozzle Wiper sequence frequently fails before the nozzle actually reaches the silicone wiping pad.
For example with PETG, the sequence is:
The nozzle heats to approximately 170 °C.
The printhead moves to the Nozzle Wiper.
The nozzle touches the metal reference/touchpoint next to the silicone pad to determine the wiper Z position.
At this point the printer frequently reports “Nozzle cleaning failed”.
The actual silicone wiping operation is never started.
When the sequence succeeds, the expected behavior is:
Nozzle heats to approximately 170 °C.
Initial touchpoint measurement.
Nozzle wipes on the silicone pad.
Nozzle temperature is reduced to approximately 150 °C.
The nozzle returns to and remains in contact with the touchpoint during cooldown.
Mesh Bed Leveling starts.
The issue appears to be strongly related to small amounts of filament residue/ooze on the nozzle tip.
How to reproduce
This is highly reproducible on my printer.
If I manually clean the nozzle tip immediately before starting the print, the initial touchpoint measurement succeeds 10/10 times.
Without manually cleaning the nozzle, the initial touchpoint measurement frequently fails and the printer reports “Nozzle cleaning failed”.
The nozzle physically reaches the metal touchpoint correctly. The failure occurs during evaluation of the initial loadcell measurement.
Possible firmware cause
In firmware v6.8.1, nozzle_cleaner_lite determines the touchpoint Z using:
probe_here(expected_touchpoint_surface_z, touchpoint_probe_attempts)
with:
touchpoint_probe_attempts = 3
A loadcell measurement rejected by probe analysis results in NaN, and after the available attempts the Nozzle Wiper sequence terminates with Touchpoint probe failed.
Minor soft filament residue between the nozzle tip and the metal touchpoint appears sufficient to cause the probe analysis to reject the measurement, even though mechanical contact is correctly detected.
This would also explain why manually cleaning the nozzle gives a 100% success rate.
Relevant newer code
The implementation has already changed after v6.8.1.
In newer source versions, including the v6.10.x source tree, nozzle_cleaner_lite no longer uses the same probe_here() method for this initial touchpoint measurement.
It uses find_touchpoint_z() based on do_homing_move() instead.
Relevant commits appear to include:
b2a2f9e
nozzle_cleaner_lite: Search for the touchpoint instead of assuming Z 0
BFW-9229
53fb58c
nozzle_cleaner_lite: Raise the Z targets
BFW-9229
718b6ca
nozzle_cleaner_lite: Fix dive into wiper 0.5mm
BFW-8998
The newer nozzle_cleaner_lite implementation explicitly contains a PRINTER_IS_PRUSA_COREONEL() configuration, so this appears relevant to CORE One L / L+ as well.
Expected behavior
The initial touchpoint detection should tolerate the small amount of filament residue that can naturally be present on the nozzle before the silicone wiping operation.
The printer should detect the touchpoint reliably and proceed to the silicone wiping stage instead of reporting “Nozzle cleaning failed” before cleaning has even occurred.
If the newer touchpoint implementation is intended to fix this behavior, please include it in the next CORE One L / CORE One L+ firmware release.
Files
Related issues
#4523 – Unreliable start up sequence due nozzle cleaning error
#5442 – Tool Offset Calibration fails with 6.9.0
These appear related to loadcell probing sensitivity / nozzle residue, although they concern different printer configurations or older cleaning procedures.
Printer model
Prusa CORE One L+ GT1.5 belts Official Nozzle Wiper installed and enabled
Firmware version
6.8.1+16182
Upgrades and modifications
Official CORE One L+ configuration with GT1.5 belts and Prusa Nozzle Wiper.
Printing from...
Prusa Connect / PrusaSlicer
Describe the bug
The print-start Nozzle Wiper sequence frequently fails before the nozzle actually reaches the silicone wiping pad.
For example with PETG, the sequence is:
The nozzle heats to approximately 170 °C.
The printhead moves to the Nozzle Wiper.
The nozzle touches the metal reference/touchpoint next to the silicone pad to determine the wiper Z position.
At this point the printer frequently reports “Nozzle cleaning failed”.
The actual silicone wiping operation is never started.
When the sequence succeeds, the expected behavior is:
Nozzle heats to approximately 170 °C.
Initial touchpoint measurement.
Nozzle wipes on the silicone pad.
Nozzle temperature is reduced to approximately 150 °C.
The nozzle returns to and remains in contact with the touchpoint during cooldown.
Mesh Bed Leveling starts.
The issue appears to be strongly related to small amounts of filament residue/ooze on the nozzle tip.
How to reproduce
This is highly reproducible on my printer.
If I manually clean the nozzle tip immediately before starting the print, the initial touchpoint measurement succeeds 10/10 times.
Without manually cleaning the nozzle, the initial touchpoint measurement frequently fails and the printer reports “Nozzle cleaning failed”.
The nozzle physically reaches the metal touchpoint correctly. The failure occurs during evaluation of the initial loadcell measurement.
Possible firmware cause
In firmware v6.8.1, nozzle_cleaner_lite determines the touchpoint Z using:
probe_here(expected_touchpoint_surface_z, touchpoint_probe_attempts)
with:
touchpoint_probe_attempts = 3
A loadcell measurement rejected by probe analysis results in NaN, and after the available attempts the Nozzle Wiper sequence terminates with Touchpoint probe failed.
Minor soft filament residue between the nozzle tip and the metal touchpoint appears sufficient to cause the probe analysis to reject the measurement, even though mechanical contact is correctly detected.
This would also explain why manually cleaning the nozzle gives a 100% success rate.
Relevant newer code
The implementation has already changed after v6.8.1.
In newer source versions, including the v6.10.x source tree, nozzle_cleaner_lite no longer uses the same probe_here() method for this initial touchpoint measurement.
It uses find_touchpoint_z() based on do_homing_move() instead.
Relevant commits appear to include:
b2a2f9e
nozzle_cleaner_lite: Search for the touchpoint instead of assuming Z 0
BFW-9229
53fb58c
nozzle_cleaner_lite: Raise the Z targets
BFW-9229
718b6ca
nozzle_cleaner_lite: Fix dive into wiper 0.5mm
BFW-8998
The newer nozzle_cleaner_lite implementation explicitly contains a PRINTER_IS_PRUSA_COREONEL() configuration, so this appears relevant to CORE One L / L+ as well.
Expected behavior
The initial touchpoint detection should tolerate the small amount of filament residue that can naturally be present on the nozzle before the silicone wiping operation.
The printer should detect the touchpoint reliably and proceed to the silicone wiping stage instead of reporting “Nozzle cleaning failed” before cleaning has even occurred.
If the newer touchpoint implementation is intended to fix this behavior, please include it in the next CORE One L / CORE One L+ firmware release.
Files
Related issues
#4523 – Unreliable start up sequence due nozzle cleaning error
#5442 – Tool Offset Calibration fails with 6.9.0
These appear related to loadcell probing sensitivity / nozzle residue, although they concern different printer configurations or older cleaning procedures.