Simultaneous conditional movement and homing
-
Hello,
I've been trying to optimize (for fun) my homeall routine so the axes home more quickly as some are completely indepdent/decoupled from the others-namely the "C" axis is completely independent of the XYZ axes. As such I would like to implement parallel homing for the C axis as the XY axes home as well (C homes and returns to nominal position while XY home). This involves homing C AND returning it to it's nominal position while also homing X and Y (which is sequential via Y then X). I should note that all axes use stall detection for homing. The main issue I'm running into is shown by the results of the following command:
G1 H1 Y-400 C-800 F5000 ;Home Y & C simultaneously
If Y homes before C, it stops the C homing process and wherever C was is considered home and the move.axes[3].homed variable is flagged true (3 is the axis index for C) which causes C to then be out of position. However if C homes first, Y continues to home (which is what I want); however, I cannot then begin to bring C back to it's ready position while Y continues to home.
Currently my setup just keeps homing C while Y, then X each home, then bring it to it's nominal position afterwards:
G1 H1 Y-400 C-800 F5000 ; Home Y & C simultaneously
G1 H1 X-400 C-800 F5000 ; Home X & C simultaneously
G1 H1 C-800 F5000 ; Ensure C is actually homed
G90 G1 C241 F5000 ; Return C to nominal position(note there are other commands for stall detection sensitivity and motor current I have omitted for clarity).
If anyone has any documentation or examples to share on how to do this (or to share that it is simply impossible) I would be most grateful
Edit: Running firmware version 3.4.1
Edit2: The printer is CoreXY kinematics.
-
@merlin246 what firmware version are you running?
-
@jay_s_uk 3.4.1
-
@merlin246 said in Simultaneous conditional movement and homing:
If Y homes before C, it stops the C homing process and wherever C was is considered home and the move.axes[3].homed variable is flagged true (3 is the axis index for C) which causes C to then be out of position. However if C homes first, Y continues to home (which is what I want); however, I cannot then begin to bring C back to it's ready position while Y continues to home.
That's not right. What types of endstop have you configured for Y and C?
-
@dc42 nvm you are right. I believe the home flag never went false at the beginning so I added an M18 and that fixed the issue (let me know if there is a better way than just disabling the motors).
However when simultaneously homing C and another axis (Y or X) the homing sequence only stops on Y or X but never when C homes, is there a way to stop the process if C homes first like for X and Y?