An old man's 3D printing thoughts, ideas, experiments, etc

Why 16x micro stepping is a bad idea with mixing hot end.

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.

Hi Peter,
I can’t say that I’ve noticed any difference with mono colour printing at higher extruder micro-stepping. I don’t see any advantage in doing so with a Titan, Bondtech or other geared extruder. Maybe there might be with an ungeared extruder with inherently lower steps per mm. For anyone else reading this, my advice would be try it and see.

I can see another possible solution, modify the firmware to change the micro steps of drivers that will be mixing at low ratios. This would require either having the extruder driver’s config pins individually connected to IO or using using drivers that can be communicated with over serial, like the TMC2130 which uses SPI.

I might explore this on the printer I’m currently building, though I am using Marlin 2.x.

You might want to check with Ryan Carlisle about whether NEMA17 motors are actually capable of positioning finer than 1/4 step, regardless of whether they drive chips are stepping at 1/16, 1/32 or finer.

Hi Haydn and thanks for feedback – always nice to know that one’s efforts aren’t completely wasted.
Ref motor positioning at fine micro-stepping, that’s actually something I’ve been wondering about ever since I wrote this post but I haven’t yet found a definitive answer – just singularly unhelpful generalisations along the lines of “it depends……”
It does strike me that it’s highly probable that a single (say) 128th micro step would not necessarily translate into any actual motor movement. I could well believe that a positional resolution as course as 1/4 step might be the best that a Nema 17 motor is capable of.
I’ll try and contact Ryan via the Duet forum. A PM might be best as I can imagine that starting a thread would lead to all sorts of uninformed opinions being posted.

Ian,
How much does torque figure into this discussion? It is my understanding that microstepping can have a negative impact on torque. And given that the extruder is pushing filament against a load, (including the other steppers in a mixing head) it seems like finer and finer microstepping could result in missed steps.

For context, I am trying to sort out some extrusion issues with a M3D Crane Quad head. The tiny steppers on that machine have much finer resolution than a typical Nema 17 driven extruder. So at 16X microstepping the motors run at 2140 steps per mm. But I am seeing really inconsistent output even while doing a simple extrusion calibration and suspect that this level of microstepping is resulting in missed steps. I am currently experimenting with 8x microstepping and that seems to help with extrusion consistency.

For sure micro-stepping does have an impact on torque but that’s not an issue regarding single digit mixing ratios. For one thing, the sum of the mixing ratios adds up to unity (or should do) so we are extruding the same amount of filament as a single input hot end but utilising multiple extruders to do so. So in theory, we have more torque available (depending on the number of extruders employed and the mixing ratios used) compared to a single input hot end. From some of the other high speed testing I did (documented elsewhere on this blog), I managed to get up to 300mm/sec print speed by setting the mixing ratio to 20% for each of the 5 extruders and utilising the 5 melt chambers of the Diamond hot end, and I didn’t suffer from any missed steps doing that. I’d say that when using low percentage micro stepping, it would be those extruders that are doing most of the work that would likely suffer, rather than the extruders that are only pushing single digit percentages of the total.

I don’t have any such issues on my machine but I can’t comment on the quad because I have never had one to play with. Your 2140 steps at 16x micro stepping would mean about 134 full steps per mm. Typical 3:1 geared extruders like the E3D Titan or Bondtech BMG use about 400 steps per mm @16 x which is about 25 full steps per mm. Which would indicate that the quad is using something like 15 or 16:1 gearing which should help the torque. But I guess it depends on the torque of the motors to start with, which as you say, are tiny. I did see a quad in operation on the Duet stand at the TCT show last year. What struck me was how slowly it was printing. Maybe the design of the melt chamber or mixing section is such that it has a low melt rate capability which would explain your problems. I suggest you try extruding more slowly and see if that helps.
Ian