From prototype to production – (Slightly) Modify your 3D printer to make a face shield in 25 minute

During the COVID-19 emergency, fabbable face shields were one of the most replicated projects within the vast amount of solutions provided by the maker community.
The easiness of design and fabrication of this PPE make it particularly apt for the techniques at disposal in a Fab Lab, but it’s when you shift the means of production to scale up the results (from just a few to dozens of models fabricated in a day) that your lab becomes really helpful and to do so you need to hack both phisically and digitally your machines.

In this document we want to explain you how to modify your 3D printer in order to drastically speed up the production of an open source face shield in PLA and make the production continuous.
With normal settings, this print requires more than 1 hour. There are few adjustment than you can do on the slicer software, but just adopting them will not take much far and you have to compromise on certain features (such as robustness of the result).
By adopting the tricks on this page we were able to print the whole model in 25 minutes and start a 24/7 seamless production.
Keep in mind that these procedures were accomplished using a Ultimaker 2+ and Ultimaker Cura as slicer software. It’s possible to adopt them even for different printers and softwares but the results may vary.
To speed you print, you can work on 3 different fronts.

Nozzle customization

This is the most invasive procedure of the whole tutorial, in which you’re required to be extremely careful and that we suggest you to do it only if you have at disposal a spare nozzle.
Don’t do this if you only have one nozzle of you can’t dismantle the nozzle from your 3D printer.
The purpose is to widen the nozzle diameter. In this way, more material can flow from the extruder and be laid on the buildplate faster.
A standard nozzle diameter is of 0.4mm, but with a drill and an apt bit you can get a 1.0mm or 1.5mm quite easily. All you have to do is to align the bit very precisely on the nozzle hole and delicately but firmly push down. This operation is much easier and accurate if you use a lathe, otherwise also a tower drill with clamps can do the job.

Wider doesn’t always mean better. The important thing tha you have to keep in mind is that if there’s more material passing through the nozzle it means that the extruder has more filament to warm and melt in less time. You probably want to make tests with different diameters at different speeds in order to verify what is the best combination for your printer, but hardly a custom diameter wider than 1.5mm will be very reliable. We’ll get back to this topic later.
Once you’ve drilled the nozzle, it’s important to sand it. This is to prevent flaws on the exit hole which might change the shape of the extruded material from circular to something irregular (rendering your printer unreliable).
You do so either by hand using some fine-grained sandpaper (but you should be really precise and accurate) or by mounting the nozzle on a power drill and grind it over the sand paper. In this way you can assure yourself a more regular sanding over the whole nozzle tip.

Once you’ve prepared the nozzle, mount it properly over the extruder and calibrate properly the printer.

Design and slicer fixes

It’s time to setup the settings of your printing process.
Once again, consider that we’ve used Ultimaker Cura for these operations because it’s part of our standard workflow, but similar settings can be found in other softwares. Moreover, we’re operating on a face shield designed by us, so not all considerations might be applicable to other designs.
Before starting, be sure to output a gcode flavor that allows you to change certain parameters from slicer. This is essential for latest version of Ultimaker Cura, and you change so from the Manage Printers window and the Printer Settings tab. Change the gcode flavor parameter to Marlin, and you’ll be sure that the following instructions will be fully achievable.
The first and easier thing you can do is to remove supports and any brim or skirt. This is quite crucial because otherwise it will be impossible to repeat the printing process with the machine still on work.
Keep in mind that this procedure is for printing a face shield support, which has a simple shape and conveniently lays flat on the build plate. It’s not the same for any model, so this setting might critically ruin different prints.
Then it’s time to setup the parameters for our newly drilled nozzle. There parameters that requires most attention are:
  • Layer height: With a wider nozzle is safe to print layer heights up to values much higher than what would be risky do on standard gauges. For example, in our project we used a noozle with a diameter of 1.2mm, printing at a layer height of 0.35mm width of 1.25mm. This will change accordingly many other parameters of the printing profile;
  • Initial layer: to speed up the printing process but without sacrificing on quality we printed a higher initial layer, precisely at 0.6mm. Furthermore, we set it at 80% of the standard widht, in oder to maker it easier to remove;
  • Infill density: Due to the nature of the model, with thin shapes and no need for structural features, a 0% infill is fine. This will make the printer lay almost nothing but walls.
  • Bottom and Top layers: we’ve set this to 0mm. In this way, along with the 0% infill even if we’ve designed a solid, whole shape, we’re going to get only its silhouette as thick as the wall thickness parameter.
  • Spiral printing: by setting this operation mode, a job with these slicing specifications becomes faster and more straightforward (hence also reducing flaws).
  • Temperature: This is perhaps the most critical setting and one that should be tested thoroughly before considering the whole setup complete. Commonly, PLA is printed around 190-200°, but for extruding more material and more quickly we need much more heat. This is because PLA actually melts around 130° and the extra warm is necessary only the make it flow nicely on the extruder at the desired speed. The more material passes, the less it stays inside the extruder and the less heat it draws, this means that we have to keep the hot chamber of the extruder much more warm in order the keep into account the higher mm^3 passing per second on the nozzle. In our setup, a temperature of 253° was enough to have decent results, without neither clogging the extruder or getting a spaghetti-effect on the print. Different machines totally require different setups, to be checked and tested accordingly.
    Opposedly, the build plate temperature can be set as less than default, in order to remove the model more efficiently. In our case, we set it at 50°.
  • Speed: Counterintuitively, to get a nice result we set the printer speed as slower than standard PLA printing. This is because the highest volume extruded might result in a mess with too rapid movements. We set it at 25mm/s for the first layer and 45mm/s for the other layers. This is a good compromise on speed and quality of result but could be set even slower to get a better finishing.
If your printer is large enough, you can figure ways to print more models at once, but as a starter we suggest you to try with one model per print.

GCODE hacks

Last but not least, you can manually modify the gcode file resulting from the slicing process. This can be done with any text editor and reading gcode lines is only a matter of habit.
The first trick we achieved was making the extruder head pushing the finished model away from the build plate. You can achieve so by adding some finely-tuned xy movements at the end of the gcode instructions.
This is done with the G1 command, which is written in the following way:
G1 F0000 X0000 Y0000 Z0000 E0000
F is the speed of the movement. X is the distance to cover on the X axis. Y is the distance to cover on the Y axis. Z is the distance to cover on the Z axis. E is the millimeters of filament to be extruded.
You can omit the parameters you don’t neet to set.
In most printers there’s a lot of guesswork to do before getting a fine result, so it’s a good thing to test carefully these instructions with an already printed and detached model. In this way you can repeat quickly the process and calibrate it more rapidly.
Be careful to use a cold spot on the extruder as contact point, otherwise you might risk to deform the model, and that you push on point robust enough for that won’t break the model.
It’s really helpful also to end the heating the buildplate some minutes before the print ends, in order to make it cool and let the model detach more easily.
It’s a good practice to cool down the buildplate few minutes before the print is done, in order to facilitate the detachment and the automatic push of the model. You do so with the command M140, written as;
M140 S000
Where S stands for the degrees to set.
When the push is done, since it’s quite easy for the motors to lose steps in this process, use the proper commands to find again the zeros of the axis.
Once the buildplate is clean, it’s time to repeat the process. You can automate this procedure in two ways:
  • Some printers supports the gcode command M999 which will start the job from the beginning again once the command is finished. All you have to do is to write it at the end of your file.
    Pay attention that this repetition is endless! Eventually you’ll want to end the job and you have to do that manually.
  • If your printer doesn’t allow for looping instructions, you can always copy & paste the whole code and repeat for as many times as you wish. The only thing to care about is the size of the gcode file in complex jobs, otherwise it is a very straightforward operation.
Once you’ve done with these hacks, to achieve an higher level of lazyness, slightly incline you printer and put a box below it to collect the whole batch in a single place.
Please note that these are meant to help automatization of the prints, but the machine shouldn’t be left unattended, in particular if you’re running gcode written by hand or using customized parts.

We hope you enjoyed reading this tutorial. You have any question or have any suggestion to achieve similar results, please let us know at our Wikifactory FabCare forum.