-
Notifications
You must be signed in to change notification settings - Fork 151
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Microsteps setting #211
Comments
You should set it according to your driver. TMC 2209 can use max of 64, for example |
Are you sure about this? I know the datasheet says a max of 64 when using the dir and step pins but I've tested speeds with every microstep setting between 16 and 256 and found an improvement each step above 64, even at 256. If it was in fact limited to 64 I would be curious to know why 64 was actually one of the worst settings for me. |
All the drivers autotune works with support up to 256 microsteps. However,
that can easily be more step pulses than your MCU can handle, and if you
run out of MCU processor time you get 'timer too close' errors. This is why
interpolation is useful; the driver still runs at 256 microsteps, but the
MCU doesn't need to.
…On Thu, Jan 2, 2025 at 5:57 AM charredchar ***@***.***> wrote:
You should set it according to your driver. TMC 2209 can use max of 64,
for example
Are you sure about this? I know the datasheet says a max of 64 when using
the dir and step pins but I've tested speeds with every microstep setting
between 16 and 256 and found an improvement each step above 64, even at
256. If it was in fact limited to 64 I would be curious to know why 64 was
actually one of the worst settings for me.
—
Reply to this email directly, view it on GitHub
<#211 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AANJYETI2A7C7XHAEEQKVCD2IQ3BJAVCNFSM6AAAAABQ425C3KVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDKNRXGEYTEMBYGA>
.
You are receiving this because you are subscribed to this thread.Message
ID: ***@***.***>
|
You can set them to 256. But it may lead to skipped steps depending on your currents and speeds. Maximum safe value is 64 with virtual interpolation to 256 steps. Use higher values on your own risk (not really a risk, as the worst thing is just wasted plastic). And yes, as Andrew said: not every MCU can handle high values. For example, Robin Nano 2.1 with 3 steppers on a delta can handle up to 32 steps without any problems, but will fail some movements with 'timer too close' error even at 64 |
And we come back to my oryginał question: should we set it or autorune is handling it :) Ps. How you can set number of interpolated steps? |
I have the same question, as it is not clear which parameter
|
You should set it manually. Klipper will not let you left microsteps unspecified, it's a required option :) A basic stepper config example (taken from flsun v400 with 1.8 motors on TMC2209):
|
So if you set 64 micro steps and add interpolate, will it now to interpolate it to 256? How it works is little unclear to me :) |
Basically, in the example above, Klipper calculates movement with assumed 64 microsteps of a driver motor. Then it sends calculated steps to the TMC2209 driver through the MCU. The driver accepts those steps, interpolates additional points between them, and sends 256 actual microsteps to the motor. That way the movement is more fluid and quieter The drawback is the delay between accepting original steps and executing interpolated ones. It provides a small positional error and thus is not recommended by the official Klipper docs. But the error is proportional to the specified microsteps count. It may be somewhat significant if you're using interpolation with 16 microsteps (~0.006 mm) in some applications, but negligible with 64 (~0.0015 mm) on 99.9% of home-use printers |
Exactly this.
On top of which, Klipper doesn't synchronise the extruder very precisely,
and that issue is way more important than interpolation.
…On Fri, Jan 3, 2025 at 8:17 AM Labunsky Artem ***@***.***> wrote:
So if you set 64 micro steps and add interpolate, will it now to
interpolate it to 256? How it works is little unclear to me :)
Basically, in the example above, Klipper calculates movement with assumed
64 microsteps of a driver motor. Then it sends them to the TMC2209 driver
through the MCU. The driver accepts those steps, interpolates additional
microsteps between them, and sends 256 actual microsteps to the motor. That
way the movement is more fluid and quieter. The drawback is the delay
between accepting original steps and executing interpolated ones. This
provides a small positional error and thus is not recommended by the
official Klipper docs. But the error is proportional to specified
microsteps. It may be somewhat significant if you're using interpolation
with 16 microsteps (~0.006 mm) in some applications, but negligible with 64
(~0.0015 mm) on 99.9% of home-use printers
—
Reply to this email directly, view it on GitHub
<#211 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AANJYETQB76ATIWSMM52HHD2IWUGFAVCNFSM6AAAAABQ425C3KVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDKNRYGM4DQNZXGY>
.
You are receiving this because you commented.Message ID:
***@***.***>
|
Guide says: "Autotune gives better results, both dimensionally and quality, by using interpolation and as many microsteps as feasible". So... Should we set it in config? Or auto tune sets it according to driver and motor specs automatically?
If we set it, is there any suggested value?
The text was updated successfully, but these errors were encountered: