Notifications
Clear all

No more "gnats" startup code.  

Page 1 / 2
  RSS
Bunny Science
(@bunny-science)
Noble Member
No more "gnats" startup code.

TLDR: Custom startup coded to eliminate "gnats" and allow easier removal of initial line deposit. Allows clean, unattended print startup and easier plate clearing post print.

My Mk3 has always oozed 3-4 cm of PETG before actual print startup. Even if I am present to remove the ooze, more would form during mesh leveling. That ooze would usually get stuck during the skirt, but occasionally get embedded in the print. Annoying with normal mesh leveling, but N7 mesh leveling made things intolerable. (Yes, I think the N7 mesh firmware is definitely worthwhile https://github.com/prusa3d/Prusa-Firmware/issues/1239 )

Switching to N7 mesh leveling exacerbates the ooze problem because it performs many more measurements and takes longer. More ooze and touches resulted in 4 to 5 "gnats" always dropping on the print surface during the N7 mesh leveling. Unless I was there to deftly brush them off during leveling, my surface simply was polluted with PETG gnats.

Another (unrelated, but annoying) issue was my initial wipe lines getting harder and harder to remove as my plate ages.

I decided to do something about it. My startup process takes a few minutes longer, but now reliably starts with a clean print plate. No more gnats. No more ooze. Nozzle is automatically cleaned at print startup, and initial line is easy to remove post print.

My custom startup code does the following...

1. Heat up the bed
2. N7 Mesh level at temperature
3. Raise the nozzle up a safe distance. This prevents nozzle heating from damaging PEI surface.
4. Heat up nozzle. This is AFTER bed heating and mesh so there is very little ooze.
5. Lower nozzle to 0.5 mm above print Z.
6. Deposit initial line (but from a higher height than normal so it releases easily later)
7. Lower nozzle to print Z.

Just put this in Slic3r Printer Settings - Custom G-code - Start G-code
(This strategy will also work without N7 mesh leveling. Just use "G80" instead of "G80 N7".


;EDIT >>>>>>> THIS CODE IS SUPERCEDED by ones later in this thread <<<<<<

M115 U3.5.0 ; tell printer latest fw version
M83 ; extruder relative mode
M140 S[first_layer_bed_temperature] ; set bed temp
M190 S[first_layer_bed_temperature] ; wait for bed temp
G28 W ; home all without mesh bed level
G80 N7 ; mesh bed leveling with extra points
G1 Y-3.0 F1000.0 ; go outside print area
G92 E0.0
G1 Z3 ; raise head before heating extruder
M104 S[first_layer_temperature] ; set extruder temp AFTER mesh to minimize gnats
M109 S[first_layer_temperature] ; wait for extruder temp
G1 Z0.5 ; move slightly above bed for intro line
G1 X60.0 E9.0 F1000.0 ; intro line
G1 X100.0 E12.5 F1000.0 ; intro line
G1 Z0 ;lower head back to normal intro line
G92 E0.0
M221 S{if layer_height==0.05}100{else}95{endif}

Publié : 04/01/2019 7:54 pm
thrawn86
(@thrawn86)
Honorable Member
Re: No more "gnats" startup code.

that fw is interesting. i tried the hyperfine firmware a while back.

assuming filament is very dry
-preheat
-raise nozzle, turn on fan, user pause and prompt to clean nozzle
-if no more stringing, click to continue mesh
-fan off, first layer

Publié : 04/01/2019 8:42 pm
--
 --
(@)
Illustrious Member
Re: No more "gnats" startup code.

G80 N7:
- Where did you find the N7 argument for G80? It doesn't work on my stock printer.
- Also curious if using a larger array of points invalidates the manually entered mesh bed correction factors?

Marlin has a similar G29 argument, but the Prusa gcode table doesn't list any G80 arguments. Marlin even has options to change interpolation, which I'd really like to use.

Mesh Leveling with a cold PINDA also creates a layer one issue, since the PINDA threshold changes as it warms up: and the nozzle temp is the dominant factor there: Left is cold calibration, right is warm calibration. Both had 60c bed temps.

Publié : 04/01/2019 8:48 pm
Bunny Science
(@bunny-science)
Noble Member
Topic starter answered:
Re: No more "gnats" startup code.

The N7 argument only works with the modified firmware that supports the extra sampling points.
It's quite a bit more accurate data than what was coming out of interpolating the standard 9 points.

https://github.com/prusa3d/Prusa-Firmware/issues/1239

Publié : 04/01/2019 8:51 pm
JoanTabb
(@joantabb)
Veteran Member Moderator
Re: No more "gnats" startup code.

you can still use bed level correction, manually entering values to improve adhesion as required.

regards Joan

I try to make safe suggestions,You should understand the context and ensure you are happy that they are safe before attempting to apply my suggestions, what you do, is YOUR responsibility. Location Halifax UK

Publié : 04/01/2019 9:23 pm
Bunny Science
(@bunny-science)
Noble Member
Topic starter answered:
Re: No more "gnats" startup code.

.... Mesh Leveling with a cold PINDA also creates a layer one issue

Hmmn. Maybe preheat nozzle to about 140C temp while the bed is warming up. That should warm the PINDA without getting to the point of oozing.
Copying a bit of PINDA warming code from you...

I've set the PINDA warming temp position a bit higher and also let the extruder cool back down to help reduce PINDA change during mesh. Even with that, the PINDA will still heat up a few degrees by the end of N7 mesh.

Also added your anti-stringing wipe maneuver.


M115 U3.5.1 ; tell printer latest fw version
M83 ; extruder relative mode
G28 W ; MUST FIRST home all without mesh bed level or else risk nozzle crash!
G0 X70 Y70 Z5 F1000; PINDA warming position
M140 S[first_layer_bed_temperature] ; set bed temp
M104 S150 ; preheat extruder to no ooze temp
M109 S150 ; wait for extruder temp
M190 S[first_layer_bed_temperature] ; wait for bed temp
M860 S40 ; wait for PINDA temp to stabilize
M104 S100 ; drop extruder to lower temp to reduce PINDA rise during mesh
G80 N7 ; mesh bed leveling with extra points
G1 Y-3.0 F1000.0 ; go outside print area
G92 E0.0
G1 Z3 ; raise head before heating extruder
M104 S[first_layer_temperature] ; set extruder temp AFTER mesh to minimize gnats
M109 S[first_layer_temperature] ; wait for extruder temp
G1 Z0.5 ; move slightly above bed for intro line
G1 X60.0 E9.0 F1000.0 ; intro line
G1 X100.0 E12.5 F1000.0 ; intro line
G1 E-0.8 F2100; retract to avoid stringing
G1 X99.0 E0 F1000.0 ; -1mm intro line @ 0.00
G1 X110.0 E0 F1000.0 ; +10mm intro line @ 0.00
G1 Z0 ;lower head back to normal intro line
G92 E0.0
M221 S{if layer_height==0.05}100{else}95{endif}

Publié : 04/01/2019 9:35 pm
Nikolai
(@nikolai)
Noble Member
Re: No more "gnats" startup code.

I realized with MMU2 it doesn't happen anymore 😎

Often linked posts:
Going small with MMU2
Real Multi Material
My prints on Instagram

Publié : 05/01/2019 12:04 am
Area51
(@area51)
Membre
Re: No more "gnats" startup code.

Had the "gnats" problem on my MK2S and MK3, printing PETG.
The problem was solved by lowering the PINDA probe - this way the nozzle traveled a little higher during bed leveling and "gnats" was avoided.

Have a look at my models on Printables.com 😉

Publié : 05/01/2019 12:41 am
Bunny Science
(@bunny-science)
Noble Member
Topic starter answered:
Re: No more "gnats" startup code.

Lowering the PINDA - That's another approach 🙂

Publié : 05/01/2019 3:35 am
Martin_au
(@martin_au)
Reputable Member
Re: No more "gnats" startup code.

M860 for Pinda warming

M860 S35 ; the new code - wait until PINDA is >= 35C
as per:
https://github.com/prusa3d/Prusa-Firmware/wiki/Manual-temperature-calibration

Publié : 05/01/2019 4:30 am
Bunny Science
(@bunny-science)
Noble Member
Topic starter answered:
Re: No more "gnats" startup code.

I intentionally set the wait for 40C because during mesh calibration the PINDA on my machine gradually heats up to 42C. By setting the start temp closer to the final temp, I am keeping PINDA temp as steady as I can during the mesh measurements. If I start it at 35C, it still rises to 42C by the end of mesh. Beginning at 40, it only rises a couple degrees.

My goal is to keep the PINDA temperature more constant, avoid ramping it all the way from 35 to 42 during Mesh.

Then again, I'm printing PETG with an initial bed of 85C. If one is using a lower bed temperature, the final PINDA temp might be lower and then a lower starting temp would be appropriate. You can watch the PINDA temperature during a mesh calibration and see what your machine's PINDA temp becomes near the end of the process. Pick something two or three degrees below that for the M850 Snn command and the PINDA should stay as steady as possible for your bed temp.

Had to lower the warming position a bit closer to the bed to allow for cold starts. My code is now...


M115 U3.5.1 ; tell printer latest fw version
M83 ; extruder relative mode
G28 W ; MUST FIRST home all without mesh bed level or else risk nozzle crash!
G0 X70 Y70 Z2 F1000; PINDA warming position
M140 S[first_layer_bed_temperature] ; set bed temp
M104 S150 ; preheat extruder to no ooze temp
M109 S150 ; wait for extruder temp
M190 S[first_layer_bed_temperature] ; wait for bed temp
M860 S40 ; wait for PINDA temp to stabilize
M104 S100 ; drop extruder to lower temp to reduce PINDA rise during mesh
G80 N7 ; mesh bed leveling with extra points
G1 Y-3.0 F1000.0 ; go outside print area
G92 E0.0
G1 Z3 ; raise head before heating extruder
M104 S[first_layer_temperature] ; set extruder temp AFTER mesh to minimize gnats
M109 S[first_layer_temperature] ; wait for extruder temp
G1 Z0.5 ; move slightly above bed for intro line
G1 X60.0 E9.0 F1000.0 ; intro line
G1 X100.0 E12.5 F1000.0 ; intro line
G1 E-0.8 F2100; retract to avoid stringing
G1 X99.0 E0 F1000.0 ; -1mm intro line @ 0.00
G1 X110.0 E0 F1000.0 ; +10mm intro line @ 0.00
G1 Z0 ;lower head back to normal intro line
G92 E0.0
M221 S{if layer_height==0.05}100{else}95{endif}

Publié : 05/01/2019 4:41 am
Martin_au
(@martin_au)
Reputable Member
Re: No more "gnats" startup code.

If you've done the temp calibration, then the Pinda should be pretty consistent between 30ºC and 60ºC (or thereabouts. Can't remember exact range).

Publié : 05/01/2019 9:19 am
JoanTabb
(@joantabb)
Veteran Member Moderator
Re: No more "gnats" startup code.


I realized with MMU2 it doesn't happen anymore 😎

Yayyyy a good thing about MMU2....

Lol

Joan

I try to make safe suggestions,You should understand the context and ensure you are happy that they are safe before attempting to apply my suggestions, what you do, is YOUR responsibility. Location Halifax UK

Publié : 05/01/2019 10:22 am
Tinkerwest
(@tinkerwest)
Trusted Member
Re: No more "gnats" startup code.


I intentionally set the wait for 40C because during mesh calibration the PINDA on my machine gradually heats up to 42C. By setting the start temp closer to the final temp, I am keeping PINDA temp as steady as I can during the mesh measurements. If I start it at 35C, it still rises to 42C by the end of mesh. Beginning at 40, it only rises a couple degrees.

My goal is to keep the PINDA temperature more constant, avoid ramping it all the way from 35 to 42 during Mesh.

Then again, I'm printing PETG with an initial bed of 85C. If one is using a lower bed temperature, the final PINDA temp might be lower and then a lower starting temp would be appropriate. You can watch the PINDA temperature during a mesh calibration and see what your machine's PINDA temp becomes near the end of the process. Pick something two or three degrees below that for the M850 Snn command and the PINDA should stay as steady as possible for your bed temp.

Had to lower the warming position a bit closer to the bed to allow for cold starts. My code is now...


M115 U3.5.1 ; tell printer latest fw version
M83 ; extruder relative mode
G28 W ; MUST FIRST home all without mesh bed level or else risk nozzle crash!
G0 X70 Y70 Z2 F1000; PINDA warming position
M140 S[first_layer_bed_temperature] ; set bed temp
M104 S150 ; preheat extruder to no ooze temp
M109 S150 ; wait for extruder temp
M190 S[first_layer_bed_temperature] ; wait for bed temp
M860 S40 ; wait for PINDA temp to stabilize
M104 S100 ; drop extruder to lower temp to reduce PINDA rise during mesh
G80 N7 ; mesh bed leveling with extra points
G1 Y-3.0 F1000.0 ; go outside print area
G92 E0.0
G1 Z3 ; raise head before heating extruder
M104 S[first_layer_temperature] ; set extruder temp AFTER mesh to minimize gnats
M109 S[first_layer_temperature] ; wait for extruder temp
G1 Z0.5 ; move slightly above bed for intro line
G1 X60.0 E9.0 F1000.0 ; intro line
G1 X100.0 E12.5 F1000.0 ; intro line
G1 E-0.8 F2100; retract to avoid stringing
G1 X99.0 E0 F1000.0 ; -1mm intro line @ 0.00
G1 X110.0 E0 F1000.0 ; +10mm intro line @ 0.00
G1 Z0 ;lower head back to normal intro line
G92 E0.0
M221 S{if layer_height==0.05}100{else}95{endif}

Wondering if this will work with S3D ?

Updated ********

I guess it will not work for S3D

From Facebook group


[first_layer_temperature] and lines like it

simplify3D uses a different wildcard/variable syntax that i had to look up which is [extruder0_temperature]

information found here:
https://forum.simplify3d.com/viewtopic.php?f=8&t=1959

Publié : 05/01/2019 4:39 pm
bobstro
(@bobstro)
Illustrious Member
Re: No more "gnats" startup code.


[...] Wondering if this will work with S3D ?

Updated ********

I guess it will not work for S3D

From Facebook group


[first_layer_temperature] and lines like it

simplify3D uses a different wildcard/variable syntax that i had to look up which is [extruder0_temperature]

information found here:
https://forum.simplify3d.com/viewtopic.php?f=8&t=1959

You can port over the bulk of the gcode to Simplify 3D if you replace the Slic3r placeholders with S3D's. I've got a partial list of the basic 1st layer temp settings here that you'll want for the startup gcode. I'm adding to that page as I have time. Things that specifically won't work are any of the conditional lines.

Feel free to check out my S3D version of my gcode startup routine here, and the Cura version here. I do things a bit differently that the OP in this thread, but the same basic ideas are incorporated. Documentation is here.

My notes and disclaimers on 3D printing

and miscellaneous other tech projects
He is intelligent, but not experienced. His pattern indicates two dimensional thinking. -- Spock in Star Trek: The Wrath of Khan

Publié : 05/01/2019 6:19 pm
--
 --
(@)
Illustrious Member
Re: No more "gnats" startup code.

M860 S40 ; wait for PINDA temp to stabilize

Code worth waiting for; but not in the normal release channel?? From the Prusa Gcode guide list, there's nothing between 702 and 907.

M702 ; Unload filament
...
M907 ; Set stepper motor current

Publié : 05/01/2019 9:15 pm
Bunny Science
(@bunny-science)
Noble Member
Topic starter answered:
Re: No more "gnats" startup code.

Makes for an interesting temperature graph during startup. This is starting from a cold machine. Takes a while for the PINDA to warm up after both nozzle and bed reach initial temp. Unfortunately, I don't have a graph of the PINDA temp. Dropping nozzle temp slows PINDA temperature rise and starting it near the end temperature also reduces the delta. Otherwise, it would climb from 35C to 42 during N7 mesh. With the current scheme, it only goes from 40 to 42C during N7 mesh - not much.

Overall, the few minutes extra minutes during startup are worthwhile for gaining more consistent 1st layer, completely gnat and string-free bed without needing attendance. I'm frequently starting a print job remotely after asking my wife to clear the print plate. Anything that makes remote startup more reliable is a huge plus.

Extruding the initial line from a higher Z helps. She likes that cleaning the plate is super easy now that the initial line no longer excessively sticks.

PS. I have done the PID cal at 245C, but not the PINDA manual temp cal.

Publié : 05/01/2019 10:25 pm
Martin_au
(@martin_au)
Reputable Member
Re: No more "gnats" startup code.

I wouldn’t bother with the manual temp calibration. The automatic one is a good place to start.

Publié : 05/01/2019 10:47 pm
bobstro
(@bobstro)
Illustrious Member
Re: No more "gnats" startup code.


M860 S40 ; wait for PINDA temp to stabilize

Code worth waiting for; but not in the normal release channel?? From the Prusa Gcode guide list, there's nothing between 702 and 907.

I found info on it here.

My notes and disclaimers on 3D printing

and miscellaneous other tech projects
He is intelligent, but not experienced. His pattern indicates two dimensional thinking. -- Spock in Star Trek: The Wrath of Khan

Publié : 05/01/2019 10:59 pm
Bunny Science
(@bunny-science)
Noble Member
Topic starter answered:
Re: No more "gnats" startup code.

Based on the slopes of graphed data in https://shop.prusa3d.com/forum/hardware-firmware-and-software-help-f64/pinda-hardware-testing-inconsistent-at-any-given-t-t23774.html

PINDA detection drift from 40 to 42C is about 10 mics.
Going from 35 to 42C, drift is about 25 mics.
Without prewarming the PINDA, we're looking at about 60 mics drift.

+/- 60 mics is enough to make an easily visible 1st layer print difference.
Simply preheating to 35 gets you to +/- 25 mics - just discernible 1st layer changes.
Heating the PINDA to 35C before mesh is definitely worthwhile.

Keeping PINDA super steady during mesh is a bit of overkill and probably only meaningful with additional N7 measurements points.
+/- 25 mics is already better than the errors that std mess interpolation has regarding my print plate.
+/- 10 mics makes the std mesh errors downright ridiculous.

Publié : 05/01/2019 11:39 pm
Page 1 / 2
Partager :