FlashForge Creator Pro left single extruder fan duct

by DrLex, published

FlashForge Creator Pro left single extruder fan duct by DrLex Jul 15, 2017
3 Share
Download All Files

Thing Apps Enabled

Order This Printed View All Apps


This is the single-extrusion alternative to my dual duct. I only do a dual extrusion about once every 100 prints, and I figured it is a bit pointless to have the dual duct blow air at the inactive (and usually unscrewed) nozzle all the time. It makes more sense to also direct this air at the active nozzle. By blowing air from two directions, this design reduces the ‘shadow’ problem of both the stock duct and my dual duct, and cools all sides more or less equally. If you're only going to print with one extruder, this duct will give you the best quality.
Of course this does not make the dual duct obsolete: you still need it to get proper cooling on dual extrusions.

Mind that the shadow problem is not completely eliminated. Overhangs at the rear and right will still be cooled less effectively because the air cannot reach their undersides. One way to work around this, is to print extra structures behind such overhangs, to reflect the airflow back towards them. In most cases this will be unnecessary however, but keep it in mind for those prints that need to be really perfect.

This duct has not been merely designed in a wet-finger guessing way. It has been run through several dozens of iterations, the last of which were validated with computer simulations. See the ‘How I Designed This’ section for more details.

This duct unfortunately is not plug-and-play. You must read the ‘Using’ section. If you don't, your prints will fail, you have been warned.

The photos show a comparison of my 55° mushroom test on a PLA print between this duct, the v6 dual duct, and the stock duct. The result from the stock duct looks more decent than what I expected while I saw it being printed: it was curling up so badly at times that I feared I would need to abort the print. Somehow the upper layers managed to push down the curls again, but it still looks ugly. Even despite the fact that I did this test with the first version of the new duct which was not anywhere as good as the latest version, the result shows almost no deformations and it has a near-flat top surface. (Note: you won't be able to get this kind of result on the 55° test with the stock nozzles, especially not if they have been worn out. This was printed with a more pointy Micro Swiss hardened steel nozzle, which allows to print steeper overhangs than a nozzle with a flat underside.)

There are two models. The ‘x1’ model has the exhausts 1 mm lower than the regular model. If you aligned your nozzles with this tool, you need the regular version. If you installed Micro Swiss all-metal hotends and followed their installation instructions to the letter, then your nozzles will be 1 mm lower and you need the ‘x1’ model. See the section ‘Checking the height of your nozzle’ below for more details. Or, you can just print both models and see which one works best for you.

See the Print Settings section for detailed instructions on printing.

Be sure to read the Post-Printing section first.

A thin strip of rubber (like a piece of bicycle tire) under the little mounting tab can help to avoid that the duct vibrates and rattles.

If you have an older printer and yet have to install the blower fan, you may need to print the fan mounting bracket first.

First of all, if you're going to do a long print with the fan disabled entirely, remove the duct to avoid that it will deform, especially if you're printing at very high temperatures, e.g. polycarbonate. Even if you applied thermal insulation, you should still remove the duct if unused during long prints.

Next, something very important: don't just print and try to use this duct, it unfortunately is not that simple. This duct is almost unusable if you cannot control fan speed. You would get very poor layer adhesion in the lower part of your print, and fast-printed parts like infill may detach already during printing. In other words, your print will fall apart. To avoid this, you must reduce fan speed in a specific manner. Unfortunately fan speed cannot be controlled on an unmodified FFCP, which I find the largest shortcoming of this printer by far. Modifications are required, below I explain how you can get variable fan speed after all.

Due to effects described below (see ‘Background info’ if you're interested), you must:

  • only enable the fan after the second or third layer,
  • start out with the fan running at no more than 20% speed,
  • gradually increase fan speed over the course of the first 12 mm of the print until the desired maximum (in many cases, 50% is more than enough).

Being able to control fan speed is the only practical way to get optimal cooling with this duct (actually, with any duct for that matter). Variable speed is also essential for getting good results with filaments like PETG, which require a tiny bit of cooling for best results. You may also be surprised to hear that I always enable the fan on ABS prints, albeit at a low speed, which does improve quality without ruining layer adhesion. Also, after installing an all-metal hot-end with hardened steel nozzle, I noticed I need much less cooling, which made it essential to be able to throttle the fan.

How to obtain variable fan speed
Your software might make it seem as if you can vary the speed of the fan, but this is a lie. All printers that use the MightyBoard design like the FFCP and clones, cannot control fan speed without modifications. The MightyBoard can only toggle its EXTRA output between off and on, hence ramping up the fan won't be possible.

It is possible to install a custom build of the Sailfish firmware that has a software PWM implementation. However, the speed cannot be changed during a print, and it does not respond to speed arguments in the G-code, making it mostly useless, so forget about it. You wouldn't want to recompile the firmware anyway. The only practical solutions are hardware-based.

The simplest way to obtain (manual) fan speed control, is to install a hardware PWM controller in between the printer motherboard and the cooling fan. This isn't complicated, and the only permanent modification you need to make to your printer, is to drill two tiny holes. You can use an analog controller like the one shown there, or a microcontroller like an Arduino with PWM capable output, with a 24V MOSFET to drive the fan. This solution is cumbersome because you will need to babysit every print at least during its first few layers, to adjust the PWM knob.

A much more advanced way to obtain fully automatic fan speed control, is to have the printer send fan speed commands to a Raspberry Pi, which does PWM through a MOSFET connected to one of its GPIO pins. I spent quite a bit of effort on this solution and it works very reliably, the only drawback is a bit of extra blip sounds during prints. Installing it is more work than mounting a single circuit board, but once you've got it running, you will never want to go back.

Possible workarounds that do not require a PWM controller
I haven't really tested any of these, but they are most certainly inferior compared to a PWM-based solution. Try at your own risk!

Simplest one is to just stick with the dual duct, if you find it too much hassle to get the best out of this single-extruder duct. You will of course be stuck with the shadow problem too.

If you print much hotter, slowly, and in thin layers, you might get good results even if you cannot throttle the fan.

To counteract the typical extruder temperature undershoot when the fan activates at lower layers, you could boost extruder temperature by 10°C, about 10 seconds before the fan will engage. I haven't tested whether this is effective, but in theory it should ensure the extruder is in its heating regime when the blast of cold air hits it, and the undershoot should be reduced or eliminated. You may then gradually reduce extruder temperature again until the print is about 12 mm tall, but you should keep the temperature higher than when printing without fan. This is obviously cumbersome, because you will either have to manually fiddle with the LCD menu to do this, or write a post-processing script to insert extra M104 commands in your G-code at the right places.

You may also try to make a hole in the side of the duct to lower the exhaust pressure. You could use tape to vary the size of this hole, to vary airflow in a clumsy manner. Of course, this doesn't avoid the undershoot problem, and trying to vary the airflow during a print will be challenging to say the least.

Background info: why is throttling the fan necessary?
There are two things at play here. First, the PID controller implementation in the Sailfish firmware is very bad at reacting to temperature drops. The reaction is way too slow, therefore if something causes the extruder temperature to suddenly drop, there will be a severe temperature undershoot, and part of the print will be printed too cold; layer adhesion will be compromised.

Second, during the first layers of the print, both the extruder and the duct are very close to the bed. This causes the air to ‘bounce’, forcing it between the bed and heater block, greatly increasing overall airflow. The air hitting the heater block causes the extruder to lose heat, which triggers the PID undershoot problem. Moreover, even if the undershoot would not occur, the material would still get cooled much harder than expected. All ducts suffer from this problem, which is why many poorly designed ducts (like the stock duct) work decently during the lower part of the print, and do nearly nothing higher up. My duct is designed to work well at all times, which unfortunately causes it to work too well during the lower layers…

Therefore, the fan must be started slowly during the lower layers to avoid the undershoot. Its speed must also be kept lower than usual during approximately the lower 10 mm of the print, because that's the region where the ‘bounce’ effect remains significant.

Final Notes
If you want to be notified of possible updates on this design, use the ‘Watch’ button.

Quite a bit of work went into designing this duct. If you appreciate it, remember that there is a ‘tip designer’ button :)

Print Settings

Printer Brand:








0.2 mm




As with the dual duct, or any duct whatsoever, you must print this in a heat-resistant material because it is very close to the heater block, moreover this duct has even more material near the heated bed. Do not print it in PLA. I recommend ABS, although even that is not sufficiently heat-resistant on its own during ABS or PETG prints. If you are able to print in polycarbonate, it is probably the best option if you often print with the bed above 100°C or the extruders at 230°C or more. However, an ABS printed duct will do fine if you add extra insulation (see post-printing section).

Same comments as for the dual duct: do not enable supports. Supports will block the inner passages, and the model is designed such that it will print well without supports. I recommend enabling cooling while printing the top layer of the main vent and the upper tip of the left exhaust (for this purpose the stock duct should suffice).
Infill doesn't matter much if your slicer is configured to always print small areas solid. If unsure, set infill to 100% for the entire print.


Preparing the duct for mounting

You should clear the little hole next to the mounting screw hole with a 2 mm drill bit. Otherwise you'll probably have a hard time mounting the duct onto the carriage.

Protecting the duct against heat

Even if you printed the duct in ABS, it still is very close to the heater block, and the exhausts will deform if the duct is exposed to high temperatures for more than just a few minutes. If the exhausts deform, the duct will no longer work optimally. You should therefore consider applying some thermal insulation to the exhausts.
If you're only going to print PLA or other filaments that do not require extruder temperatures above 210°C, and if you're going to enable the fan all the time, you might be able to use the duct uninsulated because it will keep itself cooled. However, you still risk damaging the duct when printing something large, because the fan will only be enabled after the first few layers (at least, it should). If you're going to print ABS or PETG, you definitely must insulate the duct.

As shown in the photos, I use some NASA-style insulation that consists of a layer of self-adhesive aluminium foil, with a layer of kapton tape on top. To be really sure, I applied this twice at the tips of the exhausts. It is time-consuming to apply this, but it is well worth it because it has proven to be extremely effective. However, if you have only one of those materials, I believe a few layers of just aluminium or just kapton will also do the trick.

Lunar lander inspired insulation!

How I Designed This

SimScale / OpenFOAM

I considered simulating the duct in OpenFOAM, but its learning curve is a bit too steep for something I will only be using once or twice. Therefore I first tried the same trial-and-error methods as for the dual duct. These however proved ineffective: the two interacting airflows made the windmill unusable; blowing onto a water surface or a layer of dry sand, was also pointless because these methods constrain the test to a 2D surface. (By the way, be extremely careful if you would ever cover the glass bed in your printer with sand. Due to static charge build-up, the sand is likely to jump upwards at the moment you remove the glass plate. It is a very cool physics demonstration, but getting the sand out of all the nooks and crannies of your printer is not very cool.)

In the end I did simulate the duct, using SimScale which offers a web interface on top of OpenFOAM for CFD simulations, so this eliminates most of the learning curve. Moreover, it is entirely free for public community projects (with a simulation time budget of 3000 hours). You can find the public project here.
I ended up performing some 15 different simulations. I couldn't imagine printing and manually testing all those prototypes, so the simulations proved invaluable. I did have some problems getting the STL model to work, but in the end I found out how to properly do it, and I can conclude that SimScale is really great.

Airflow velocity around the tip of the nozzle. It is impossible to get a perfectly uniform flow field with only two exhausts, but this is about the best I could get within the constraints of this design.

Flow in the exhausts. Getting this well-balanced was not trivial.

Flow cross-section of the right exhaust. For the left exhaust, see the Thing photo gallery.

Checking the height of your nozzle

If you're unsure whether you need the regular or x1 model, you can verify this as follows. Bring the carriage forward so it is flush with the front edge of the print bed. Then raise the bed until it just touches the nozzle, as shown in the photo. Next, measure the distance between the bed and the bottom of the carriage. If this is close to 10 mm, you need the regular model. If it is closer to 11 mm, you need the x1 model.

Will there be a version of this duct for the right extruder?



  1. The left nozzle is closest to the fan, making it much easier to design a duct with two exhausts blowing at it. I don't see any practical way to make a similar configuration for the right nozzle, not even if the left heater block would be removed. The second exhaust would need to make a wide curve around the back, making it large, heavy, and very difficult to print.
  2. If you mostly print with one extruder and want to remove the heavy unused stepper motor to reduce ringing artifacts on single-nozzle extrusions, it is way easier to remove and reinstall the right stepper. (You do need to put something in place to trigger the X endstop.)


2017/07/26: v2

I noticed that the first version blew way too much air forward. I did most of my tests with the duct in free air, and neglected the fact that when mounted, the airflow would be inclined to get sucked against nearby structures. This did happen and it caused the heater and nozzle to struggle to maintain their temperature. This version improves upon this with a funky new exhaust design, and should also better aim its airflow in the horizontal plane.

Small update 2017/08/05: v2b
This is the same design but with a few minor changes that should make it slightly more robust, and also easier to mount with less risk of it cracking.

2017/10/21: v3

Almost a complete redesign, the result of performing CFD simulations in SimScale (OpenFOAM). The flows have been balanced and the dead zones have been eliminated. This duct is pretty much guaranteed to be very good. A nice side effect of the optimizations is that the duct is smaller and easier to mount.

More from 3D Printer Parts

view more

All Apps

Auto-magically prepare your 3D models for 3D printing. A cloud based 3D models Preparing and Healing solution for 3D Printing, MakePrintable provides features for model repairing, wall thickness...

App Info Launch App

Kiri:Moto is an integrated cloud-based slicer and tool-path generator for 3D Printing, CAM / CNC and Laser cutting. *** 3D printing mode provides model slicing and GCode output using built-in...

App Info Launch App
KiriMoto Thing App

With 3D Slash, you can edit 3d models like a stonecutter. A unique interface: as fun as a building game! The perfect tool for non-designers and children to create in 3D.

App Info Launch App

Print through a distributed network of 3D printing enthusiasts from across the US, at a fraction of the cost of the competitors. We want to change the world for the better through technology, an...

App Info Launch App

Treatstock is an online platform that offers decentralized manufacturing services such as 3D printing and CNC machining for clients all over the world. We offer free and instant access to comparati...

App Info Launch App

3D print your favourite design with NinjaPrototype, a professional 3D manufacture with consistent quality and speed.

App Info Launch App

Hey Dr. Lex, been reading up on this duct and just have some questions:

When you printed your side by side comparisons, did you have your fans running with your PWM module activated (and if so, did you follow your recommendations for fan speeds and height of build?), or stock fan settings from slicer program?

When printing in a majority of PLA, would insulation be necessary? I would imagine yes, but don't feel like buying a whole roll of Kapton tape if I wouldn't need it.

As a new owner of FFCP, I am glad there are dedicated people trying to advance the technology of this printer, so just wanted to say thanks! Even though I really need to read your stuff over 2-3x before getting it 100%.

I can't really remember whether I lowered the fan speed during those tests. I probably did, otherwise the prints with the dual duct would have been ruined. At any rate, all tests were done with identical parameters. The only difference was the duct itself (and for the stock duct, I rotated the G-code coordinates by 90°).

If you only print PLA, an ABS duct might survive without insulation. However, if you do a large print where the first layers take many minutes, and the fan is off during those layers, then the duct risks overheating and deforming. I guess if you want to be sure, you can simply try it. However, it may be less time-consuming to find a roll of adhesive aluminium foil in your local hardware store. This should suffice, you don't really need the Kapton for PLA temperatures.

Hello doc!
Do you know of a power supply i can use to power my fan that is controlled by the program code.
So i can switch the nozzle fan on after say 4 layers.
I have the flashforge creator pro.
Thank you

Normally you would just connect the fan to the EXTRA output on the motherboard, as is the case on the 2016 model, no separate power supply is needed. This output is the one that is switched on/off by M126/M127 commands in the G-code. It can deliver more than enough current to drive the fan. Be aware that it delivers 24V, so if you yet have to buy a fan, make sure it is a 24V one.
If you have yet to install the fan and wiring anyhow, make sure to connect a PWM controller in between, so you can throttle the speed, otherwise it will simply ruin your prints as explained in the description.

Thank you for your advise.
Is the EXTRA out put labeled so on the pcb?
I'll have a look through some wiring diagrams.

Yes, it is next to the ‘FAN’ output on the corner of the board.

I have managed to run my first CFD simulation of the current design of this duct in SimScale. The result looks pretty accurate and confirms that I still need to optimize the positioning and distribution of air flows. The project is of course public and can be found here.

The new v3 design is ready. I also simulated the v2 and it actually wasn't too bad, but it did have a significant dead zone at the left of the nozzle.


Is there any chance you would be willing to release the design files for this? I'd like to have a go at making some minor changes to it based on my experience thus far. What software did you use to design it? Even just a .STEP file would be great.


The new version is ready and confirmed to be good, so I added the .blend file. Mind that you should avoid making changes to the airflow path unless you know what you're doing.

This was designed in Blender, which is mesh-oriented, not volume-oriented like STEP. I'll make the file available when I'm content with the design, which is currently not the case yet.
I have noticed the airflow is uneven between the two exhausts, and the flow of the left exhaust does not end up where I want it to. I have improved the first problem, but aiming the air is far more difficult than with the dual duct, because the two flows interact. I have done some tests with sand on the build plate, but this gives a false result because it is constrained to 2D. I'm planning to use a simulator to put an end to my trial-and-error method and ever increasing pile of experimental prints.
If you really want, I can already give you the current design, but if you can wait a few more weeks, I hope to have something better.

Is there any chance that you could make this in the RIGHT Extruder version? I almost always use just the right one. You have an awesome idea there and I have been using version 5,6 as they were being released. Been using those since December. Thanks in advance if you would consider making that.

No, sorry. It is way more difficult to design something like this for the right extruder, and even if I would manage to do it, it would be large and curvy and very difficult to print. It would become slightly more feasible if the left heater block would be removed, but you wouldn't want to do that routinely. Even then, the exhaust needs to curve around the heater block, making it nearly unprintable. It would also be continuously baked by the heater and risk deforming.
Why don't you use the left extruder?

Well I use PETG only, and I have the printer set up for the right extruder for black and the left extruder for blue. I actually have 2 PowerSpec 3DPro32 Printers set up this way. They are a clone of the FlashForge Creator Pro.

Thank you anyway.