Sunday, January 28, 2018

The Mother of All Print Cooling Fans

I started trying to build a large scale chocolate 3D printer a couple years ago.  That's turned into one of those projects that gets put on a back shelf, but part of it has been making my mind itch for a while, so I decided to conduct some experiments.

The specific thing I am referring to is the idea of using a remote cooling fan for a 3D printer.  The idea is to attach a nozzle to the extruder carriage with some sort of hose transporting the air to it, instead of the more common technique of mounting fan(s) and duct(s) on the carriage.

Why would anyone want to do this?  Hmmm.  It may present less moving mass on the extruder carriage because it only moves the nozzle and the end of the hose around instead of lugging the fan(s) and ducts, it doesn't require any wiring to the extruder carriage, it may deliver more air with the right blower, it may allow a more compact extruder carriage design, and finally, it may be more reliable.  I realize that each of these is a pretty weak argument in favor of remote cooling, but taken together they may add up to a meaningful improvement.

There are several problems with print cooling that make designing print cooling systems a little difficult.  First, how much air flow is enough?  Then how do you get that air flow?  What shape and size of nozzle/duct will deliver sufficient air flow from the chosen source?  How does the shape of the print affect the air flow?  What are the relevant specs on the fan I have?

There are so many variables to juggle at once, and actually calculating or simulating the result so difficult, it ends up being a lot easier to simply experiment until you find something that works (or ask others which of the thousands of duct/nozzle designs that litter thingiverse actually work).

Here's an illustration of the difficulty in predicting how air flow from a ducted fan works.  I took a 120mm 117VAC powered fan and attached a simple duct/nozzle to it:

When I posted that on reddit, a few of people accused me of trickery, so I made another video:

Some folks are skeptical, so here's another video from Mark Rehorst on Vimeo.

Those videos and my suggestion that people test their print cooling fans to see if there's any air actually coming out of them generated so much vitriol and animosity that I decided it was time to delete my reddit account.

The point of the videos is not that I designed a bad duct.  The point is that predicting what a compressible fluid like air will do when you try to move it through a duct and out a nozzle is not intuitive.  You can design the most aesthetically pleasing duct and nozzle in the world, but ordinary mortals can't be sure that air is going to come out of it until they actually check it.  Checking it is as simple as putting your finger, a flame, a piece of string, or trying to blow a ping pong ball across a table to see if there's any air flow.  Once you've established that there is air flow, you can try printing to see if there's enough air flow and if it's going in the right direction.

In a 3D printer there are several things to consider.  The controllers and firmware are able to provide PWM outputs to control fan speed from zero to the fan's rated speed.  You have DC power supplies, typically 12 or 24V, and cost is always a factor.  The ideal print cooler will work with the existing power supply, has a PWM speed control input (or can be switched on and off with varying duty cycle for the same effect), and doesn't cost too much.

The major sources of air are axial and radial fans and pumps/compressors.  Most of the print coolers on Thingiverse and Youmagine use axial fans like the type in the video, only smaller, because they are readily available, small, light weight, cheap, and can be powered by the power supply and the control signals from the controller board in a printer.  Some are using radial (squirrel cage) blowers instead, and I "designed" one of those for UMMD, and it seems to work fine.

UMMD's print cooling fan that uses a small squirrel cage blower.  The bottom of the ring has several holes that direct the air flow down onto the print.

The other side of the blower showing the air intake.  This one has a 24V brushless DC motor and ball bearings.

A few people are using things like aquarium air pumps for remote print cooling.  Pumps can push air against pressure through a tube.  The problem with aquarium air pumps is that they tend to be noisy and somewhat limited in the amount of air they move unless you get a big one, and then the cost and noise level go up.  The most common pumps vibrate a bellows using AC power, and others have pistons, usually with DC motors.  The air flow of the AC powered units is either on or off.  The DC powered pumps can be PWM'ed to control the air flow.

There is another source of air flow through tubes- it is a highly specialized blower that is essentially a centrifugal pump that is designed to move air instead of water.  Such blowers are commonly used in CPAP machines where they raise the pressure in the user's oropharynx to prevent the soft tissues from closing up the airway.  Unlike squirrel cage blowers, the air doesn't pass through the impeller.

Back when I was working on the chocolate printer, I needed a way to deliver a lot of air to cool the chocolate as it came out of the extruder nozzle, just like we do in FDM 3D printers.  I picked up a CPAP blower from a local American Science and Surplus store for $8 and then had to figure out how to drive it.  CPAP blowers, CPU cooling fans, typically use 3 phase brushless DC (BLDC) motors for long life and high reliability.

RC hobbyists typically use 3 phase BLDC motors in electric cars, helicopters and airplanes, so you can use an electronic speed control (an ESC, which is just a 3 phase motor driver) and servo tester to drive almost any 3 phase BLDC motor.  So I got a 25A ESC and a servo tester for about $13 from Hobbyking and hooked it all up.

Blower test video from Mark Rehorst on Vimeo.

Obviously, these things can move a LOT of air, certainly more than needed to cool a print.  But there's a problem.  The ESC and servo tester don't have a PWM input, and the motor won't start turning when you apply power- that's a safety feature to prevent a helicopter blade from chopping you to pieces when you connect a battery to the electronics.

I did some searching and found a different driver on ebay for $13 shipped from Hong Kong.  This driver is rated for 5-36V operation, up to 350W.

$13 BLDC driver purchased via ebay.  This is the whole data sheet!  It came with a main cable to connect the motor and power and a pot to act as a speed control in case you don't use the PWM input.
That black blower I tested used a lot of power, so when someone left a DeVilbiss CPAP machine on the hack rack at the makerspace, I grabbed it and pulled the blower from it.

The bottom if the DeVilbiss CPAP blower.  The motor is a 33ZW3Y36-12240 made by OEM Solutions.  The closest data sheet I can find indicates it is a 12V motor rated for 25W, 22krpm, and peak current of >8A.

The impeller side of the motor with the air intake at the center.  Notice the shape of the ribs on the impeller- if you turn it the right way (CCW) it moves a lot of air quietly, if you turn it the other way if doesn't move much air and makes a lot more noise.  Notice the rat-bites in the impeller disk near the outlet.  Those are there to balance the disk for smooth operation at high speeds.

Side view- the impeller is very thin.  Air comes in at the center (left) of the impeller and gets flung outward.  The shape of the housing steers that air down into the chamber and out the exit port, presumably cooling the motor in the process.

I hooked up the motor, driver, and 12V power supply and made a test video:

CPAP blower test from Mark Rehorst on Vimeo.

CPAP blower test with hose from Mark Rehorst on Vimeo.

In the second video the air inlet is down against the table.  It moves a lot more air when it's open, and actually runs quieter.  In actual print cooling use, it will be running at much lower average current and is almost silent.

I designed and printed a nozzle to accept the end of the hose and fit on UMMD and tested it with the 12V supply.  It moved a lot of air through the nozzle, so I hooked it all up to the printer with the speed control pot attached to the driver board so it could be used to limit the maximum speed of the blower on-the-fly and connected the driver power input to one of the MOSFETs on the SmoothieBoard controller.  It is PWMing the power input instead of connecting the fan to 12V and using the PWM input on the driver, which is exactly how it drives the squirrel cage blower.

Test setup for CPAP blower as remote print cooling fan.  The 12V power input to the blower's driver is connected to one of the MOSFETs on the SmoothieBoard controller.  The 18 mm OD CPAP hose was used to transport the air to the nozzle on the extruder carriage.  The hose is very light weight and very flexible.

This is how the air hose was routed to the extruder carriage for the tests.  It will be arranged a little differently for final installation, if I decide to keep it in the printer.

This is the nozzle and air hose attachment on the extruder carriage.  The nozzle surrounds the heater block and directs most of the air downward.  My extruder carriage design is almost perfect for this sort of thing.  Sometimes you just get lucky.

The bottom side of the poorly printed nozzle showing the 12 air holes that blow the print cooling air mostly down onto the print.

I ran a few test prints and it works well.  The blower is so quiet that the other sounds the printer makes completely drown it out.  No, it isn't running at anywhere near ping pong ball levitating speed.

First test print with CPAP blower for print cooling from Mark Rehorst on Vimeo.

First test print with CPAP blower for print cooling, continued. from Mark Rehorst on Vimeo.

Test print running.  15% rectilinear infill.  Each layer of the infill bridges over the previous layer.

Closer view of the infill.

One of the bridges on the test print- the bottom is a little saggy, but I'm still trying to tune up the volcano heater with 0.8 mm nozzle.  As you can see the rest of the print is pretty hairy.  The fix will be a combo of temperature and retraction tuning.  The volcano heater block with large diameter nozzle is a tricky thing to get working well.  Maybe I'll do a blog post on it when I get it figured out.

A very hairy test print, but you can see that the points of the cone didn't turn into blobs as they would if the print cooler wasn't working.
If you want to try something like this yourself, the hardest part to find is the CPAP blower.  Fortunately (?), a lot of people stop using their CPAP machines because they can't adjust to sleeping with the mask.  That means you probably have an obese uncle with a slightly used CPAP machine under his bed or in a box in the garage somewhere.  Start asking!

Otherwise, you can buy the blowers directly from China in single units for $25 or so.  If you spend $35 you can even get one with a driver board.

I have a few other modifications to the printer planned, including reworking the electronics layout and wiring to make it all look a lot better, redesign the extruder carriage to center the extruder nozzle,  make extruders easily swappable (between volcano and regular heater blocks with smaller nozzles) and finally come up with a good way to mount the blower and its driver with the rest of the electronics on top of the printer.

So after all of this, does the CPAP blower or remote cooling in general, really offer any improvement over simply mounting a small blower and duct/nozzle on the extruder carriage?  Hmmmmm.  Ask me again after I get the hot end settings straightened out.


  1. Awesome work. Can you post the STL file for the mount you used at the end where the hose connects?

  2. This comment has been removed by the author.

  3. Sorry for the late response. The nozzle I used was a bad design that printed just well enough to run the tests. I'll be redesigning it soon and will post a link to DL the design here.


Leave comments or a questions here and I'll try to post a response as soon as I can, if I can figure out how to get it working...