CoreXY + linear encoders + 1HCL closed loop expansion board
-
Hi guys! New to duet3d (lots of previous experience with Klipper and Marlin), but I am liking my duet3d mini 5+ so far, because it's very versatile and easy to use. I was running in no time.
I am in the process of building a CoreXY openpnp pick and place machine and I am pondering this idea currently:
Is it possible to use linear encoders (e.g. Sino KA200) in a closed loop with the 1HCL expansion board in a CoreXY configuration? I am unsure, because the linear encoders record axis position of X or Y, but the motors are each controlling both X and Y simultaneously. So there is not a clear relation of encoder to motor.
Has anybody done something like this before? Or is able to give a definitive answer?
-
@klinkerstein unfortunately the motor and axis have to be the same. To handle CoreXY we'd need to connect both motors and encoders to a single control board, and have it convert the encoder readings into the positions of the 2 motors.
Ian
-
@droftarts Ive used 2 x 1HCL boards to drive the motion on a coreXY without issue
-
@jay_s_uk that’s no problem, it’s having linear encoders on the X and Y axis as well, at 45 degrees to the direction each motor and rotary encoder drives.
Ian
-
@droftarts ah, I get you
-
@droftarts thanks for the heads up!
So theoretically speaking, if someone (e.g. me) designs such a board with two motor drivers and two hardware encoder inputs, would it be possible right away (or at least manageable to implement in software) or is the entire reprap firmware architecture not (currently) capable of such a setup?Another thought was, if we use two controllers, one for A motor and one for B motor, and just connect the (45°) X/Y axis encoders directly to those, ignoring the CoreXY kinematics.. couldn't it still work? The position for X would be controlled through motor A, resulting in diagonal move but since we have the second controller seeing this as a disturbance, it corrects motor B automatically to keep Y axis constant? I am just not sure if such a control scheme is stable or might start to oscillate because in essence you have two controllers in series.
-
@klinkerstein said in CoreXY + linear encoders + 1HCL closed loop expansion board:
Another thought was, if we use two controllers, one for A motor and one for B motor, and just connect the (45°) X/Y axis encoders directly to those, ignoring the CoreXY kinematics.. couldn't it still work? The position for X would be controlled through motor A, resulting in diagonal move but since we have the second controller seeing this as a disturbance, it corrects motor B automatically to keep Y axis constant? I am just not sure if such a control scheme is stable or might start to oscillate because in essence you have two controllers in series.
I thought about it and I am pretty sure this doesn't work, since the response of one of the linear rails with respect to motor A changes depending on what motor B does.
I have perused the code a bit and I think I have an okay picture on what's where.