Several of us early adopters on the QU-BD Revolution and RXL forums have been discussing the tendency of the extruder to chew up filament, and it’s been a bit of a head-scratcher. The role of different speeds and temperatures, as well as retraction speeds and amounts has been discussed back and forth. However, I think that I’ve found another significant source of the issues: that’s the presence of some rather odd defaults in Slic3r, the QU-BD slicer of choice.
Extrusion Width Settings
Buried in the advanced print settings, Slic3r gives you the option to specify the extrusion bead width settings. These all default to zero, which means to allow Slic3r to use its own algorithms to decide how wide to make the extruded beads:
Now you might assume that the slicer would use bead widths that are close to the nozzle width. So a 0.4mm nozzle, as on the QU-BD printers, would have a 0.4mm extrusion width, or thereabouts. But in fact Slic3r uses much fatter extrusion bead width – pushing out more plastic, and relying on the flat tip of the nozzle to spread it out.
For instance, I tried slicing a small block with the default, all-zero width settings, and 100mm/s speed set for all print speeds. This is what the start of the resulting gcode looks like:
Notice how it says that the perimeters are going to be printed with 0.68mm wide lines, and infill with whopping 1.28mm lines? Here’s what 20% infill looks like, in this gcode:
See how the infill is very widely spaced? That’s because each individual line is going to print very thickly. Repetier Host (that I used to show the gcode), doesn’t do a good job of visualizing the width of the lines. However, compare this to the gcode that you get if you manually set all the extrusion widths equal to the nozzle width:
With these settings, the infill lines are individually thinner, so set closer together:
Volumetric Speed – The Limits of Extrusion
As I discussed in an earlier post, in the context of Ultimaker printers, one of the fundamental limits is the volume of extrusion per second that an extrusion-based 3D printer can deliver. The higher the volume per second that you try to print at, the higher the pressures involved, and the harder the extruder system has to work. Eventually, the system starts to fail, and either the head clogs because molten plastic squirts into internal spaces it shouldn’t reach, and then solidifies – or else the filament drive system simply chews up the filament until it can’t grip it any more.
The volume per second being extruded can be calculated simply as the product of the layer height (in mm), the linear head speed in (mm/s), and the width of the bead being extruded (also in mm). So, for instance if you are printing a 0.1mm layer at 200mm/s and the width of the bead being printed is 0.4mm (which is equal to the nozzle width), then the volume per second is:
0.1 x 200 x 0.4 = 8mm³/s.
I’m not yet sure exactly what the volume-per-second limits are for QU-BD extruder, but as a comparison, the original Ultimaker with their current (as of Nov 2013) hot end and extruder upgrades, has a throughput capacity somewhere in the 8-10mm³ per second range. It’s reasonable to assume that the QU-BD printer is somewhere in that ballpark – probably a bit higher, given the advertised high speed capabilities of the QU-BD printers – and I plan to conduct some detailed tests soon.
Slic3r – Pushing the Limits Too Far?
And so that brings us back to the issue of Slic3r’s default infill behavior. If it’s going to print infill with 3 times the bead width, compared to the nozzle size, that’s a lot more extrusion suddenly happening than you might otherwise expect. It says it’s going to use a wider effective bead size for infill – but does it actually do so? The answer is yes!
The screen shot below analyzes the gcode coordinates contained in the gcode layers shown above – looking at the X and Y distances moved on each segment, and comparing the amount of movement requested from the extruder with the amount theoretically required for a 0.4mm bead, given the filament size and distances involved.:
The top block shows the gcode when you manually specify a 0.4mm bead width; you get exactly the extrusion amounts that you’d expect. The second block shows that when you allow Slic3r to choose its own bead width, it really does try to extrude a bead that is over 3 times as wide as the nozzle size*. If the speed that you set for infill is the same as for your perimeters, then you are going to need much higher pressures to extrude the infill – much more than you might expect if you didn’t realize that the bead width had secretly been changed, and possibly more than the extruder can handle.
Looking at it another way, let’s revisit the volume per second calculation we did earlier. At 0.1mm layers, and 200mm/s, we thought we were extruding a reasonably fast 8mm³/s, based on our nozzle size. But it turns out that since Slic3r upped the bead width on us to about 1.28mm, we are actually trying to extrude:
0.1 x 200 x 1.28 = 25.6mm³/s
Since we know that some broadly similar extruders have limits at or below 10mm³/second, it’s quite possible that the QU-BD extruder is going to struggle when the extrusion rate suddenly increases this high. Looked at another way, this tripling of extrusion volume is the same as keeping the bead width the same, but suddenly upping the print speed to 600mm/s. At the very least, you’d expect to need to raise the print temperature a lot to handle the higher volumes involved.
How does this fit the observed issues?
QU-BD has shown and tested their printers printing very fast – but mostly vases or zero-infill, continuous loop prints, as far as I know. In more general prints, many users (myself included) are struggling to get anywhere close to their speeds. On the forum we have considered the possibility that using retraction was part of the problem, and indeed it may be, as constant back-and-forth of the drive gear on the filament may cause it to get chewed up more. But for certain, having to extrude infill at much higher volumetric rates is going to cause problems. Looking at the default profiles that QU-BD published on its website, I notice that both infill and perimeters are set to have the same speed (150mm/s) while the bead widths are left set at zero. As a result, prints sliced with Slic3r are going to exhibit exactly this behavior – trying to print infill at flow rates that are much higher than expected.
How to fix the problem
There are two ways to fix the problem. Firstly you could choose to slow down the infill speed to compensate for the fatter extrusion bead. However, I think this is more complicated, and I’m not convinced anyway that an extrusion that is more than 3 times wider than the nozzle opening is going to give very good quality results.
And so I recommend the alternative, and simplest way to solve the problem – to manually set the extrusion bead widths in Slic3r. I recommend setting them all equal to the nozzle width – i.e., 0.4mm. This is will give the optimum detail resolution for the outside shell, while maintaining consistent extrusion speeds for all parts of the print. This will improve print quality by reducing any over- or under-extrusion at the points where the extrusion rate ( and hence head pressure) changes, and also make it much simpler to assess the speed and temperature settings to get good results.