It is a complicated topic, this is my personal opinion.
Shortly speaking, it is not like compatible or not compatible.
The high-level limitation is that the motion planner runs in the future and sends data in the future.
It is possible, though, to collect data after something happened and do a correction, simply speaking, set the actual stepper position after it has lost its position.
But it will be with about >1s round-trip latency.
So, you can correct for missing steps, but generally it is simpler to avoid that (Right size of the motor, correct current).
The second problem is how this correction is implemented in the external controller.
Assume you did, connect the servo.
For whatever reason, there is a salmon skin effect. It can be caused by:
- PID correction of the uneven rotation of the belt sprocket
- Uneven movement of the belt
- Uneven timings of the steps (there is a jitter and lag, it is just small for open loop <25us).
- Second motor on the CoreXY that applies torque
Probably, part of this problem can be solved if there is an encoder from step/dir on the host side, to the servo protocol, whatever it can be, so the servo would know what we want without step/dir translation and lag.
And the end result of this is that it adds complexity and provides pretty little practical benefits.
Skipping steps is not an issue. Precision, maybe, but generally <0.1mm dimensional error is fine.
So, for example, you can pretty easily connect your encoders to the Klipper.
You can dump data through the bulk subsystem, track motion, and whatever.
But I have a hard time imagining the practical use case.
Just for reference, I had the encoder connected, and I helped with enabling of host side closed loop.
Hope that explains something.
So, I guess, the right question is, what problem are you trying to solve with this?
The only curious setup that I can imagine is an encoder on the extruder, because it allows us to estimate pressure, and we can probably do something with this data.
(This is a video from @MRX8024, who managed that, I’ve just uploaded it).
-Timofey.