This article contains general advice about how to get started with the 2016 model FlashForge Creator Pro 3D printer, as well as more advanced usage tips to improve print quality and reliability. The instructions are independent of what software you use, although some may only be applicable to PrusaSlicer (I provide a ready-to-use PrusaSlicer config bundle in the software section). Many tips are also applicable to other printers.
Around 2011, 3D printing broke through to the mainstream, partially thanks to certain patents expiring. As usual a bit of a hype emerged and less-than-well-informed journalists started claiming that traditional stores would disappear and everyone would be downloading products and printing them at home. Of course reality slowly returned and it became clear that 3D printers are not the ultimate solution to everything, yet they are useful for specific applications. I waited for the dust to settle and in 2016, I decided to buy a commercial 3D printer built with know-how accumulated over those five years. After evaluating different models, I picked the FlashForge Creator Pro due to its competitive price point and good reviews.
To convert a 3D model into a set of instructions your printer understands, you need a ‘slicer.’ As the name implies, it is a program that slices the model into layers and then derives an optimal path for the extruders to follow to deposit each layer of material. When it comes to slicers, there are many options.
When I started out with my FFCP, it came with an installer for ReplicatorG on the SD card. Although I don't believe FlashForge still distributes this program, do not use it for printing even if you have it. There are much better slicers.
FlashForge has been developing their own slicing program called FlashPrint which is pretty decent for beginner use. If you want to do more advanced things however and don't want to be locked into the FlashForge ecosystem, you'll need to upgrade to a different slicer.
A popular one is Simplify3D but it is paid software and rather pricy. Many are enthusiastic about it because it “just works” (and of course because they paid a lot for it). This means that if you want to actually learn about the intricacies of 3D printing, it may be a bad choice because the software will shield you from all the things that can go wrong, which are usually also the things you learn the most from. If you just want to print things in the same way as you drive a car without knowing what makes it move, then you can just buy S3D, skip the rest of this chapter and move on to the hints.
There is also Cura which is developed by Ultimaker and optimised for their printers. Theoretically it is possible to use it with the FFCP, but I do not recommend it. You would need to find or create a set of Cura configs specifically made for the FFCP.
If you want to go the slightly more adventurous way of using a free and open-source program, I recommend PrusaSlicer. Many new 3D printing features are pioneered in Slic3r and its PrusaSlicer fork, and only later on blatantly mimicked by the competition, so you'll often be ahead of the curve. PrusaSlicer started out as a fork of Slic3r with some minor changes, but it is quite different now. Although obviously primarily meant to be used with Prusa printers, it is as extensible as the original Slic3r and does not lock you into a certain printer vendor. It is being actively developed so if you find a bug or have a feature request, you can report it on GitHub and the developers will probably look into it. Or you can even fix it yourself if you have the skills.
If you decide to give PrusaSlicer a try, make sure to look ay my PrusaSlicer config bundle.
Depending on what slicer you use, you may still need to convert the text-based G-code files into the binary X3G format. The best tool for this, is GPX. It is included into many software packages. On my PrusaSlicer config page, you'll find instructions on how to make GPX work together with PrusaSlicer (or Slic3r).
Even though ReplicatorG is obsolete as a slicer, it is still useful for changing firmware parameters through the USB interface, but even then you must obtain the latest compatible release because versions not specifically built for the Sailfish firmware are incompatible with the FFCP.
Some slicing programs can send commands directly to the FFCP over a USB serial connection. Neither FlashPrint (at the time of this writing), Slic3r, nor PrusaSlicer support this. This means if you're going to use one of those slicers, you either need to copy the X3G files to an SD card to print from, or connect to your printer in another way. If you are in my situation where there is no need for a hyper-efficient large volume printing pipeline, I consider printing from SD card the preferred method. It does not suffer from typical problems of a serial connection like limited command throughput, and it does not require to keep a computer running near the printer and ensuring it does not crash or reboot. When using a WiFi-enabled SD card like the Toshiba FlashAir, you can even upload files to the printer without touching the SD card (see the hints section). If you do have a dedicated computer connected to your printer, then the best option is probably OctoPrint. I haven't tried it yet, but it looks very interesting and can be run from a cheap and power-efficient computer like a Raspberry Pi.
If you specifically bought the FFCP for its dual extrusion capability, you may be in for a bit of a disappointment. The single-carriage-dual-nozzle design is not a very good solution for dual material printing, partly because it was one of the first attempts at it. Originally I found the FFCP's dual nozzle setup mostly useful to always have two filaments ready for use. Eventually though, I made it a habit to always print with the left nozzle and remove the right nozzle and stepper motor except for the very rare occasions when I do a dualstrusion print. Removing the unused nozzle eliminates the risk that it will cause various problems by bumping into the printed part. Removing all the extraneous weight from the carriage results in a very noticeable reduction in ringing artifacts (see below), and it also reduces sagging of the X axis.
It is possible to get good quality dualstrusions despite the limitations of the single-carriage-dual-extruder setup, but this requires sacrificing print speed and material. Your particular slicing program may have built-in solutions for better dual extrusions. If you're using my PrusaSlicer configs, you can use my post-processing script that does all the necessary things to get the most quality out of the single-carriage-dual-nozzle setup for a dual extrusion print.
As a general recommendation, make sure you have a good calliper or micrometer. It is essential to know the exact diameter of filament you buy, so you can configure it in your slicer program. It is also extremely useful to accurately measure parts you are trying to make a 3D model of, and to check whether the first layer is printed at the expected thickness. I recommend a mechanical calliper with a clock-like dial. This is accurate, easy to read, and has no stupid batteries that die at the wrong moments.
Another good investment is a small infrared thermometer. This allows to check whether the temperature of the printing bed is correct, which is especially important when using glass (see the adhesion hints).
When you start using a new spool of filament, even if it is the same material and manufacturer as a previous spool, the very first thing you should always do is use your calliper or micrometer to measure the filament diameter at several positions. Either create a new filament profile or update your existing one, and enter the average of your measured diameter in the profile. Use the extrusion multiplier to adjust for under-extrusion (see below for more info). If the filament is high quality, the diameter should remain consistent across the entire spool. For cheaper brands, it may be wise to occasionally re-measure the diameter.
When it is a new material, print some standard things to get a feel for optimal settings. Start with a simple cube or some other small thing, if this works out then try something more complex. I use a modified 20×20×10mm cube, followed by the good old Marvin (or this variation). The latter has overhangs and short layers, which help to see if the material needs special care w.r.t. print speed and cooling.
This is not essential but ensures you can use the maximum available area of your print bed, as well as the maximum vertical range of the printer. When everything has been set up, print a small symmetrical object (like a cube) at the exact centre of the bed. My current PrusaSlicer configs make this even easier, they prime the extruder by printing a line across the front of the bed at exactly 3 mm from the front edge. Either check this line, or whether the object is exactly at the centre of the bed. If not, go to ‘Home offsets’ in your printer's LCD menu and adjust as follows. If the object is closer to the back of the bed than the front, or the line is printed at more than 3 mm from the front edge, increase the Y home offset. If the object or line is closer to the front edge (or extruded in free air in front of the bed), decrease the Y home offset.
To calibrate the X home offset, measure with a ruler whether the printed object is at equal distances from the left and right bed edges. If it is nearer to the left edge than the right, decrease the X offset and vice versa.
If you have a glass plate that is smaller than the bed, you should adjust the bed dimensions in your slicing program accordingly (for instance ‘Bed shape’ in the PrusaSlicer printer profiles).
Similarly, you should also determine how much vertical range you actually have: most likely it is more than the advertised 150 mm. My printer can print objects up to 170 mm tall. This seems to depend on the firmware though: some older versions of Sailfish are hard-coded to refuse to move the bed beyond 150 mm. My custom build does not have this limitation. If you are using PrusaSlicer and know how high you can go, modify the ‘Max print height’ value in all PrusaSlicer printer settings, and also update
Z_MAX in my make_fcp_x3g.pl script if you use it.
A common problem that is not always easily noticed, is that the two Y axis belts (the ones at the top left and right of your printer) can become misaligned. This may happen if something has caused the belts to slip over their pulleys, for instance if the carriage has bumped into the front of the printer. Also, if you have detached these belts for some reason, it is pretty much impossible to re-mount them aligned right away. Misaligned Y belts have two undesirable consequences:
Next to checking whether the X axis rods are skewed w.r.t. the bed or printer housing, or noticing the 2 mm ripple, you can also easily detect misalignment by plucking the Y belts like a string. If they have considerably different pitches, they are misaligned. Correcting this would have been easy if FlashForge would have incorporated a detachable coupler on the rod that connects the two pulleys to the Y stepper motor but they haven't. Therefore one possible solution is to add such a coupler, but there is also a less drastic but more cumbersome solution.
Simple but cumbersome: cut two strips from a piece of blister packaging, 6 mm wide and about 5 cm long. Bring the carriage forward. Stick the strips in between both Y belts and the underside of their rear pulleys. Then push the carriage backwards until the strips are rolled around the pulleys, see the above photo. Now the belts can slip over the pulleys and you can wiggle the X axis bars until they are perfectly parallel to the frame, and the belts have the same pitch when plucked. Finally, simply pull the carriage forward again to roll out the blister strips. Check the result and repeat the procedure if necessary.
More drastic but more practical in the end: add a coupler that provides easier and more accurate adjustment. This is not for the faint of heart because you must disassemble the upper part of the printer and saw the narrow rod that connects the two Y axis belt pulleys in half. Reconnect it through a 5 mm axis coupler as shown in the photos below. Then if the belts become misaligned, you only need to loosen the coupler, align the X axis, and tighten the coupler again.
After many years of 3D printing with the FFCP, I consider these the most important tweaks to improve quality, reliability, and ease-of-use. I'm not saying you absolutely must do these things, but I would never want to revert them.
Print quality can be greatly improved by properly cooling the freshly printed material. For some filaments this is essential. For others, too much cooling will ruin the print but a little cooling will improve quality. Ideally the freshly extruded filament should be cooled as quickly as possible to the point where it solidifies and no longer shrinks significantly, but not beyond that point. This could theoretically be done by blasting the printed object with air just below the glass transition temperature, but that is not feasible with a consumer printer like the FFCP. We have to make do with a simpler fan that blows whatever air happens to be inside the enclosure.
To make things worse, the fan on an unmodified FFCP has two major problems. The first is that it only blows at the left nozzle. This can be easily remedied by printing my dual fan duct. Not only does this direct airflow at both nozzles so you can provide proper cooling when dualstruding, even for single extrusion it also provides a better airflow than the stock duct. This is not just recommended, I consider it essential. For printing with a single extruder, I have made a variation on this duct that provides even better cooling, but it only works with the left extruder.
The second problem is harder: a standard FFCP has no fan speed control. The fan can only run at either 100% or 0%, no matter what configurability your slicing software pretends to offer. Don't bother setting different speeds in PrusaSlicer or Simplify3D, any speed higher than 0 will result in full throttle. You can get away with this on/off toggle in many cases, as long as you are using the stock hot-ends with undemanding filaments. PLA and flex work fine with the fan at 100% (all my PLA filament presets keep the fan enabled). Prints in ABS and PETG will however usually be destroyed when cooled too much. Only when printing at 0.1 mm layers, good results might be obtained because extra cooling is usually needed when printing at very fine layers to avoid deformation. For thicker layers with ABS and PETG, cooling is usually a no-go if you cannot reduce fan speed.
If you can accurately control fan speed though, you will obtain better results than without cooling, even with ABS and PETG. (If you are using my PrusaSlicer configs: this is why I provide ABS and PETG profiles with a “-fan” suffix. Do not use these if you have not somehow modified your printer to vary fan speed, except maybe for small objects printed at the ‘extrafine’ settings.)
The best solution to obtain variable fan speed is to have the printer communicate with a dedicated PWM controller. The MightyVariableFan system uses a Raspberry Pi as the controller.
A simpler but more cumbersome solution is to install a manual PWM controller in between the ‘EXTRA’ output on the PCB and the fan.
Another alternative is to install a recent build of the Sailfish firmware, like this one. By performing PWM in software, it allows to change fan speed from within the LCD menu but not during printing, and it will not respond to fan speed commands in the G-code. It is better than nothing but even worse than a manual PWM controller.
This is the sequel to the tweaks I gave above, but I consider these less essential. That does not mean they are unimportant though…
One of the most common problems with 3D printing despite many years of evolution is the first layer sticking insufficiently (or sometimes too much) to the platform. Here are some tips in case you suffer from prints that won't stick or that you cannot remove from the platform without resorting to hammers or power tools.
Finally, a few specific hints to obtain better prints.