While exploring other things I was looking closely at gcode files and it occurred to me that extruder moves can be really tiny. Of course it’s obvious but it’s not something that I had given much thought to. A 300mm move in X generally has an extrusion amount associated with it in the order of about 16mm on my machine with my default layer width of about 0.5mm and layer height of 0.3mm. So the extruder move is about 5% of the axis travel. Obviously lower layer heights and/or widths will result in small extruder moves in relation to head travel distance.
This is all fine and dandy with longish moves but what about really short moves such as curve segments? As an example, a segment size of 0.5mm might not be unreasonable for a small diameter part. Taking that example then the extruder move would be 5% of 5mm which is 0.025mm. With my steps per mm set to 415 (Bondtech BMG extruder) or 411ish for an E3D Titan, that gives me about 20.75 (micro) steps. Assuming it gets rounded up to the nearest whole step, that’s not too bad an error.
But then I thought about mixing ratios. If I were to use say 98% of one filament and 1% of the other two in a 3 colour hot end, then those 1% values translate to 0.00025mm and at 415 micro steps per mm that’s 0.10375 micro-steps which will get rounded down to zero. I started a thread on the Duet forums to confirm that this rounding to the nearest whole micro-step does in fact happen. It is as I thought because you can’t have a fraction of a micro-step. Duet forum thread.
So the net result would be at least 2% under extrusion because the only extruder that would actually move would be the one set to 98% mixing.
It gets worse than this. I created a spread sheet to look at all the values of mixing ratios up to 10%. I then expanded this spread sheet to include other micro stepping values and to calculate the overall under/over extrusion amounts. I’ve attempted to add this spread sheet to this blog but have no idea if it’ll work. This is getting hard for a 65 year old “non IT guy”. The spread sheet was originally created using Libre Office so natively .ods format. I’ve saved it as .xls so some of the formatting might have got messed up. I also saved it as a pdf. Clicking the links below should open a new window/tab
In case those links don’t work and to summarise the spread sheet data, using anything up to 5% mixing ratio at 16x micro-stepping will result in no movement from that extruder. The net result would 10% under extrusion (for a small segment of length 0.5mm) using a 3 input mixing hot end because two extruders wouldn’t move. For a 5 input mixing hot end, 4 of the extruders would remain stationary so the error would be a whopping 20%. From 6% to 10% mixing ratios, these errors swing positive to plus 16% at 6% mixing and reducing to zero at 10% mixing (for a 5 input hot end – half that for a 3 input).
At 32 x micro stepping, the errors reduce to a maximum of 8% (4% for a 3 input). At 64 x micro stepping, the maximum errors are 4 % (2% for 3 input). At 128 x micro stepping the maximum error is still 4% but only occurs at mixing ratios of 3% and 9%. The errors reduce to zero at 256x micro stepping.
Please remember that these errors only apply to short segmented moves and are specific to my machine. Longer moves will be less affected (in percentage terms). Smaller layer heights and/or layer widths will give different results, as will extruder gearing.
So it would appear that 256 x micro stepping would be the ideal setting in my case. However, we now run into another little problem. Can we move the extruder fast enough at high micro stepping? David Crocker (DC42) informs me that I should be able to attain in the region of 200 kHz step rate. So I added the calculation for maximum extruder speed assuming 200 kHz step rate into the spread sheet. This shows that with 16x micro-stepping I should be able to reach 482 mm/sec but at 256x micro-stepping, this drops to 30mm/sec. For normal printing this should be fine. Going back to the extruder moving a distance of 5% of the axis travel, then it follows that the extruder speed will be 5% of the carriage speed. So even at silly high print speeds of 300mm/sec the extruder speed would only be about 15 mm /sec (worse case using a single extruder). The problem comes with retraction. I’m currently using 60mm/sec retraction speed and all filaments are retracted simultaneously. So I have to make the choice between running 256x micro stepping and slower retraction speed or 128x micro stepping and higher retraction speed but with slight potential extrusion amount errors on small segments. I’m inclined to go with the latter and accept some small extrusion errors at low mixing ratios on short segment moves but I’ll run some tests to find out if I can get away with lower retraction speeds.
Using 0.9 degree motors might help but only because they have 400 full steps per revolution instead of 200, so individual micro-steps are likely to be more accurate. i.e 1/32 of a 0.9 degree step is likely to be slightly more accurate than 1/64 of a 1.8 degree step. And full torque will be available 400 times per rev rather than 200 times. However, from what I’ve seen, 0.9 degree motors of a similar size seem to be rated at lower torque to start with. Coupled with the cost of about £12.25 each, I doubt any potential gain would be worth the £60 plus that I’d have to spend.
Although I can’t say that I’ve really noticed any terrible under extrusion, I have to say that I’ve not really done all that much printing with very low mixing ratios. Maybe I’ve just been lucky in that the segment sizes have been largish, which will reduce the error. One thing I have observed is that when printing objects that fade between colours ( changing the mixing ratio in 1% increments between layers) I have noticed a distinct colour change at the boundaries rather than the more gradual change from one colour to another. This might explain it, if the extruder doesn’t move until the mixing ratio hits 5% or there about.
As ever, hope some people find this post useful or informative.