Flow rate error in Repetier firmware!

Discussions about firmware/slicing software, tweaks and settings
Post Reply
Dreide
Posts: 176
Joined: Sun Sep 29, 2013 12:32 am
Location: Lausanne, Switzerland

Flow rate error in Repetier firmware!

Post by Dreide » Fri Jul 18, 2014 9:16 am

Over the last few days I spent quite some time to track down a problem which I could not ignore anymore. Occasionally I observed severe under-extrusion for which I had no explanation as it didn't seem to be correlated to anything.
I finally found the flow rate setting in Repetier host to be the troublemaker. It is actually a problem in the Repetier firmware and will affect all control programs which use the M221 command for flow rate adjustment. For the time being, when using the Repetier firmware (v0.91), it is safer to adjust the flow rate in the slicer and leave the flow rate in Repetier host at 100%.
When the Repetier firmware takes the M221 flow rate factor into account, it induces an additional round-off error, which is bad in the first place. But the real problem is that the firmware calculates the integer number of extruder motor steps by just truncating the decimal places instead of rounding the exact value. If there are only a few extruder steps to be made for a given extrusion segment, the according error can be quite substantial, plus it does not average out but accumulates and causes under-extrusion. For example, with a 0.2mm layer thickness and 0.4 extrusion width, the extruder motor has to make only about 5 steps per millimeter XY travel! Assuming the segments are just 0.2mm long, even a 99% flow rate will actually make the firmware lose one step out of 5, so the effective flow rate would be 80%!
Obviously, the problem becomes more severe for lower extrusion volumes (e.g. 0.1mm layers) and more detailed models. It also depends on how the slicer decides to segment the extrusion paths - I had cases where KISSlicer cut even a straight path into hundreds of pieces just because the path happened to be at the wrong angle. But usually, the higher the curvature of the model (in XY), the worse it will likely be, which is particularly irritating as the problem can literally surface at only some spots of a model while everything else seems just fine. Especially solid infills, which you might take as a guide when adjusting the flow rate, are not prone to the problem because infill paths are simpler for the slicer to compute (in contrast to loops) and the slicer will generate just one (i.e. rather long) segment per infill line.
A quick-and-dirty fix of the firmware should be easy, but getting also rid of multiple rounding operations is a bit more complicated, so further work needs to be done.
Felix 2.0->3.0dual * Repetier (host+firmware) * KISSlicer Pro, Simplify3D * Cubify Design

Post Reply