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.
A handful of the troubleshooting sections and some of the tuning hints focus on CoreXY (sorry, Switchwire folks).
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.
(!) Please pay special attention to anything bolded and marked with "(!)"
My SuperSlicer profiles are located here, along with some other information like SS tips and volumetric flow rate information with formulas.
I am adding new information all the time, be sure to check back.
If you have issues, comments, or suggestions, please let me know on Discord: Ellis#4980
You can find bed the models and textures I am using in Hartk's GitHub repo. The bed texture I am using is an older one from him in VoronUsers.
Thank you to bythorsthunder for help with testing these methods and providing some of the photos.
- Before We Begin
- First Layer Squish
- Build Surface Adhesion
- Pressure Advance
- Extrusion Multiplier
- Cooling and Layer Times
- Retraction
- Infill/Perimeter Overlap
- Troubleshooting
- BMG Clockwork Backlash Issues
- Bulging
- Bulges at STL Vertices
- Bulging Patterns on Overhangs (SS)
- Extruder Skipping
- PLA is Overheating
- Pockmarks
- Repeating Vertical Fine Artifacts (VFAs) With ~2mm Spacing
- Repeating Vertical Fine Artifacts (VFAs) With Non-2mm Spacing
- Slicer is Putting Heating G-codes in the Wrong Place/Order
- Small Infill Areas Look Overextruded
Before you follow any tuning methods in this guide, ensure that:
-
Your nozzle is clean.
-
Your nozzle has been tightened while hot (unless it's a Revo), and is not leaking material through the threads around the nozzle or heatbreak.
-
(!) Your nozzle is not partially clogged.
- If your nozzle is partially clogged, you may not even notice. You may be able to print, but you will have an extremely difficult time trying to tune.
- Ensure that you can easily extrude by hand with the filament latch open.
- Ensure that the material falls straight down out of the nozzle when extruding midair. It should not shoot out to the side.
- If your nozzle is partially clogged, you may not even notice. You may be able to print, but you will have an extremely difficult time trying to tune.
-
Your thermistors are the correct types in your config.
- (!) If you use NTC100K B3950 thermistors, please see this.
- (if the link is not working, check the Voron Discord server in #slicers_and_print_help, there is a pinned message from mallcop)
- (!) If you use NTC100K B3950 thermistors, please see this.
-
(!) Everything is tight (seriously, check again)
- Go back again and re-tighten every single screw you can possibly find, especially grub screws and everything in the toolhead.
- I do this once every once in a while, and I often find something that has shaken loose and is causing me issues that are extremely difficult to troubleshoot.
-
Your motion components are clean, particularly between gear/pulley/idler teeth.
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:
- Prusa Slicer bases percentages on layer heights instead.
- Cura does not allow percentages at all.
- Other slicers may or may not support this.
(!) 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" to be 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 yourPRINT_START
macro. (requires the config section in the link above.)- Do not omit the
relative_reference_index
setting. This should correspond to the point you calibrate your Z offset to (almost always the center point.)- relative_reference_index = ((x points * y points) - 1) / 2
- Some discourage using bed mesh unless absolutely necessary, but I disagree. As far as I'm concerned, it's cheap insurance. Additionally, it's rare for larger printers to have a perfect first layer without it.
- Your heat soaked mesh will also be different from your cold mesh. It will even vary at different temperatures. This is why I prefer to generate a fresh bed mesh for every print.
- Bed mesh can't always save you from mechanical problems.
- Most bed mesh issues are caused by the gantry rather than the bed itself.
- On V2/Trident, heat soak for 2+ hours, square your gantry and de-rack. This helps to remove tension in your gantry, and can improve your mesh/first layer.
- These instructions are for V2, but the process should be similar for Trident.
- You have to be somewhat quick, as things start cooling down once you take off the panels. Don't stress about it too much though.
- On all CoreXY printers: de-rack.
- If you are using dual X rails, make sure they are properly aligned with each other. This can cause left-to-right first layer issues that mesh can't compensate for.
- On V2/Trident, heat soak for 2+ hours, square your gantry and de-rack. This helps to remove tension in your gantry, and can improve your mesh/first layer.
- Most bed mesh issues are caused by the gantry rather than the bed itself.
- Do not omit the
-
If you are using a V2:
- Ensure that you place your
BED_MESH_CALIBRATE
after G32, as G32 clears bed meshes by default. - Ensure that you are homing Z again after QGL, as QGL throws off Z height.
- You may need to play with how tight your bed mounting screws are.
- The common advice of only three bed screws, with "one tight, two snug" is generally good advice.
- I've found that if any are too loose, it can cause first layer consistency issues.
- Ensure that you place your
-
(!) 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 red line):
It's not ideal, but just get into a routine - start the heat soak from your phone when you wake up in the morning.
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.
- Thinner first layer heights are considerably more sensitive and more difficult to maintain.
3) Set your first layer line width to 120% or greater.
4) Start the print. While it is printing, live adjust z.
- This can be done via g-codes/macros, LCD, or via web. I find it easiest to sit in front of the printer and fine-tune with the LCD.
In these examples, the third square is closest.
There are print examples in the next section.
-
- Top Surface
- Bottom Surface
-
- Top Surface
- Bottom Surface
5) Once you are happy with your squish, cancel the print and then save your new offset with one of the below methods:
-
Dedicated Z Endstop:
(With dedicated Z endstops. Stock V0/V2/Trident are set up this way)- Enter
Z_OFFSET_APPLY_ENDSTOP
*- This will apply your new offset to your stepper_z's
position_endstop
.
- This will apply your new offset to your stepper_z's
- Enter
SAVE_CONFIG
.
- Enter
-
Virtual Z Endstop:
(When using the probe as the Z endstop. Stock Switchwire and Legacy are set up this way)- Enter
Z_OFFSET_APPLY_PROBE
*- This will apply your new offset to your probe's
z_offset
.
- This will apply your new offset to your probe's
- Enter
SAVE_CONFIG
.
- Enter
-
Klicky Auto Z Calibration:
(This is a mod, it uses Klicky AND nozzle endstop to automatically baby step before each print. See here for more information.)- Manually adjust your
switch_offset
based on how much extra you had to baby step.- Higher value = more squish
- Lower value = less squish
- Manually adjust your
* Requires a semi-recent version of Klipper.
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.
-
Smooth PEI:
- Scuff it up with a Scotch-Brite scouring pad.
- The rough side of a fresh sponge, ~800-1000 grit sandpaper, or other brands of scouring pads could also work.
- This helps immensely, much like how you would scuff/sand a surface before painting or gluing something to it.
- You can refresh the surface this way on occasion, just remember to wash it again afterwards.
- Ensure that you actually have smooth PEI. Some spring steels, particularly the reverse side of some textured steels, are yellow/orange in appearance but do not actually have PEI applied. Inspect the edges of the plate to verify.
- Scuff it up with a Scotch-Brite scouring pad.
-
Textured PEI:
- Needs more squish than smooth PEI, to push the filament into the cracks/dimples.
-
(!) Thoroughly wash all build plates with dish soap and water, followed by 70+% isopropyl alcohol.
- You should do this even for brand new surfaces.
- Isopropyl alcohol does not do a great job of cleaning oils. It mostly just spreads them around.
- I keep a spray bottle of soapy water next to my printer. Using a paper towel, I scrub with soapy water, then again with isopropyl alcohol (IPA).
- Soap is not needed for every print. You can use IPA most of the time, with occasional soap when it needs further refreshing.
-
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.
- Stick to well-known brands.
- This is prevalent with unknown AliExpress and Amazon sellers.
-
Instead of PEI, you can use strong adhesives like Vision Miner Nano Polymer on bare spring steel.
-
As a very last resort, you can try refreshing the surface with acetone. Keep in mind, however that this weakens PEI over time, and I heave heard cases of it destroying certain surfaces (mainly certain brands of textured sheets). Only try this if it's going in the trash otherwise.
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 Lines 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:
- 120mm/s external perimeter speed
- 1 perimeter
- 0% infill
- 0 top layers
- 0 second "minimum layer time" / "layer time goal"
- High fan speed
2) Initiate the print.
3) After the print has already started*, enter the following command:
- (Direct Drive)
TUNING_TOWER COMMAND=SET_PRESSURE_ADVANCE PARAMETER=ADVANCE START=0 FACTOR=.0025
- (Bowden)
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)
- Ensure you are not measuring your Z seam corner.
- There should be no signs of underextrusion before or after the corner.
- It can help to shine a bright flashlight between the walls.
- It is normal for there to be a small amount of bulge on the trailing edge. When in doubt, choose the lower value.
- If the height differs between corners, take a rough average.
6) Calculate your new pressure advance value:
- Multiply measured height by your
FACTOR
. - Add the
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:
- Printer
- Layer Height: 0.25mm
- Speed
- Slow Printing Speed: Your square corner velocity
- Fast Printing Speed: 120mm/sec
- Acceleration: Your perimeter acceleration (NOT external perimeter)
- Pattern
- Starting Value for K: 0
- Ending Value for K:
- Direct Drive: 0.1
- Bowden: 1.5
- K-factor Stepping::
- Direct Drive: 0.005
- Bowden: 0.05
- Print Anchor Frame: Checked
- Advanced
- Nozzle Line Ratio: 1.2
- Use Bed Leveling: No
- Prime Nozzle: Unchecked
- Dwell Time: 0
Note that the "Extrusion Multiplier" setting is a decimal, NOT a 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.
- Change
M204 P
toM204 S
. - Add
PRINT_START
in the appropriate place.- If you are passing variables to
PRINT_START
, remember to remove the heating commands and pass them toPRINT_START
instead, e.g:PRINT_START HOTEND=240 BED=110
- If you are passing variables to
- Ensure that the preparation commands (G90, M83, G92 E0 etc.) remain, and happen after
PRINT_START
.
- Change
-
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.
- Even at the "best" PA value, the line may not be perfect thickness all the way across.
- Often, either acceleration or deceleration will look good. They will not always both look good on the same line.
- ALWAYS choose the lower value.
- This requires some interpretation. In this example, I would choose about 0.055.
(note: mine may be higher than yours, I am using an Orbiter + Dragon HF.)
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 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 must be done, at a minimum, 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.
This is a bit of a debated subject. Getting the perfect extrusion multiplier (EM) is crucial for good looking prints.
The below 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.
-
- 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.
- This method is also impacted by pressure advance, which can easily throw off your results.
- Some guides you will find online mention printing a single or two-walled object and measuring the thickness with calipers.
-
- SuperSlicer has a built-in flow calibration tool, however I do not like this either, for a few reasons:
- It is very reliant on first layer squish.
- Because it uses 100% infill, the first layer squish carries through all the way to the top.
- It has ironing turned on by default.
- The objects are too small. It's normal for smaller infill areas to look a bit more overextruded than larger infill areas.
- SuperSlicer has a built-in flow calibration tool, however I do not like this either, for a few reasons:
I find the below method to result in prints that are within my personal acceptable tolerances, and work well for Voron parts. It's an aesthetics-first approach that also happens to get "good enough" dimensional accuracy in my experience.
Voron parts are designed for some shrinkage, and for reasonable tolerances, so don't go crazy with calipers and comparing measurements to CAD/STL dimensions. In many cases they are not intended to match.
With the Voron test prints, as long as:
- The thread tests screw together nicely, and
- Bearings fit nicely without too much force into the Voron cube (F695 on bottom, 625 on top),
Then you are pretty much good to go.
If dimensional accuracy is your top priority for other projects:
- Firstly, adjust your expectations. Remember, our 3D printers are hobby-grade, glorified hot glue guns, not CNC. You will not reliably get 0.01mm tolerances everywhere.
- You likely need to play with part scaling, CAD dimensions, or even slicer shrinkage compensation since we are dealing with ABS. ABS shrinks a fair bit, and the nature of FDM can also make shrinkage a bit less predicatable.
- The best place to accomodate for shrinkage is in the part design itself.
- Consider using a different plastic with less shrinkage, or even filled ABS.
- You can fine-tune EM based on part dimensions or fitment, and use my method to tune top layer flow separately for aesthetics and flush mating surfaces.
- There is some debate around whether you should calibrate your A/B (or X/Y) axes. I have never found this necessary, however.
You will have to find the method that works best for you. I am considering extremely tight dimensional accuracy outside the scope of this guide.
The best method I have found is purely visual/tactile.
We will print some 30x30x3mm cubes. (see the Test_Prints folder)
Print Settings:
- 40+% Infill
We need sparse infill rather than 100% solid infill, to remove the first layer squish from impacting the top layer.
We still need enough to adequately support the top layers. - 100% Top Layer Line Width
This is more subject to interpretation, but I find 100% to have good results. It has a nice finish and tends to show off EM differences the best. - 5 Top Layers
This ensures that we have adequate support for the surface layer. - Monotonic (filled) top infill pattern
Make sure that this is not set to "ironing". If not available, use rectalinear or "lines" instead (depends on slicer). - 30mm/s Solid & Top Solid Infill Speed*
This helps to remove pressure advance as a variable. The faster we go, the more pressure advance will impact our results.
- *If your pressure advance is well tuned, you may actually get more "true to life"/accurate results printing at your normal print speeds. If your pressure advance is off, however, it can throw you off further. - High Fan Speed
As these are only small objects, we need to ensure they have enough cooling so that the top layers don't sag. This depends on your fan, maybe around 80% with AB-BN or 100% with the stock 4020 fan.
Steps:
1) Print multiple test cubes with variations of 2% EM.
- You can do this all in once plate by adjusting settings for each object. Save it as a .3mf file for reuse later.
- (!) In PS/SS, if you set flow per-object, make sure to set your EM to 1 in the filament settings. The per-object EM settings are a percentage that is multiplied by the EM in your filament settings.
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 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.
Focus your attention near the center of the test prints. It's normal for it to look a bit more overextruded near the edges and corners.
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.
Remember: pressure advance changes the distribution of material, not the amount of material.
Pressure advance and flow are interrelated, so tuning one can affect the other. The method above has you lowering your top layer speeds in order to reduce the impact of pressure advance as much as possible.
The faster you print, the larger the area that pressure advance will impact. Lower speeds will relegate the effects of pressure advance to be closer to the edges, while higher pressure advance will cause it to affect a wider area.
Imagine a single extrusion line. In this line, the toolhead accelerates to full speed, stays at top speed, and then decelerates again towards the end of the line. Pressure advance takes effect during these accelerations and decelerations.
In both of the below examples, assume the same acceleration settings.
- When printing with a faster speed, the line is printed in less time, and the extruder spends a larger portion of the line accelerating and decelerating to reach the higher top speed. Therefore, a larger portion of the line is spent equalizing pressure.
- When printing with a slower speed, the line is printed in more time, the extruder spends a smaller portion of the line accelerating and decelerating. Therefore, a smaller portion of the line is spent equalizing pressure, and more of the line is printed at steady speed with steady pressure.
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 moderate top layer speed 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.
- The higher your chamber temperature is, the more fan speed you will need.
- Use constant fan speeds when possible. For filaments that shrink, varying fan speeds during a print will cause inconsistent layers and banding. Some layers will essentially shrink more than others.
- You probably need more cooling than you think.
- For example I run AB-BN (5015 fan mod) and have a 63C chamber.
- For large plates, I use 40% fan.
- For small numbers of small objects, I use up to 80% fan.
- For very large objects, you may want to be more conservative with cooling. Large objects are much more prone to warping.
- This is the only time I might use differing fan speeds. Lower fan speeds for the majority of the print, with higher fan speeds for overhangs.
- For example I run AB-BN (5015 fan mod) and have a 63C chamber.
- If your prints are curling away from the bed even at low fan speeds, it may actually be a build surface adhesion issue.
2) Increase "minimum layer time" / "layer time goal"
- I set this to a minimum of 15 seconds.
- This essentially slows down the print for very short/small layers, allowing each layer adequate time to cool.
- When layer times are too short, they do not have enough time to properly cool. You will then be printing on top of layers that are still soft.
3) Print more objects at once, and spread them out.
- We can allow objects to have some "break time" between layers simply by printing more objects at once. Spread them out to induce more travel time, and maybe even reduce travel speeds.
(!) 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:
- (!) Ensure that your filament is dry. Wet filament can cause near-unfixable stringing.
- Ensure that your hotend is not leaking around the threads or heat break. This can indicate that your nozzle or heatbreak is loose or not making adequate contact.
- You may need to use less z hop (z lift). I run 0.2mm. Too high gives me stringing.
There are a few factors that can affect your retraction settings, such as:
- Material type
- Print temperature
- Hotend
- Extruder
We will be using using SuperSlicer's calibration tools.
- If you do not typically use SuperSlicer, you can start with one of the built-in Voron profiles for this test.
- The built-in profiles are not great in my opinion, but will work fine just for running the calibration tools.
- Shameless plug: try my profiles later on. There are some other warnings and dependencies, however (please thoroughly read its readme), so just stick with the built-in ones for now.
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.
1) Ensure that your nozzle is clean. You can use a brass brush while it is heated.
2) Set your fan speed high.
- These are small towers, we don't want them to get melty.
3) Set your retract and unretract speeds to 30mm/s to start.
- This is located in the "printer settings" tab, under "extruder 1".
- I have had more luck with slower retraction speeds. Your mileage may vary.
4) Use medium-high fan speeds.
- These are located in the "filament settings" tab, under "cooling".
- These retraction towers are small and need some additional cooling.
5) Select "extruder retraction calibration" from the menu.
6) Click "remove fil. slowdown".
7) Fill out the parameters and select "Generate".
-
-
Start temp:
- Set a bit higher than your normal printing temps (maybe around 10C higher).
- For this example, I will be using 255C with KVP ABS.
- Set a bit higher than your normal printing temps (maybe around 10C higher).
-
Step:
- Direct drive: 0.1mm
- Bowden: 0.5mm
-
Height:
- Your maximum retraction length will be (height - 1) * step.
- Do not exceed 1mm for direct drive.
(height: 11 when using a step of 0.1mm)- You will rarely need more than this, but it is possible with some high flow hotends and setups. Start with 1mm, only go up to an absolute max of 2mm if required.
- For bowden, this can vary. Try starting with a maximum of 3mm.
(height: 7 when using a step of 0.5mm)- You may need more, depending on a few factors like pressure advance, bowden tube length, bowden tube internal diameter, and how firmly attached the tube is in the couplings.
- Ensure that your bowden tubes are as firmly attached as possible, and do not move too much in and out of their couplings during printing.
- Do not exceed 1mm for direct drive.
- Your maximum retraction length will be (height - 1) * step.
-
Temp decrease (temp decr):
- 3x10°.
- This will print three retraction towers. One will be at your "start temp", the other two will be 10C increments below this.
- 3x10°.
-
You should get output like this:
8) (!) Arrange the towers front to back* on your build plate.
- These objects are printed one at a time. This ensures that they are not knocked over by the gantry/toolhead.
- Arrange them from the hottest tower at the front, to coolest tower at the back.
- The towers are printed from hottest to coldest. This just lowers the chance of collisions (particularly with poorly written
PRINT_END
macros).
- The towers are printed from hottest to coldest. This just lowers the chance of collisions (particularly with poorly written
* If you are using a different kinematic system than CoreXY/i3 cartesian, you may need to use a different arrangement. For example, a cross gantry would need diagonal.
9) Print it, and inspect the results.
- If your hotter towers are much stringier, consider choosing a lower extrusion temperature.
- To get your new retraction length:
- Count the rings (from the bottom), subtract 1, and multiply by your "step" value.
- In my opinion, choose a height 1-2 rings higher than where the stringing disappears. This just gives you a bit more headroom for filaments that may behave a bit differently.
- We are subtracting 1 because the first ring is 0 retraction.
- Count the rings (from the bottom), subtract 1, and multiply by your "step" value.
-
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.
Some people have widely varying overlap settings. You will need to tune this for yourself. I am still figuring out why it varies between people. It may be impacted by line width, but I have not yet tested this theory.
Simply increase "infill/perimeter overlap" (PS/SS) until satisfied.
-
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.
Ensure that you have some backlash between the motor gear and the plastic gear.
- Gauge this with filament loaded and the spring tensioned (the backlash will reduce a bit once it is loaded).
- You want a little backlash, but not too much.
This is adjusted by moving the motor itself up and down.
The motor plate has 3 slotted screw holes to allow for adjustment:
- The top two screws are easily reachable.
- The bottom left screw can be reached by opening the filament latch fully and using a ball-end hex driver.
I don't have a Mini Afterburner so I can't give an exact process for it. From what I understand, it now also has some slotted screw holes to allow for adjustment.
- Repeating Patterns in Extrusion
- Adjusting backlash can help considerably with these issues, but is not always guaranteed to fix it.
- These issues can also be caused by poor quality BMG parts. Genuine Bondtech or Trianglelab BMG parts are best.
- Galileo/Orbiter seem to be less likely to have these extrusion patterns in my experience.
- Test prints: https://mihaidesigns.com/pages/inconsistent-extrusion-test
- Examples:
- Clacking noises during retraction
- Clacking noises during pressure advance moves
This may or may not just be a Prusa Slicer / SuperSlicer thing. I have not tested it in other slicers.
- Disable any "extra perimeters" and "supporting dense layer" settings (PS/SS)
- Reduce perimeter accelerations considerably.
- Your square corner velocity may be too low. (Did you leave it set at 1 by chance?)
- This can also be a sign that your perimeter speeds/accels are too high.
- Some SuperSlicer profiles have "above the bridges" flow set to greater than 100%. This can cause the issues you see above.
- There are three solutions:
- Set "threshold for bridge speed and fan" to 0
- Set "threshold for bridge flow" to 0
- Reduce "above the bridges" flow to back to 100%
- If these do not fix it, it might instead be an overheating issue.
These skips will typically be wider than pockmarks.
Skipping below top layer:
-
If it occurs mainly on the first layer, ensure that you are not printing with too much squish or with too much first layer flow.
-
Ensure that your filament gear tension (usually a spring tensioner screw) is not too tight or too loose.
- Yank on the filament and keep tightening the tensioner screw until it stops slipping. Tighten it a little extra, maybe 1-2 turns.
-
Use a reverse bowden tube* with direct drive, and ensure that there is not too much resistance coming from the spool.
- *Reverse bowden tubes go from the direct drive extruder back to the spool (and should be fixed at the spool side), and prevent fast toolhead movements from yanking the filament.
- Use a 3mm inner diameter tube. 1.9mm/2mm ID tubes are more restrictive.
- Ensure that it doesn't have any kinks.
- Ensure that your spool is not catching on anything as it rotates.
- If you are pulling from a dry box, try without.
- For Voron spool holders, make sure you have the PTFE tube piece installed to lessen friction.
- *Reverse bowden tubes go from the direct drive extruder back to the spool (and should be fixed at the spool side), and prevent fast toolhead movements from yanking the filament.
-
For Voron direct drive toolheads, ensure that you have the short piece of PTFE tubing installed between the clockwork and the hotend.
- Make sure it is not too long or too short. You should trim it down until it just fits without compressing the tube.
-
Ensure that there are no issues with your hotend fan.
- Ensure that your hotend fan is running and is not stopping/starting during printing from a wiring issue.
- Also ensure that your hotend fan is running at 100%.
- Some vendor githubs have the
[heater_fan hotend_fan]
'smax_power
setting at 0.4 (40%) for some reason. - Ensure that you are running it at the correct voltage.
- Some vendor githubs have the
-
Ensure that your hotend thermistor is correct in your config and that you are not using temps that are too low.
-
(!) If you use an NTC100K B3950 thermistor, please see this.
-
Ensure that your retraction distance is not too high.
- The default Cura profile uses a high retraction distance, as it is configured for bowden.
- You should generally use a maximum of 1mm for direct drive.
-
With the filament latch open, try extruding by hand. It should be easy.
If there is much resistance, figure out where it is coming from:- You may need to drill out the filament path in the printed parts.
- Your nozzle may be partially clogged.
- See if extruded plastic is shooting out to the side instead of straight down when extruding in mid-air.
- Unclog it using a cold pull or nozzle cleaning needles.
- Try a new nozzle.
- Your heatbreak may be partially clogged.
- Remove the nozzle, cool the hotend, and try pushing fresh filament through it. Make sure to cut off the bulged tip. If there is resistance:
- Unload the filament and remove the nozzle.
- Get access to the top of the hotend (you may need to either remove the hotend or the clockwork).
- Shine a light through the hotend and look into the other side. See if there is any plastic stuck against the walls of the heatbreak or heatsink. If it is obstructed:
- Unplug the hotend fan.
- Heat the hotend up to ~180C.
- We are purposefully inducing heat creep to soften the plastic in the heatbreak.
- Push a long, thin (<=1.8mm) allen key or similar through the top side of the hotend to push the obstruction out of the bottom.
- (!) Turn off the hotend as soon as you have freed the obstruction.
- If you let it cook without cooling for a long time, it will eventually start to soften the printed hotend mounting.
- Be careful - don't burn yourself!
- Remove the nozzle, cool the hotend, and try pushing fresh filament through it. Make sure to cut off the bulged tip. If there is resistance:
-
Ensure that you are using the correct
run_current
for your motor. Too high or too low can both cause skipping.- As a general rule, don't exceed 50-60% of the rated current of your motor as your
run_current
. Some motors like more or less current, though, so your best bet would be to look at the stock configs or to ask in Discord. - Galileo/Orbiter:
- There is some confusion about different motor models.
- If you have the 20mm 1a LDO motor, try 0.65a.
- If you have the 17mm 1a LDO motor, try 0.35-0.4a.
- There is some confusion about different motor models.
- As a general rule, don't exceed 50-60% of the rated current of your motor as your
-
Check your extruder motor crimps and wiring.
-
Check the volumetric speed preview in your slicer. See if it is high for your particular hotend. Or see here to determine your maximum.
- If you are exceeding hotend limits, try lowering your volumetric speed limit in your slicer (PS/SS) or reducing line widths / layer heights / speed (other slicers) until you are under the limit.
-
Try rotating the extruder (if possible) without filament loaded. It should be easy.
-
Try using the AB-BN mod. It optimizes hotend cooling and can help with heat creep issues.
-
Try lowering your extruder motor's microstepping and disabling interpolation (and stealthchop if you have it on, which you shouldn't).
-
Take out the motor, and see how powerful it feels. See if you can stop it easily with your fingers. This may indicate a bad motor or bad wiring.
-
- Try turning the plastic gear with your finger with the motor turned off and filament unloaded. It should be relatively easy. If there is too much resistance:
- Ensure that you have a small amount of backlash in the plastic gear.
- If they are pushed together too hard, it will cause resistance.
- Ensure that your drive shaft is not rubbing against the motor:
- Ensure that you have a small amount of backlash in the plastic gear.
- Try turning the plastic gear with your finger with the motor turned off and filament unloaded. It should be relatively easy. If there is too much resistance:
- Open the front door at minimum. Or take off all the side panels.
- Use AB-BN or another cooling mod, or:
- Point a fan at it.
- You can also try printing with the bed heater turned off.
- Ensure your Z seam is not set to "random".
- Dry your filament. This can be caused be moisture turning to steam and popping.
- Extrude in midair. Watch and listen. Depending just how wet your filament is, you may hear popping noises and see steam.
- Just because your filament was new/sealed, doesn't mean it's not wet. I've had plenty of filaments come soaking wet even though they were sealed.
If the marks are about 2mm apart, that usually means that it's coming from belt/pulley/idler teeth somewhere.
Ensure that these artifacts are still perfectly vertical even when printing irregularly shaped objects like the "rectangular 2 recommended.stl" object here.
If they are not perfectly vertical (i.e. wood grain, diagonal, etc), see this section instead.
Print a square object at 45 degrees and see if it appears A, B, or both. This will tell you which axis/axes to look at.
- Your belts may be too tight. Your A/B belts should be about 110Hz over a 150mm length.
- Don't miss the video link in page linked above.
- Your belts may be rubbing a flange somewhere.
- It's nearly impossible to have them all running dead-center, but you can look around for belt wear and belt dust to find where it may be rubbing too much.
- Ensure your motor pulleys are not positioned too high or too low.
- On V2/Trident, heat soak for 2+ hours, square your gantry and de-rack. This helps to remove tension in your gantry, and can improve your mesh, first layer, and pulley/belt alignment.
- These instructions are for V2, but the process should be similar for Trident.
- On all CoreXY printers: de-rack.
- Ensure that your pulleys, idlers, and extruder gears/idlers are all clean. Debris can accumulate and compress in the teeth.
- You may have poor quality motor pulleys and idlers.
- I, and a few others, have had improvements from switching to authentic Gates brand pulleys and idlers. They are more expensive, but are worth it in my opinion.
- On v2 at least, you only need them for A/B motors and X/Y idlers. Don't waste the money on Z.
- US source:
- For idlers, there is some debate over toothed vs smooth. My personal opinion is:
- Gates toothed idlers > smooth idlers (2x F695 bearings) > china toothed idlers.
- I, and a few others, have had improvements from switching to authentic Gates brand pulleys and idlers. They are more expensive, but are worth it in my opinion.
Ensure that these artifacts are still perfectly vertical even when printing irregularly shaped objects like the "rectangular 2 recommended.stl" object here.
If they are not perfectly vertical (i.e. wood grain, diagonal, etc), see this section instead.
These patterns can be subtle (lumps) or sharp like the above section's photo.
- Ensure that your A/B pulleys and XY joint idlers are all clean. Debris can accumulate and compress between the teeth.
- You may have a bad/poor quality pulley or toothed idler.
- See above section for more info / links.
- You may have a bad/poor quality bearing.
- Loosen the A/B belts, pull the belt over the side of each bearing flange, and turn each bearing by running it against your finger. Make sure the whole rotation feels smooth.
- You may have a bad/poor quality linear rail.
Print two wide square objects, one in normal orientation, and one at 45 degrees.
Inspect the object to see which axes the artifacts appear most prominent in.
(components in each section are in order of likelihood)
- Artifacts are most prominent in in A:
- Bearings in A belt path
- A motor pulley
- A belt (rare)
- A motor (rare)
- Artifacts are most prominent in in B:
- Bearings in B belt path
- B motor pulley
- B belt (rare)
- B motor (rare)
- Artifacts are most prominent in in X:
- XY joint idlers
- X linear rails(s)
- Artifacts are most prominent in in Y:
- Y linear rails
- Artifacts are most prominent in in A/B/X, but not Y:
- XY joint idlers
- X linear rail(s)
- Artifacts are most prominent in in A/B/Y, but not X:
- Y linear rails
- Artifacts are equally prominent in all directions:
- A and B motor pulleys
- X and Y linear rails
- A and B belts (rare)
- A and B motors (rare)
You have two options:
- Pass variables to
PRINT_START
(allows the most control, but is more complex)- See the "Passing Variables to PRINT_START" section here.
- Force g-code ordering (only allows changing the g-code order, but is easy to set up)
- See the "Controlling When Temperature G-codes Are Sent Without Passing Variables" section here.
- Some amount of this is unavoidable, but there are some things that may help:
- Use single top perimeters (SuperSlicer). This simply makes these infill areas a bit larger.
- Try reducing your pressure advance smooth time (I use 0.02)
- Try reducing top infill speeds and accelerations.