Sync Multi stepper CNC setup

That all depends on the tool (chip size, rpm etc.) If you move too slow while spinning the endmill fast, one makes dust not chips.

This Klipper concept is interesting. The code generates steps in time, which could just as well be angle :triangular_ruler: in time… I guess

Once the look-ahead process completes, the print head movement for the given move is fully known (time, start position, end position, velocity at each point) and it is possible to generate the step times for the move. This process is done within ā€œkinematic classesā€ in the Klipper code. Outside of these kinematic classes, everything is tracked in millimeters, seconds, and in cartesian coordinate space. It’s the task of the kinematic classes to convert from this generic coordinate system to the hardware specifics of the particular printer.

Klipper uses an iterative solver to generate the step times for each stepper. The code contains the formulas to calculate the ideal cartesian coordinates of the head at each moment in time

Edit: Contemplating this —> The Klipper repo has SAMD support, which in the ordinary perception of things, would make that MCU a main board controlling stepper drivers or sub_drivers possibly controlling each axis, but still through a stepper driver.

What if that MCU itself was moving a stepper through SimpleFoc. It really is ā€œjustā€ a matter of translating the move in time to a FOC execution strategy. Acceleration, speed, moment in time

def units_in_radians(self):
# Returns true if distances are in radians instead of millimeters
return self._units_in_radians