RE: Nozzle cleaning consistently fails with PETG
interesting. I have no issues with PLA or PETG. Zero.
But as soon as I load anything other than those filaments, probing takes forever. The nozzle does multiple checks on one single spot. This is PA yesterday.
The good news is that, the probing does pass and the bed is level (it seems). It does seem unnecessary to probe multiple times on the same spot, which leads me to believe there is an issue with the cell and temperature in this design.
It is actually quite unsightly once the probing is done with PA. All these nozzle residue will end up in the bottom of a print too, causing other issues.
RE:
It does seem unnecessary to probe multiple times on the same spot, which leads me to believe there is an issue with the cell and temperature in this design.
I thought it is already well-understood that there is a hardware issue, namely the hotend heater current interfering with the Z sensing via the loadcell? Both are apparently sharing the same ground path from the main board to the Nextruder, which is a classic design no-no.
Disabling the heater during bed probing seems to avoid the probing issue, but leads to a significant, unwanted drop in nozzle temperature if larger areas with many probing spots need to be measured. Prusa could potentially provide a workaround in firmware by disabling the heater briefly, just for the Z probing -- then re-enabling it at full force while the Nextruder moves to the next location.
RE: Nozzle cleaning consistently fails with PETG
whatever they do, hope they do it soon. I like this printer but it needs a little more work.
This being my first prusa, and seeing how slow they are at integrating these fixes, makes me doubt of my choice sometimes. I do enjoy printing PETG and PLA but I boought this machine particularly to print the difficult stuff.
RE: Nozzle cleaning consistently fails with PETG
I gave up and went with an alternative nozzle cleaner from Thingiverse. No more nozzle cleaning failures, and the level probing works better as well. Still creates some small blobs with TPU but I can live with it.
RE: Nozzle cleaning consistently fails with PETG
Posted by: @raaz-2
Mhh, yes and no. While you can be able to clean it sufficiently, you really need have the contact surface of the nozzle against the bed completely clear of filament, otherwise the nozzle can leave little dots during probing and even make the probing inaccurate.
This doesn't happen to me. I get great prints. No dots—anywhere. In fact, it is when I used the old (original) code that I got little dots (irony). But aren't you saying that's the point? Those little dots on the front right side of the plate is Prusa cleaning the nozzle prior to probing?
I may try what you're suggesting, but right now I'm adhering to the "if it ain't broke, don't fix it" adage.
Although I may not sound like it—I am grateful for your responses! Thank you!
RE: Nozzle cleaning consistently fails with PETG
But aren't you saying that's the point? Those little dots on the front right side of the plate is Prusa cleaning the nozzle prior to probing?
Yep, the "nozzle cleaning" is just putting some dots at the front right corner while "probing a little area".
If you look at the Start G-code, it's doing a G29 P9 command at x=208 ; y=-2.5. There's no documentation (I can find) about P9, but G29 commands are all Bed Level commands. It's probably something special in the Prusa firmware, that does some "wipe movement" while lifting the nozzle.
G29 P9 X208 Y-2.5 W32 H4 (comment by me:) ; Nozzle Cleaning by probing a little rectangle
;
; MBL
;
M84 E ; turn off E motor
G29 P1 ; invalidate mbl & probe print area
G29 P1 X150 Y0 W100 H20 C ; probe near purge place
G29 P3.2 ; interpolate mbl probes
G29 P3.13 ; extrapolate mbl outside probe area
G29 A ; activate mbl
I may try what you're suggesting, but right now I'm adhering to the "if it ain't broke, don't fix it" adage.
Although I may not sound like it—I am grateful for your responses! Thank you!
Hehe I totally understand that!
For what it's worth, here's my current Start G-code, that definitely works. Did about 30 prints with it:
; 23nd June 2025 Start Gcode by Rasmus M17 ; enable steppers M862.1 P[nozzle_diameter] A{(filament_abrasive[0] ? 1 : 0)} F{(nozzle_high_flow[0] ? 1 : 0)} ; nozzle check M862.3 P "COREONE" ; printer model check M862.5 P2 ; g-code level check M862.6 P"Input shaper" ; FW feature check M115 U6.3.3+10442 M555 X{(min(print_bed_max[0], first_layer_print_min[0] + 32) - 32)} Y{(max(0, first_layer_print_min[1]) - 4)} W{((min(print_bed_max[0], max(first_layer_print_min[0] + 32, first_layer_print_max[0])))) - ((min(print_bed_max[0], first_layer_print_min[0] + 32) - 32))} H{((first_layer_print_max[1])) - ((max(0, first_layer_print_min[1]) - 4))} G90 ; use absolute coordinates M83 ; extruder relative mode {if chamber_minimal_temperature[initial_tool]!=0} M140 S115 ; set bed temp for chamber heating {else} M140 S[first_layer_bed_temperature] ; set bed temp {endif} M109 R{((filament_notes[0]=~/.*MBL160.*/) ? 160 : (filament_notes[0]=~/.*HT_MBL10.*/) ? (first_layer_temperature[0] - 10) : (filament_type[0] == "PC" or filament_type[0] == "PA") ? (first_layer_temperature[0] - 25) : (filament_type[0] == "FLEX") ? 210 : 170)} ; wait for temp M84 E ; turn off E motor ;custom G-code start M104 S0 ; turn off hotend heating for clean loadcell signals ;custom G-code end G28 ; home all without mesh bed level {if chamber_minimal_temperature[initial_tool]!=0} ; Min chamber temp section ; M104 S{idle_temperature[initial_tool]} ; set idle temp G1 Z10 F720 ; set bed position G1 X242 Y-9 F4800 ; set print head position M191 S{chamber_minimal_temperature[initial_tool]} ; wait for minimal chamber temp M141 S{chamber_temperature[initial_tool]} ; set nominal chamber temp M107 ; Fan off M140 S[first_layer_bed_temperature] ; set bed temp {else} M141 S{chamber_temperature[initial_tool]} ; set nominal chamber temp {endif} {if first_layer_bed_temperature[initial_tool]<=60}M106 S70{endif} G0 Z40 F10000 M104 T{initial_tool} S{if is_nil(idle_temperature[initial_tool])}100{else}{idle_temperature[initial_tool]}{endif} M190 R[first_layer_bed_temperature] ; wait for bed temp M107 ; Fan off G29 G ; absorb heat M109 R{((filament_notes[0]=~/.*MBL160.*/) ? 160 : (filament_notes[0]=~/.*HT_MBL10.*/) ? (first_layer_temperature[0] - 10) : (filament_type[0] == "PC" or filament_type[0] == "PA") ? (first_layer_temperature[0] - 25) : (filament_type[0] == "FLEX") ? 210 : 170)} ; wait for MBL temp M302 S160 ; lower cold extrusion limit to 160C {if filament_type[initial_tool]=="FLEX"} G1 E-4 F2400 ; retraction {else} G1 E-2 F2400 ; retraction {endif} M84 E ; turn off E motor ; custom G-code start M104 S0 ; turn off hotend heating for clean loadcell signals ; custom G-code end G29 P9 X208 Y-2.5 W32 H4 ; Nozzle Cleaning by probing a little rectangle ; ; MBL ; M84 E ; turn off E motor G29 P1 ; invalidate mbl & probe print area G29 P1 X150 Y0 W100 H20 C ; probe near purge place G29 P3.2 ; interpolate mbl probes G29 P3.13 ; extrapolate mbl outside probe area G29 A ; activate mbl ; prepare for purge G0 X249 Y-2.5 Z15 F4800 ; move away and ready for the purge M109 S{first_layer_temperature[0]} G92 E0 M569 S0 E ; set spreadcycle mode for extruder ; ; Extrude purge line ; G92 E0 ; reset extruder position G1 E{(filament_type[0] == "FLEX" ? 4 : 2)} F2400 ; deretraction after the initial one G0 E5 X235 Z0.2 F500 ; purge G0 X225 E4 F500 ; purge G0 X215 E4 F650 ; purge G0 X205 E4 F800 ; purge G0 X202 Z0.05 F8000 ; wipe, move close to the bed G0 X199 Z0.2 F8000 ; wipe, move quickly away from the bed G92 E0 ;Set flow rate M221 S100 ; set flow to 100%
RE: Nozzle cleaning consistently fails with PETG
I had similar problems, I moved the z stop to top of its slot from the bottom, re-calibrated unit, adjusted belts with spectrum analyzer where I found two peaks, fundamental adjusted to 85hz both belts, will show 170hz as well and this confuses Prusa's cell app. It needs a 24db filter with Q of 5 hz added to band reject 170hz. That would improve its accuracy and specificity. Other way was to take Tektronix MSO 2024 set chan 1 up to sinewave from a lab signal generator to 85hz, then use channel 2 with a microphone and trigger on channel 1. Then when you have synced belts to 85hz, you can superimpose channels and measure very precisely. MSO also has FFT math function running showing frequency spectra. Really what is needed is Prusa needs to setup a simple belt tensioner just like your car then its spring will always have correct tension on both belts. Cant believe they missed this simple thing.
RE: Nozzle cleaning consistently fails with PETG
interesting. how does that workaround look like? where can we find it in Thingiverse?
I gave up and went with an alternative nozzle cleaner from Thingiverse. No more nozzle cleaning failures, and the level probing works better as well. Still creates some small blobs with TPU but I can live with it.
RE: Nozzle cleaning consistently fails with PETG
My nozzle cleaning failures more or less when away when I swapped to Obxidian nozzle. It must be related to filament getting stuck on the tip of the stock brass nozzle.
Im loving the Obxidian nozzle, it virtually repels filament...I've cleaned it once in about 3 weeks , and that was due to an ASA print coming loose from the bed mid print.
RE: Nozzle cleaning consistently fails with PETG
there are several on Thingiverse. I like to simplify things so I made my own design. Will put it up on Thingiverse eventually. I can post the step file here if you like..
interesting. how does that workaround look like? where can we find it in Thingiverse?
I gave up and went with an alternative nozzle cleaner from Thingiverse. No more nozzle cleaning failures, and the level probing works better as well. Still creates some small blobs with TPU but I can live with it.