Question with respect to the implementation of closed-loop feedback in Klipper

IIRC, it is: klippy-modules/position_tracker.py at main · MRX8024/klippy-modules · GitHub

Just my 2 cents.

Microstepping should be able to provide slightly more than 0.9 degrees.
You are talking about:

1.8 / 32 = 0.05625
1.8 / 64 = 0.028125

Basically, I think, the limitation here is the encoder’s effective resolution and the driver.
Saying that, in other words, it should be possible to step several times in a different direction, until your encoder position match position you wanted it to.

If there is a will to be fancy, it is possible to do either:

  • TMCs like 2240 can drive specified current into the motor by DIRECT_MODE register. So, drive coils by hand.
  • Or use external H-Bridge drivers like here: https://www.youtube.com/watch?v=MgQbPdiuUTw
    Generally, it seems to me, this is as far as you can get. (Clever tricks and 1us of resolution).

So, technically, you should be able to fine-adjust and point it as you wish.

I spent quite a time around microstepping (TMC Adaptive Microstep Table - #31 by nefelim4ag).

Hope that helps a little.
-Timofey

1 Like