Note: The "TL smoothers" referred to in the question title are an arrangement of 8 diodes that presumably both provide a voltage drop to address the minimum current output issue of some stepper drivers described in How Accurate Is Microstepping Really, and provide flyback protection and protection of the driver from currents induced by moving the motor in the unpowered state.

Now, on to the question:

I put together a simple test part to test Y (or X) axis microstepping accuracy:

Test part design - OpenSCAD screenshot

Every 1mm in the Z direction, the face steps inward 1/80 mm (corresponding to my printer's [micro]steps per mm setting) in the Y direction and 1 mm in the X direction (to clearly show where the steps happen).

Here are the results (two runs, near-identical output):

Photo of test prints lying down Photo of test prints upright

Several of the steps are missing entirely, and it's the middle vertical surface, rather than the side two stepped-vertical surfaces, that shows a step-like texture.

Note that layers have been printed counter-clockwise, but the design with steps on both sides is to try to reduce the impact of print orientation so as not to depend on what the slicer decides to do. Print speed was 30 mm/s for outer walls, with outer walls set to be printed first so they're not affected by already-printed inner ones.

This looks to me like an indication that microstepping is not working accurately, and seems to agree partly with this article: https://hackaday.com/2016/08/29/how-accurate-is-microstepping-really/

Would TL smoothers improve this? My printer is an Ender 3, seemingly the latest revision at the time it was sold (December 2018) based on the bed and other aspects. Some threads I found suggested that this was a problem with older Ender 3s that was fixed in later revisions and that TL smoothers won't help, but it looks to me like it's not fixed.

Update: With settings adjusted for 0 jerk and 50 mm/s² acceleration in the outer walls, I got a somewhat improved result:

New test print (lower) compared to old (upper)

All steps are clearly visible, but at the reduced and more varying speed, artifacts of the extruder motor accuracy (or maybe just bowden latency) are much worse, and at the steps the "overshoot and bounce back" effect is still happening. Is this consistent with a situation where the TL smoothers I asked about could benefit?

Update 2: I've further tested with leaving acceleration at default (500 mm/s²) and just disabling "jerk", i.e. "instantaneous" change in speed. The results are at least as good as the above with slow acceleration. What strikes me most is that the "overshoot then bounce back" happens outward from the model on both edges, rather than inward on the righthand side where the (CCW moving) nozzle is turning inward. Could this indicate that there's no microstepping accuracy problem at all, and that the artifact is purely from excess extrusion as the corner is turned?

Updated pic (new one below):

Old test piece above, new with default accel and 0 jerk below

  • $\begingroup$ The problem is related with parameters instead microsteping, a wrong calibration of the driver can result on missing steps. Since your first image we can notice that speed, temperature, retraction can create that under flow and that extra material on borders called coasting; you need to check each variable to reduce each problem because there are some. Jerk, max, acceleration, speed for z can help a lot. $\endgroup$ Commented Jun 25, 2019 at 17:12
  • $\begingroup$ I would attempt to answer your question, but I don't know what a TL Smoother. BUT Google knew. $\endgroup$
    – cmm
    Commented Jun 28, 2019 at 19:20
  • $\begingroup$ @cmm: Updated question with my understanding of what they are. $\endgroup$ Commented Jun 28, 2019 at 20:25
  • $\begingroup$ Which stepper driver chipsets do you use? $\endgroup$
    – 0scar
    Commented Jun 29, 2019 at 6:51
  • $\begingroup$ @0scar: My understanding from things I've seen online is that the Ender 3 uses A4988's, but I haven't verified. $\endgroup$ Commented Jun 29, 2019 at 14:57

3 Answers 3


It's worth remembering that the smaller the fraction of the step, the less torque is going to be available at that step. here is one link but there are many others that explain it as well. it looks to me like you have inconsistent friction in your system, or possibly some flex/warping of the frame. it might also be easier to see with a smaller nozzle

edit because i forgot to actually answer the question: no, by itself it does not indicate that smoothers would help. this does not mean that they wont, just that this does not look definitive to me


Instead of getting tlsmoothers just upgrade your drivers, 2209s are good, Most TMC Drivers account for flyback

  • 1
    $\begingroup$ I'm pretty sure they're not socketed, so effectively this is "get a different controller board". Not a bad idea, and I might do it for this and other reasons, but it doesn't really answer the question. $\endgroup$ Commented Jul 2, 2019 at 2:38

The missing/inaccurate microsteps seem to be a bug/feature of Marlin:

// Moves (or segments) with fewer steps than this will be joined with the next move  

I'm not sure what the logic for this was in the stock firmware, which I originally performed the tests with, but with Marlin 2.0 I was completely missing the first 5 steps on the right (positive X) side. Changing the value to 1 mostly fixed the problem, but there was also a corresponding bug/feature in Cura:

                "label": "Maximum Deviation",
                "description": "The maximum deviation allowed when reducing the resolution for the Maximum Resolution setting. If you increase this, the print will be less accurate, but the g-code will be smaller. Maximum Deviation is a limit for Maximum Resolution, so if the two conflict the Maximum Deviation will always be held true.",
                "type": "float",
                "unit": "mm",
                "default_value": 0.05,
                "minimum_value": "0.001",
                "minimum_value_warning": "0.01",
                "maximum_value_warning": "0.3",
                "settable_per_mesh": true

The deviation should be set less than a single microstep, so 0.0125 mm.

With both of these fixed, I've got a perfect print:

successful print with each microstep visible

Sliced printing direction was counter-clockwise for all layers. The steps on the left side are where the slicer decided to put the layer seams (perhaps I should retry forcing it to put the seam somewhere else, or even using vase mode) so they have a little extra bulging from slight ooze during the Z move that you can clearly see from the lighting, but the steps on the right side are dimensionally near perfect.

I think I can safely say any past problems were the fault of firmware and slicing software, not anything physical/electrical/electronic.


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .