Maximizing printer output for production of PPE in response the COVID-19 crisis¶
The default settings for most slicers are optimized for finished results with a 0.40mm nozzle. Your hotend can push a lot more filament with a larger nozzle.
These notes are intended to maximize printer output for production of Personal Protective Equipment (PPE) in response to the ongoing COVID-19 crisis. These settings are meant to maximize output with little regard for finish, but an emphasis on part strength and reducing print times using consumer-class Fused Filament Fabrication (FFF) 3D printers.
I’m a big believer in openly sharing and disseminating information. Until recently, I have been participating in the MA group of the Masks for Docs PPE printing effort. As need for protective shields has dropped off, I was looking forward to participating in the announced shift to printing respirators. Unfortunately, the group leadership has elected to pull an Animal Farm move and is refusing to share information on the upcoming design with other participants, moving to a closed source and need-to-know approach. The intent seems to be to present the design as fait accompli with no outside input or consideration of individual printing challenges or concerns. As such, I am unable to produce any documentation on how to prepare for or print these designs. I have withdrawn from the MA group but can still be reached on the MFD Slack channel for the time being. I will continue to focus on other prints here and encourage others to share information openly. If your group starts focusing on vanity projects, move on.
I’m printing with 2 3D printers:
Prusa i3 Mk3
Artillery/Evnovo Sidewinder X1
If you just want to get started with sample profiles for PrusaSlicer, these are the current profiles I am using:
Prusa i3 Mk3 with 0.6mm nozzle printing PETG3MF project file
Prusa i3 Mk3 with 0.4mm nozzle printing PLA3MF project file
Artillery Sidewinder X1 with 1.0mm nozzle printing PETG3MF project file
Each of these profiles is described in detail below.
These notes are based on my experiences with the Prusa i3 Mk3 and Artillery/Evnovo Sidewinder X1 printers. If you are using a different printer, please verify the hardware details are same. These pages may be a bit rough as I revise them and add new material. Please check back regularly for updates.
Optimizing print times¶
The settings for PrusaSlicer and most other slicers have been tuned to produce good looking prints with the most common 0.40mm nozzle size. Print speeds and other settings are focused on smooth finish, lack of stringing, surface blemishes and overall appearance. In most cases, the full capabilities of the printer – particularly the hotend – are barely pushed. When trying to improve print times for maximum production of PPE, we are working under different assumptions:
Print strength is important.
Print finish quality only matters as it relates to utility. Parts don’t need to be pretty, but should be free of surface irregularities that can interfere with disinfection and cause wearer discomfort.
Most PPE does not have large interior spaces. Infill is generally minimal or non-existent.
Most PPE prints consist primarily of perimeter (wall) surfaces, whether frame pieces or thin protective shields and visors.
By focusing on these print characteristics, we can significantly improve print times.
About “printing faster”¶
My first instinct when trying to reduce print times was to “print faster”. I spent time increasing speeds from the front knob of my printer and endlessly tweaking individual speed settings in my slicer. It finally dawned on me that this is a waste of time.
The printer hardware puts limits on speeds. Blithely spinning the knob to “300%” looks good, and indeed does increase speeds (feedrate), but not consistently or reliably, nor as much as that happy number implies. I might get a perfectly good “faster” first layer, only to have the print fail mysteriously at higher, more complex layers.
Slicer settings are theoretical in most cases. In reality, physics put limits on how quickly the printer mechanics can move and change direction. We want to make sure your slicer is set up to reflect our actual hardware and filament.
Every printer has a limit on how much plastic can be melted and processed by the hotend. While settings may allow me to exceed this limit, I’ll start to get under extrusion, and extruder skips and jams if I push too hard.
With current consumer-grade FFF 3D printing, speed is an illusion. Moving the nozzle faster only part of what goes into to effectively reducing print times. Extrusion width and layer height also have to be factored in. Moving plastic, not the nozzle, completes prints faster.
The hotend is the major limiting factor on most printers. The hotend’s capacity is referred to as the Maximum volumetric rate, expressed in cubic millimeters per second (mm3/s). Only a few slicers provide settings to directly specify this limit. In PrusaSlicer, it is referred to as Maximum volumetric speed (MVS). If you’re using a slicer without this setting, you’ll have to specify speeds and settings based on your worst-case MVS, significantly complicating the process of optimizing print times.
On most printers, the hotend is capable of melting and pushing more filament faster using larger nozzles with lower back-pressure. For example, the default profiles in PrusaSlicer use a Maximum volumetric speed of between 8 and 15 mm3/s for PETG. This assumes we’re using a 0.40mm nozzle and are concerned about finish and infill quality. With a larger nozzle, I am able to increase this to 32 mm3/s or higher, greatly decreasing print times while maintaining part strength. This is very apparent when printing the NIH-approved DtM v4.0 protective shield frame.
Regardless of what slicer you use, you should identify the effective MVS for your hardware. Nozzle size and filament type have a huge impact on MVS. I have detailed notes on how you can quickly determine your MVS setting. I recommend you do this before doing too much tweaking to save wasting valuable time later. Please refer to the notes on the linked page for more detail.
Once you’ve identified just how much filament your hotend can push given your specific printer, nozzle and settings, you can begin optimizing print times for a specific task. I’ve summarized my notes for printing the NIH-approved DtM v4.0 protective shield frame below.
Prusa i3 Mk3 with a 0.60mm nozzle printing PETG¶
I’m using an original Prusa i3 Mk3 (pre-Mk3s) upgraded with a nickel-coated copper heater block, titanium heatbreak and E3D Nozzle-X/3D Solex 0.6mm nozzle. My MVS may be a bit higher than with a stock aluminum heater block. For best results, calculate the MVS appropriate for your hardware and filament and substitute that value below.
Here’s the target print. I’m printing 2 of the DtM 4.x frames on a Mk3 bed.
I’m using customized print, filament and printer profiles (detailed below).
I have increased infill to 50%. This doesn’t really change much with these particular prints, but I want strong parts.
Each frame requires approximately 52g of filament. These are not fast & light frames. Smaller frames such as the Verkstand style will use considerably less filament but can still benefit from many of these settings.
A bed of 2 frames takes just under 2 hours to print. The PrusaSlicer estimate tends to be a bit optimistic, showing 1h34m.
0.4mm layer heights are practical for this print, even with the sloping front visor. It is important that you couple this with a wide enough perimeter extrusion width to support the heavy extrusions (see below).
4 perimeters for PPE prints. This uses a bit more filament, but produces a strong part, and I find that perimeters print more quickly than infill.
Z-seam position set to “nearest” to align the seam position with corners.
50% infill for near-solid parts. There is very little infill with these parts.
0 skirt and brim to maximize available print area. This is important for getting 2 of the DtM frames to fit.
Most speeds set to 70mm/s. This can likely be increased but this has worked well. At 80-100mm/s, inter-layer adhesion is poor. This may vary by filament.
Travel speed is set to 200mm/s. On older Prusa presets, this was the default. Higher travel speeds help with stringing.
First layer speed is 20mm/s for good adhesion to avoid warping.
Acceleration for perimeters is 800mm/s^2 to avoid artifacts.
Default acceleration is 4000mm/s^2. This is an intentionally high value for all moves not explicitly set elsewhere (non-print moves). 1500 is a more realistic value, but I’ve gone for “as fast as possible” with this setting.
Max print speed is set to 200mm/s for any features not set above.
Max volumetric speed is set to 0. The equivalent setting will be used in the filament profile to set an upper limit.
Perimeter and external perimeter extrusion widths are set to 0.815mm to print the inner band (1.63mm thick) in 2 passes smoothly. E3D nozzles have a collar around the nozzle opening that allows printing at close to 2X the nozzle opening size, although with some degradation in finish. For our purposes, this is acceptable.
All other extrusion widths are set to 0 to allow PrusaSlicer to calculate reasonable values based on the nozzle size.
Infill/perimeter overlap is set to 25% to ensure good closing of walls against infill.
These settings are not particularly important for these prints, but accurate measurements will make the slicing results more closely match your actual filament, reducing over extrusion and stringing. You can read more about these settings in my filament calibration notes.
Filament diameter is set to the measured average of the actual filament at 3 locations.
The extruder multiplier is set to a measured value for the specific filament. If you’re in a hurry and are experiencing overextrusion or excessive stringing, reducing this value 1-5% may help.
Extruder temps are set to 245C for PETG. PETG flows very smoothly at temperatures above 240C although this will increase stringing. For our purposes, a bit of stringing is acceptable. Adjust as needed for your specific filament.
Bed temps are set to 90C, higher than normal, but these prints are susceptible to warping, particularly when we’re mass producing prints with little time for bed maintenance.
PETG is normally printed with little or no cooling in order to maximize inter-layer adhesion. I find the DtM frame visors require a bit of cooling to reduce sagging of the rear visor. You can view the effect of these settings by selecting the Fan speed viewing options in the slicer preview after slicing.
Fan settings will be used based on the print time for each layer.
Auto cooling will set the cooling fan speed based on layer print times.
When a layer prints faster than the layer print time (see below).
The fan will be enabled for any layer that will complete in less than 60 seconds. Fan speed will be set to a value between the minimum (30%) and maximum (50%) settings. Note that you need to identify an appropriate value for each part in the print, then multiply by the number of instances of that part. In this case, 30 seconds is a good value to enable cooling at the visor, and I am printing 2 visors, so enter 60 seconds here.
We are using the filament settings to determine the Maximum volumetric speed that will be used in our prints. This sets an upper limit to the amount of filament that will be pushed through the hotend, acting as a throttle on speeds based on our extrusion width and layer height settings. For more information, refer to my notes on calculating volumetric extrusion rate.
The Maximum volumetric rate is set to 28 mm3/s, a good value for this filament and nozzle.
I have based my settings for the Prusa i3 Mk3 largely based on older Prusa profiles which emphasized speed over print quality. These speeds produce good, robust printed parts for PPE.
Feedrates have been set to maximums I’ve been able to locate for the Mk3.
Acceleration values are set to maximums.
Jerk limits have been set to upper limits that still preserve corner quality.
I spent a lot of time tuning my settings to match my actual hardware and filament. These settings work well, but you may want to leave these at defaults if your experience problems with stringing.
The nozzle diameter has been set to match the mounted nozzle (0.60mm).
Layer height range has been set between 25% and 80% of nozzle size. This range gives good results if using adaptive layer height adjustments, although I’m not doing so in this situation.
Retraction length has been set to 0.3mm based on calibrated filament extrusion rates. If unsure, leave at 0.8mm default.
Lift Z has been set to 0.2mm based on calibrated filament extrusion values. If unsure, leave at 0.6mm default.
Retraction speed has been increased to 50mm/s. If find this value is effective at reducing stringing.
Deretraction speed has been decreased to 25mm/s. I find this reduces extruder heat and jams.
Retractions on layer change have kept at the default enabled, but Wipe while retracting has been disabled based on calibrated filament extrusion values. If unsure, leave at the default enabled.
Using these settings, I am able to print 2 of the NIH v4.0 shield frame in just under 2 hours. The slicer estimate is off by about 25 minutes.
With the revised settings, very little stringing remains.
The end product is solid and cleans up with a quick pass with a heat gun.
The inner shield prints with no drooping or stringing.
0.40mm nozzle settings¶
For printing PLA with a 0.40mm nozzle, I am using the following:
A Prusa i3 Mk3 printer
A 0.40mm nozzle
3D Solutech PLA
215C nozzle temperature
85C bed temperature
50-70% cooling on layers printed below 45 seconds
I have installed a nickel-coated copper heater block and E3D Nozzle-X/3D Solex 0.6mm nozzle, so my MVS may be a bit higher than with a stock aluminum heater block.
Under Print Settings, make the following changes to defaults:
Change layer height to 0.32mm.
Change perimeter count to 4.
Change most speeds to 100mm/s.
Change external perimeter speeds to 60mm/s (to reduce delamination on overhang surfaces).
Change Max volumetric speed to 0 (allow filament profile to set).
Change perimeter extrusion widths to 0.65mm.
Save these settings off as a custom profile with a new name.
Using these settings, I am able to print 2 of the NIH v3.1 shield frame in roughly 2h30m. Minor stringing remains that can easily be cleaned off with a heat gun. Additional tweaking can likely improve the inner headband surface.
I am mindful of the fact that these will be worn by personnel in extremely uncomfortable working conditions. After printing a batch of frames, I spend a few minutes doing some post-processing to improve fit and finish.
Run a knife edge along the inner headband surface to remove any bumps that form during printing.
Run a deburring tool along the top and bottom of the inner headband to remove any trace of sharp edges from elephant’s foot or other defects.
Cut away any strings along surfaces (largely eliminated with current settings).
Make a pass over the entire part with a heat gun to remove stringing.
The E3D V6 hotend on the Prusa i3 Mk3 printer is capable of processing filament at much higher volumetric rates than are provided in the default filament and print settings profiles. Initial testing has shown that increasing Maximum volumetric speed settings can be used to allow printing at 100mm/s speeds throughout a print without the slowdowns associated with more restrictive filament profiles settings. At linear speeds above 100mm/s, wall and top surface degrades. At 200mm/s gaps and holes are readily apparent in surfaces.
This approach can be adapted for other printers. For more details, please refer to Calibrating maximum volumetric rate for details on determining the maximum volumetric rate of your hotend with a larger nozzle.
Last updated 20200507
Contact and feedback