So I was thinking about is it possible to reach higher resolutions with encoders and DC motors? I found a cheap high-resolution magnetic encoder that can be used along with a DC motor to access higher resolutions. The encoder has 8192 PPR meaning that it can measure up to 0.04 degrees if I have correctly calculated. So if for a stepper with 0.9 step angle and no micro-stepping with 20 tooth pulley and 2mm belt, the steps/mm is 10, it means every 9 degrees with this pulley and belt setup makes 1mm and so 0.04 degree makes 0.004mm movement that is about 4 microns. Is this correct and possible? If so, why don't big companies use this method?
Link to the encoder:
RLS RMB20 rotary magnetic encoder module
1 Answer
The mistake in your reasoning is assuming no microstepping. Most 3D printers use 16 microsteps, and in my experience with both cheap A4988 drivers and nice TMC2209 drivers, microstepping is quite accurate. As part of an answer to a question I asked, you can see a test print showing single-microstep features. My motors have 1.8° step angle, yielding 3200 steps per rotation at 16 microsteps, or 12.5 microns of linear movement per microstep. With 0.9° step angle you could get it down to half that, and you could probably halve it again going to 32 microsteps.
Even if you can't get it as good as your 4 microns with stepper motors though, at 12.5 micron positioning resolution you're already to the point where extrusion error is going to play a much bigger role in dimensional accuracy than toolhead positioning error does. Going past that with FDM requires high resolution extruder axis movement, closed-loop control with a precise filament diameter sensor, direct drive with minimal distance between the extruder gear and nozzle, etc.
-
$\begingroup$ So with TMC drivers, you can have 256 microstepping that equals 0.3 microns. But I don't think it has enough accuracy to move by 0.003 degrees. Won't the step losses make steppers unable to perform these accurate steps? If they don't, Then why don't manufacturers say 0.3-micron accuracy instead of 40 or 20? Is that all because of extrusion and filament errors? $\endgroup$ Commented Mar 15, 2021 at 4:33
-
$\begingroup$ @MahanLameie: I would be very surprised if at 256 microsteps you got consistent microstep size. This article shows there may be considerable error (the DRV8825, which has fallen out of use, is especially bad) but most are surprisingly good at just 16. $\endgroup$ Commented Mar 15, 2021 at 13:32
-
$\begingroup$ Note that [non-closed-loop] microstepping is inherently inaccurate under (variable) load, but most 3D printer designs are not actually under any load when the axis in question is at rest, only loaded by accelerating/decelerating the toolhead (thus ringing artifacts). $\endgroup$ Commented Mar 15, 2021 at 13:33
-
$\begingroup$ Anyway, the reason manufacturers don't advertise what you'd get with 256 microsteps is probably a mix of (1) they don't configure the firmware that way, (2) the low-end microcontrollers they use can't handle stepping at that rate (note: this is also a reason for them not to use servos with high resolution encoders), (3) they haven't designed for or tested for accuracy at that scale, and (4) their competitors haven't either so there's no race to embellish the truth about their capabilities. $\endgroup$ Commented Mar 15, 2021 at 13:35
-
$\begingroup$ So if I use encoders that have a suitable resolution, can I get a 256 microstepping resolution without any step loss and low torque problems that you mentioned? Also is there any point in doing that? Will I get better results if I have accurate 256 microstepping and 0.3-micron resolution? $\endgroup$ Commented Mar 15, 2021 at 13:41