# Is E-axis steps/mm resolution limiting factor in print quality?

I've been noticing in some of my linear advance test towers that the (very minor/fine) ripple pattern in walls varies with the K factor, which made me think that it isn't coming from any vibration in the print head motion, but rather from quantization of the extruder into discrete steps (i.e. wall gets slightly thicker right after a step, thins out afterwards until the next step, repeats).

By my math, with 1.75 mm filament and 93 steps per mm on my printer (Ender 3), each step is 0.02585 mm³ of material. At 0.4 mm line width and 0.2 mm layer height, there's 0.08 mm³ of material per linear mm, so that should give roughly 3 extruder steps per linear mm. That seems comparable to the ripple rate I see, although not exact; I suppose it varies somewhat because of linear advance and perhaps other reasons.

Anyway, to get to the question, am I missing something or is this the limiting factor in print resolution on my printer? It seems like isolated small details (smaller than 1/3 mm) won't be extrudable at all except as ooze, or over-extruded if they happen to cross a step threshold, and like things would be far worse if I tried to use a smaller nozzle and thinner layers. It seems that, ideally, you'd want the E-axis steps per mm to be sufficiently high that quantization is a non-issue (i.e. +-1 step is small relative error) for extrusions corresponding to a single X- or Y-axis microstep.

• This is interesting - it means that using a better resolution stepper will have effects here. Moving from i.e. 200 to400 steps / revolution (0.9 degree steppers ARE available) doubles it, as does a Bondtech BMG (3:1 gearbox). Aug 2 '20 at 12:44

Your calculations about the theoretical extruder resolution are spot on. I did a similar calculation to evaluate which extruder to use with different hot ends, I paste the results. The dark cells are the input cells, the rest is calculated. You can see that for some lines I entered directly the mm/microstep value, since I wanted not a theoretical but practical result for my printer (3 mm filament) or for known extruders (BMG).

Concerning the question, the resolution of the extruder matters, but it's a bit complicated to estimate exactly how much.

In general, this are the factors I can think about.

A poor resolution may not impact straight lines much, since the rotation of the extruder is continuous and the extruder is unlikely to snap exactly to the desired microstep position as soon as you ask for it: it's likely a bit behind all the time, that's how torque is obtained (more or less).

The issue may become smaller with drivers which interpolate microsteps up to 256x.

However, whenever there is a change of flow rate, poor resolution implies that you cannot control the exact location/moment where/when the flow changes. This matters mostly at the end and at the beginning or retractions/re-retractions. Maybe you get more ooze?

However, the extruder resolution is not, in practice, as good as you calculated. In fact, as we know, microsteps reduce the incremental torque to very low values. The extruder is a motor which requires quite a lot of torque, since pushing the filament is quite hard, and it is unlikely that you can achieve all the time the 16x microstep accuracy you assumed. For example, due to friction in Bowden, hot end, ... the filament (= the motor shaft) may at a certain point stay "back" more than average. This would cause an increase of effective torque, pushing the filament a bit faster, which would it bring to in sync or so with the desired position, but at that point it would slow down, and so on. Depending on the average speed, this oscillation may be dampened (and then no rippling is visible) or may oscillate constantly, and you see ripples also along straight lines.

This is why I placed the usteps column in my calculations: it is meant to calculate a more realistic resolution assuming that no accurate microstepping is achieved. I assumed higher achievable microsteps the lower the load on the motor is (this means gears, or thinner filament).

Having a high resolution to begin with clearly helps to reduce this issue. You can try to increase the current to the max your drivers and motor and cooling allow, and see if the ripples change. I think it will be reduced.

You may also try to build the Orbiter extruder (linked also in the table) and see how it goes.

• Is it still possible to get 3 mm filament? I thought I was one of the last few using 2.85 mm filament... :-) (2.85 mm is still easy to get due to being the norm for Ultimaker printers)
– 0scar
Jul 29 '20 at 15:24
• @0scar I have a spool of 3 mm nylon trimmer line and I had a spool of PLA, both bought back in 2014 I think. PLA is gone, it was cracking by itself. Nylon is there, I'm waiting to try it with an enclosed printer (my HEVO is almost ready). In general no, it's not available anymore. The PETG I bought to print the HEVO is 2.85 mm.
– FarO
Jul 29 '20 at 16:13

Usually no.

There are several big factors that limit how small things you can print. The bigger ones are pretty much:

• Positional accuracy and settings (limited by steps/mm in X, Y, Z)
• Nozzle diameter

Now, why don't you need to care about steps/mm on the extruder that muchin the grand scale compared to the positional accuracy? Well, we have 1.8° per step, from which, with the diameter of the gear, 11mm, we get 0,1778 mm of filament extrusion or 0.428 mm³ of extruded plastic per full 1.8° step - which clearly is unsuitable to printing at all. But with the 16 micro-steps the shorter movements are possible and a single micro-step extrusion is in the area you calculated - I got to 0,0267 mm³, possibly the result of different rounding between us. With an assumed effective gear diameter of 11mm (usually the effective gear diameter is a little smaller, thus the 93 steps) we come to about 89.9 steps per mm of filament, which corresponds to about 2.4 mm³ of extruded plastic, or about 30 mm of line (with your given parameters), bringing us to about 3 microsteps per millimeter of line on the tray. So far, your math checks out. But that usually shouldn't be too much a limiting factor. We know from your given settings, that the Configuration.h will look like this, putting the microsteps into the steps/mm:

/**
* Default Axis Steps Per Unit (steps/mm)
* Override with M92
*                                      X, Y, Z, E0 [, E1[, E2[, E3[, E4]]]]
*/
#define DEFAULT_AXIS_STEPS_PER_UNIT   { 80, 80, 400, 93 }


As you don't have a micro-stepping driver, this part in Configuration_adv.h is non-functional:

// Microstep setting (Only functional when stepper driver microstep pins are connected to MCU.
#define MICROSTEP_MODES {16,16,16,16,16} // [1,2,4,8,16]


With the proposed 0.4 mm/0.2 mm line, we are still somewhat on the good side, allowing us about 1/3rd of a millimeter as the shortest line printable as a single step extrusion. That's a consistent with printing a simple, circular dot being printable with these settings - 0.4 > 1/3.

But once you get to smaller nozzle diameters, the limitation gets more noticeable: at a 0.2 mm nozzle and 0.22 mm line at 0.1 mm height, that's a 0.022 mm² crosssection, so the 1-step extrusion is equivalent to a full millimeter of line! That's much more bothersome in theory.

However, I haven't been able to witness the inability of showing that limit of lacking extrusion yet on my TronXY-X1 with a 0.2 mm nozzle - the steps/mm in it are also about 90-100 last I set them. The TronXY uses a very similar (virtually identical) extruder setup as the Ender 3, and it achieved printed lines of about 0.3 mm length at 0.1 mm layer height somewhat reliable, but the retraction made huge issues, which might also mask the problem.

I believe that it needs these smaller nozzles to amplify the problems to make them noticeable. It also should become more noticeable if you'd use 2.85 mm or 3 mm filament.

## Ways to improve resolution

However, if printing with smaller nozzles, it might be a good idea to think about how one could improve the accuracy of the extruder system.

The most-easy way would be to alter the extruder and swap the gear to one of a smaller effective diameter - That way a single step accounts to less extrusion, which means, in turn, a higher number of steps/mm, and thus allowing for shorter extrusions that can be still achieved.

Next one might think about getting a different motor/driver setup that might have either more microsteps or generally a smaller step size.

Quadrupling the effective (micros)steps/mm would allow us to print about a 0.25 mm line on the 0.22 mm nozzle I proposed, being pretty much a spot - if it wouldn't be partially masked in other issues as I experience.

• Note that after some slicer and firmware fixes, I do have positional control down to single microsteps - see Does this microstepping test result indicate need for TL smoothers?. Feb 29 '20 at 18:49
• Revision process moved this to chat. Feb 29 '20 at 20:16
• @R..GitHubSTOPHELPINGICE is right. Marlin uses "steps/mm" in the meaning of "microsteps per mm". How would Marlin even KNOW what the microstep settings are, for example in older drivers which do not expose said setting in software? This answer, independently from the final conclusion, is factually wrong where it calculates "0.0085 mm³/micro-step". The original question has it right, it's 0.02585 mm³/microstep. I haven't downvoted it (yet), but please correct it.
– FarO
Jul 29 '20 at 12:41
• @Trish also you quoted a configuration parameter which REQUIRES digital micro-stepping pins. No common driver has them. See also marlinfw.org/docs/gcode/M351.html
– FarO
Jul 29 '20 at 13:14
• @FarO Took my time, redid the math, fixed some of the conclusions, someone should clean up here... Jul 29 '20 at 16:43