AndrewEllis93 / Print-Tuning-Guide
- пятница, 22 октября 2021 г. в 00:33:29
This documentation is a work in progress.
If you have issues, comments, or suggestions, please let me know on Discord: Ellis#4980
Much of this guide is specific to Voron printers running Klipper. Rather than re-hashing concepts already described in Voron/Klipper documentation, I will be frequently linking to them and adding additional information and methods that utilize those concepts.
This is not intended to be an ultimate guide to everything, rather a guide to address common mistakes and confusion I see in the Voron Discord.
My SuperSlicer profiles are located here.
Thank you to bythorsthunder for help with testing these methods and providing some of the photos.
Any line widths are expressed as a percentage of nozzle diameter.
This allows the guide to remain agnostic to nozzles.
SuperSlicer natively allows percentages to be entered this way.
However:
For Cura / Prusa Slicer / possibly others, you MUST use static line widths.
For example, enter 0.48mm instead of 120% if you are using a 0.4mm nozzle.
I'm going to call it "squish" for purposes of being unambiguous.
"z offset" and "z height" can be conflated with other concepts.
It stops sounding like a real word after you type it 100 times.
This section assumes that you have already done a rough Z offset calibration.
This section also assumes that you have a consistent first layer squish, both across the entire build surface and between prints. Here are some tips if you are having issues with either.
You should use bed mesh. I personally recommend generating a bed mesh before every print, by adding BED_MESH_CALIBRATE
to your PRINT_START
macro. (requires the config section in the link above.)
relative_reference_index
setting. This should correspond to the point you calibrate your Z offset to (almost always the center point.)
If you are using a V2:
BED_MESH_CALIBRATE
after G32, as G32 clears bed meshes by default.(!) On larger enclosed printers (i.e. V2 & Trident), ensure that you are heat soaking for at least an hour.
Z will drift upwards as the frame and gantry thermally expand with chamber heat. This can cause your first layer squish to vary between prints, and can even cause your first layer to drift up as it prints.
Don't believe me? Look at this:
(The important one is the red line. Disregard the others.)
It's not ideal, but just get into a routine - start the heat soak from your phone when you wake up.
There are ways around this - specifically by using gantry backers in combination with software-based frame thermal expansion compensation, but that is a rabbit hole well outside the scope of this guide.*
* Some links: 1 2 3 4 5 6 7 8
* This is the one thing I would ask you not to message me about. It is outside the scope of what I am hoping to accomplish with this guide. The graph above is solely intended to demonstrate my point about heat soak times.
1) Scatter square patches around your bed in your slicer. (See Test_Prints folder)
2) Set your first layer height to 0.25 or greater.
3) Set your first layer line width to 120% or greater.
4) Start the print. While it is printing, live adjust z. Refer to the example images below.
5) Once you are happy with your squish, cancel the print and then save your new offset:
Z_OFFSET_APPLY_ENDSTOP
. This will apply your new offset to your stepper_z's position_endstop
.Z_OFFSET_APPLY_PROBE
. This will apply your new offset to your probe's z_offset
.switch_offset
. Higher value = more squish.You should still clearly be able to see the lines. If it's completely smooth, your squish is too much. If you see gaps between the lines, you need more squish.
(!) Avoid touching your build surface as much as possible. Oils from your fingers will cause issues. Handle your spring steel with a clean rag or cloth.
(!) Thoroughly wash all build plates with dish soap and water, followed by 70+% isopropyl alcohol.
Smooth PEI:
Textured PEI:
Ensure your PEI is not counterfeit. You may have to ask in the Discord for others' experiences with a given brand. If your PEI is clear rather than yellowish, it's fake.
Instead of PEI, you can use strong adhesives like Vision Miner Nano Polymer on bare spring steel.
Pressure advance changes the distribution of material, not the amount of material.
Lower values result in less material in the middle of lines, and more at the ends/corners.
Higher values result in more material in the middle of lines, and less at the ends/corners.
Here is an example:
Remember: There is rarely such thing as perfect pressure advance. Either accelerations or decelerations will almost always be slightly imperfect. You should always err on the side of lower PA values.
Pressure advance can change with different filaments. Typically I only find it necessary to tune per material type - ABS, PETG, PLA, TPU, etc. I will only tune specific brands or colors of they are noticeably different.
There are two approaches - the tower method (simple), and the Marlin method (advanced).
This is based off of the Klipper Pressure Advance guide, but with some modifications.
The Klipper guide recommends limiting acceleration to 500 and square corner velocity (SCV) to 1, among other things. The intent behind these changes is to exaggerate the effects of pressure advance as much as possible. I'm not a fan of this approach.
In my opinion, it is best to run the calibration in close to normal printing conditions. This can make it slightly harder to tell the difference, but I find it more accurate.
1) Download and slice the pressure advance tower with your normal print settings (accelerations included).
The only modifications you should make are these:
2) Initiate the print.
3) After the print has already started*, enter the following command:
TUNING_TOWER COMMAND=SET_PRESSURE_ADVANCE PARAMETER=ADVANCE START=0 FACTOR=.0025
TUNING_TOWER COMMAND=SET_PRESSURE_ADVANCE PARAMETER=ADVANCE START=0 FACTOR=.025
You should now see increasing pressure advance values reporting to the g-code terminal as the print progresses.
* Certain patterns in your start g-code can cancel the tuning tower.
* It does not matter how quickly you enter the command, as it is based on height.
* Alternatively, you can temporarily add the tuning tower command after your start g-code
4) Allow the print to run until it starts showing obvious issues/gaps. Then you may cancel.
5) Measure the height of the perfect PA with calipers (see images below)
6) Calculate your new pressure advance value:
FACTOR
.START
value (usually just 0).8) In the [extruder]
section of your config, update pressure_advance
to the new value.
9) Issue RESTART
command.
You may need to zoom in here, the differences are subtle. There is always some ambiguity.
Excuse the gigantic photos - high resolution is needed here.
This method is quicker to run and more precise than the tower method, but requires additional preparation and manually modifying g-code files.
(!) If you are not familiar with manually modifying g-code, please consider using the tower method instead. You risk crashes & damage if you don't know what you are doing.
1) Add this macro to your Klipper config.
# Convert Marlin linear advance (M900) commands to Klipper (SET_PRESSURE_ADVANCE) commands.
# Used in conjunction with Marlin's linear advance calibration tool:
# https://marlinfw.org/tools/lin_advance/k-factor.html
[gcode_macro M900]
gcode:
# Parameters
{% set pa = params.K|float %}
SET_PRESSURE_ADVANCE ADVANCE={pa}
2) Type RESTART
into the g-code terminal.
3) Visit the Marlin K-factor calibration site.
4) Fill out the parameters. Most are self explanatory or should be left at defaults, but these are some specific settings that I recommend:
Note that the "Extrusion Multiplier" setting is is decimal, NOT percent.
5) Generate and download the g-code file.
6) Edit the g-code file.
(!) Again, if you are confused about g-code editing, please consider using the tower method instead. You risk crashes & damage if you don't know what you are doing.
I will not give extremely specific directions here, as it depends on how you start & end your prints. I will show you mine as an example, however.
Modify the "prepare printing" g-code section appropriately at the beginning.
M204 P
to M204 S
.PRINT_START
in the appropriate place.
PRINT_START
, remember to remove the heating commands and pass them to PRINT_START
instead, e.g: PRINT_START HOTEND=240 BED=110
PRINT_START
.Modify the "FINISH" g-code section appropriately at the end.
7) Print it, and inspect the results.
This calibration pattern is a great visual representation of what I mentioned earlier: that there is rarely a perfect PA value.
The above methods are usually good enough on their own. Choosing the right height/line, however, can take some experience. Here are some things to look out for.
You can manually tweak pressure advance based on actual prints. Usually increments of 0.005 (with direct drive) are a good starting point.
(!) You should calibrate your extruder first.
Calibrating your extruder ensures that the extrusion multiplier will be the same across all printers. Extruder calibration simply ensures that 100mm requested = 100mm extruded. Extrusion multiplier is a per-filament setting, depending on the properties of each material.
(!) You should also tune pressure advance first.
These tests try to remove PA as a variable as much as possible, but having a good PA value is still ideal.
This is a widely misunderstood and debated subject. Getting the perfect extrusion multiplier (EM) is crucial for good looking prints.
Some guides you will find online mention printing a single or two-walled object and measuring the thickness with calipers. I find this method not to work very well at all, especially with ABS, presumably due to shrinkage.
SuperSlicer has a built-in flow calibration tool, however I do not like this either, for a few reasons:
Both of the above methods I've found to have error of up to 5% (sometimes even more) - which may not sound too bad but it makes a huge difference on the appearance of your prints.
This must be done per filament brand/type. It may vary by color or by roll, depending how consistent your filament brand of choice is. With KVP I am usually able to run the same EM for all colors.
By far the best method I have found is purely visual/tactile. Put the calipers down for now.
We will print some 30x30x3mm cubes. (see the Test_Prints folder)
Print Settings:
Steps:
1) Print multiple test cubes with variations of 2% EM.
2) Inspect each cube. Once you are nearing the correct EM, the top should feel noticeably smoother. Too much EM will look and feel rougher, and too little EM will have gaps between the lines.
3) If desired, run the process again but with 0.5% intervals. Most PIF providers tune down to the 0.5% range, some even less.
I have found that most ABS falls within the 91-94% range.
This can be difficult to convey in photos. You may have to zoom in quite a bit to see the differences. It's easier to see in person - especially because you can manipulate the test prints and look at them in different lighting angles.
You will get better at this through experience.
Now we run the print again at 0.5% intervals between the "too low" and "too high" examples from above.
Notice how the print becomes noticeably more shiny and glass-like around perfect EM (cube #2). This is not just a trick of the light. Shininess is not always the best indicator, but it makes a good visual example.
Pressure advance and flow are interrelated. The method above has you lowering your top layer speeds in order to reduce the impact of pressure advance as much as possible.
Remember: pressure advance changes the distribution of material, not the amount of material.
If your actual print results with faster top layers do not look as good as your test cubes, provided they have adequate infill, top layers, etc, your pressure advance value may need further tuning.
You can run faster solid infill, but I would recommend using a slow-ish top surface layer still. I use 60mm/s.
People often start printing by ABS with no cooling. While this is valid advice for unenclosed printers, it's not a universal rule. ABS often needs some cooling, especially in an enclosure.
There are multiple things you can do to minimize overheating with ABS.
1) Increase fan speeds.
2) Increase "minimum layer time" / "layer time goal"
3) Print more objects at once, and spread them out.
4) Reduce nozzle and/or bed temperature.
There are a few factors that can affect your retraction settings, such as:
We will be using using SuperSlicer's calibration tools.
We will be printing these retraction towers at three different temperatures. If you are confident that your filament temperature is well tuned, you may get good results with just one tower.
(!) You should tune pressure advance first. Pressure advance can lower the amount of retraction needed, especially for bowden.
If you typically print with z-hop, leave it on for this test.
There is some trial and error involved. You may need to re-run these tests at varying retraction speeds and temperatures if you are not getting good results. You will just have to experiment. You should hot tighten your nozzle (unless it's an E3D Revo).
If you are having persistent issues:
1) Ensure that your nozzle is clean. You can use a brass brush while it is heated.
2) Set your retract and unretract speeds to 30mm/s to start.
3) Use medium-high fan speeds.
4) Select "extruder retraction calibration" from the menu.
5) Click "remove fil. slowdown".
6) Fill out the parameters and select "Generate".
Start temp:
Step:
Height:
Temp decrease (temp decr):
You should get output like this:
7) Print it, and inspect the results.
After tuning flow and pressure advance, you may still have some pinholes where your top infill meets your perimeters. This is more prevalent in PS/SS.
This is not necessarily an indicator that your flow or pressure advance are wrong, though they can impact it.
Slowly increase "infill/perimeter overlap" (PS/SS) until satisfied.
Overlap Tweaked (40%):
Regarding "Not Connected" Top Infill (SuperSlicer)
Some use "not connected" for their top infill. This does resolve the pinholes, however I find this to cause the opposite problem. It overshoots.
To resolve this overshoot, you then need to lower your overlap. And because overlap is a global setting, this also starts to affect sparse infill/perimeter bonding - and therefore affects print strength.
Open the front door or take off all the panels. Point a fan at it.
Use AB-BN or another cooling mod.
run_current
for your motor. Too high or too low can both cause skipping.The left cube shows this pattern. The right cube is normal.
This is adjusted by moving the motor itself up and down. The motor plate has slotted screw holes to allow for adjustment.
You should have a small amount of backlash with filament loaded and the spring tensioned. The backlash will reduce a bit once it is loaded. You will just have to experiment.
This can also be caused by poor quality BMG parts. Genuine Bondtech or Trianglelab BMG parts are best.
Unfortunately, adjustment is not as simple for the Mini Afterburner. You will have to disassemble it and play with it. You may have to file out some screw holes to create the backlash needed. I don't have a Mini Afterburner so I can't give an exact process.
The marks will be about 2mm apart (the same distance as the belt teeth)