Loading

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

Summary

This is the single-extrusion alternative to my dual duct. I only do a dual extrusion about 1 in 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 eliminates 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.

This duct has not just been 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.)
 

Printing
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.
 

Installing
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.
 

Using
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. You would get very poor layer adhesion in the lower part of your print, and it will fall apart. Fast-printed parts like infill will even detach already during printing. To avoid this, you must lower fan speed in a specific manner. The only practical way to do this, is to install a PWM controller of some kind in between the printer motherboard and the cooling fan. If you cannot control fan speed, this duct is almost unusable. Unfortunately fan speed cannot be controlled on an unmodified FFCP. I find this by far the largest shortcoming of this printer, blame Flashforge.

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).

Your software might make it seem as if you can vary the speed of the fan, but this is a lie. The stock FFCP and clones cannot control fan speed, it can only toggle between 0 and 100%, hence ramping up the fan won't be possible unless you make modifications. You could act as a human PWM controller by manually toggling the fan on and off using the LCD menu to gradually speed it up, but this is extremely cumbersome.

There are some alternative workarounds you could try, but being able to control fan speed is by far the best solution. It is also essential to get 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, I have noticed I need much less cooling after installing an all-metal hot-end with hardened steel nozzle, being able to throttle the fan is essential in this case.

The best solution at the moment is therefore a hardware PWM controller. Here is an example with some instructions how to install one. It isn't that complicated, and you don't need to make holes in your printer. You can use an analog controller like the one shown there, or a microcontroller like an Arduino with PWM capable output. A microcontroller could automate some of the control, like the gradual speed-up.

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 until someone finally implements that feature.

Possible workarounds that do not require a PWM controller
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.

Or, 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 drop significantly, there will be a serious 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 12 mm of the print, because that's the region where the ‘bounce’ effect remains significant.

Isn't there an automated way to throttle the fan like this?
Unfortunately, not that I know of. Having to manually turn the PWM controller knob is indeed annoying, especially on big prints. The Cura slicer program does offer the required gradual ramp-up feature, and it could be easily added with a simple post-processing script for other slicers. As explained above however, the printer as-is has no way to vary fan speed. The fan is connected to the ‘EXTRA’ output on the MightyBoard, which has no PWM capabilities.

When looking at the optional PWM emulation in Sailfish, it seems it could be extended to also respond to speed arguments in X3G files. This would be ideal, because then we could control the fan from within G-code as on many other printers. I am however not aware of a Sailfish build with this feature. If someone does, I would like to hear about it! For this to work, the GPX conversion program that turns G-code in to X3G files, would also need to be updated, because it currently removes speed arguments.

An alternative would be to use an Arduino as PWM controller, and send instructions to this microcontroller from within the G-code, through some serial connection. This would offer the best of two worlds: automatic control with possibility for manual override without interfering with the actual print. I have been looking for ways to send data to a serial port from within the G-code, I haven't found any solution however…
 

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:

FlashForge

Printer:

Creator Pro

Rafts:

No

Supports:

No

Resolution:

0.2 mm

Infill:

100%


Notes:

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.

Post-Printing

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?

No.

Reasons:

  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.)

Updates

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

Quickly Scale, Mirror or Cut your 3D Models

App Info Launch App

3D Print a wide range of designs with Treatstock. Easy to use tools to get the perfect result. The global 3D printing network that connects you with high-quality and fast working print services nea...

App Info Launch App

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.

Hello,

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.

Cheers!

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.

Top