Continuous rotation axis for "CoreKinematics" machine
-
Hi all,
I am interested in specifying a continuous rotation axis for my multi axis machine. It's kinematics is configured using a motor-to-axis matrix in the M669 command (ie. the CoreKinematics class in the code).
Specifically, I have a rotating bed (axis "C") on my 4 axis printer which I would like to rotate infinitely. Eg.
G1 C10
thenG C350
should rotate the C axis the "short" way around.This has been touched upon a few times in the past:
However, as far as I can tell, there is no way to configure an axis as a continuous rotation axis.
Am I missing anything? If not, I am happy to add an extra parameter to the
M669
that specifies if an axis should be a continuous rotation axis and sets theIsContinuousRotationAxis
function as true for that axis. (Would that be enough to get the desired behaviour?)Thanks
-
@joshuabird Currently, continuous rotation axes are not supported. It has been requested, and there is a feature request on Github: https://github.com/Duet3D/RepRapFirmware/issues/780
There are some workarounds that allow for a nearly-unlimited axis, but there are various limitations.
The 'IsContinuousRotationAxis' function currently doesn't support continuous rotation! I think it is implemented for specific kinematics (polar and SCARA) to support their movement, and allow rotational movements beyond the 180 degree boundary. See where it's used in the code here: https://github.com/search?q=repo%3ADuet3D%2FRepRapFirmware IsContinuousRotationAxis&type=code
Ian
-
Thanks for giving me some context, I might tackle that feature request at some point