Dual gantry stepper homing with uneven switches

More
28 Nov 2020 06:32 #190487 by Lunkwill
I have a dual stepper gantry on joints 0 and 3, and it's been homing great using a single switch netted to both joints. Tonight I added a limit switch on the other end of the gantry so it can automatically square the gantry, so now joint 0 and joint 3 have separate homing switches.

The joint 3 switch closes about ~0.020" before joint 0, and I think what's happening is that joint 3 starts backing up even though joint 0 is still creeping forward to hit its switch, so bad grindy things happen that weren't happening before. Does that sound plausible?

Please Log in or Create an account to join the conversation.

More
28 Nov 2020 08:44 #190495 by Clive S

I have a dual stepper gantry on joints 0 and 3, and it's been homing great using a single switch netted to both joints. Tonight I added a limit switch on the other end of the gantry so it can automatically square the gantry, so now joint 0 and joint 3 have separate homing switches.

The joint 3 switch closes about ~0.020" before joint 0, and I think what's happening is that joint 3 starts backing up even though joint 0 is still creeping forward to hit its switch, so bad grindy things happen that weren't happening before. Does that sound plausible?


Can you post your hal and ini files. Do you have the same -ve sequence value for joint 0 and 1?

Please Log in or Create an account to join the conversation.

More
28 Nov 2020 19:58 #190543 by Lunkwill
Here you go. Do you mean the HOME_SEARCH_VEL and HOME_LATCH_VEL? Yep, those are the same for both of the gantry joints.
Attachments:

Please Log in or Create an account to join the conversation.

More
28 Nov 2020 20:57 - 28 Nov 2020 21:01 #190549 by Mud
It's HOME_SEQUENCE that needs setting up.

edit: pulling from memory, so best you find the relevant bit in the documentation, but here are the joints for mine (0 and 1 are the gantry).
[AXIS_X]
MIN_LIMIT = -90
MAX_LIMIT = 1000
# set to double the value in the corresponding joint
MAX_VELOCITY = 500.0
# set to double the value in the corresponding joint
MAX_ACCELERATION = 2000.0
# shares the above two equally between the joint and the offset
OFFSET_AV_RATIO = 0.5

[AXIS_Y]
MIN_LIMIT = -90
MAX_LIMIT = 760
# set to double the value in the corresponding joint
MAX_VELOCITY = 500.0
# set to double the value in the corresponding joint
MAX_ACCELERATION = 2000.0
# shares the above two equally between the joint and the offset
OFFSET_AV_RATIO = 0.5

[AXIS_Z]
MIN_LIMIT = -94 
#reduced from -100
MAX_LIMIT = 10
# set to double the value in the corresponding joint
MAX_VELOCITY = 200.0
# set to double the value in the corresponding joint
MAX_ACCELERATION = 2000.0
# shares the above two equally between the joint and the offset
OFFSET_AV_RATIO = 0.5

[JOINT_0]
AXIS = X
MIN_LIMIT = -90
MAX_LIMIT = 1000
MAX_VELOCITY = 250
MAX_ACCELERATION = 1000
TYPE = LINEAR
SCALE = 50.929581789
STEPGEN_MAX_VEL = 300.0
STEPGEN_MAX_ACC = 2400.0
FERROR = 0.05
MIN_FERROR = 0.01
DIRSETUP = 20000
DIRHOLD = 20000
STEPLEN = 5000
STEPSPACE = 5000
DEADBAND = 0
P = 1000
I = 0
D = 0
FF0 = 0
FF1 = 1
FF2 = 0.00013
BIAS = 0
MAX_OUTPUT = 0
MAX_ERROR = 0.0127
HOME = 0
HOME_OFFSET = -100
HOME_SEARCH_VEL = -100
HOME_LATCH_VEL = -10
HOME_SEQUENCE = -1
HOME_USE_INDEX = False
HOME_IGNORE_LIMITS = True

[JOINT_1]
AXIS = X
MIN_LIMIT = -90
MAX_LIMIT = 1000
MAX_VELOCITY = 250
MAX_ACCELERATION = 1000
TYPE = LINEAR
SCALE = 50.929581789
STEPGEN_MAX_VEL = 300.0
STEPGEN_MAX_ACC = 2400.0
FERROR = 0.05
MIN_FERROR = 0.01
DIRSETUP = 20000
DIRHOLD = 20000
STEPLEN = 5000
STEPSPACE = 5000
DEADBAND = 0
P = 1000
I = 0
D = 0
FF0 = 0
FF1 = 1
FF2 = 0.00013
BIAS = 0
MAX_OUTPUT = 0
MAX_ERROR = 0.0127
HOME = 0
HOME_OFFSET = -100
HOME_SEARCH_VEL = -100
HOME_LATCH_VEL = -10
HOME_SEQUENCE = -1
HOME_USE_INDEX = False
HOME_IGNORE_LIMITS = True

[JOINT_2]
AXIS = Y
MIN_LIMIT = -90
MAX_LIMIT = 760
MAX_VELOCITY = 250
MAX_ACCELERATION = 1000
TYPE = LINEAR
SCALE = 50.929581789
STEPGEN_MAX_VEL = 300.0
STEPGEN_MAX_ACC = 2400.0
FERROR = 0.05
MIN_FERROR = 0.01
DIRSETUP = 20000
DIRHOLD = 20000
STEPLEN = 5000
STEPSPACE = 5000
DEADBAND = 0
P = 1000
I = 0
D = 0
FF0 = 0
FF1 = 1
FF2 = 0.00013
BIAS = 0
MAX_OUTPUT = 0
MAX_ERROR = 0.0127
HOME = 0
HOME_OFFSET = -100
HOME_SEARCH_VEL = -100
HOME_LATCH_VEL = -10
HOME_SEQUENCE = 1
HOME_USE_INDEX = False
HOME_IGNORE_LIMITS = True

[JOINT_3]
AXIS = Z
MIN_LIMIT = -94
MAX_LIMIT = 10
MAX_VELOCITY = 100
MAX_ACCELERATION = 1000
TYPE = LINEAR
SCALE = 400
STEPGEN_MAX_VEL = 120.0
STEPGEN_MAX_ACC = 1200.0
FERROR = 1
MIN_FERROR = 1
DIRSETUP = 20000
DIRHOLD = 20000
STEPLEN = 5000
STEPSPACE = 5000
DEADBAND = 0
P = 1000
I = 0
D = 0
FF0 = 0
FF1 = 1
FF2 = 0.00013
BIAS = 0
MAX_OUTPUT = 0
MAX_ERROR = 0.0127
HOME = 0
HOME_OFFSET = 20
HOME_SEARCH_VEL = 100
HOME_LATCH_VEL = 10
HOME_SEQUENCE = 0
HOME_USE_INDEX = False
HOME_IGNORE_LIMITS = True
Last edit: 28 Nov 2020 21:01 by Mud.

Please Log in or Create an account to join the conversation.

More
28 Nov 2020 21:28 #190552 by Lunkwill
I see you have them set to -1, which the docs say means that joint won't be homed at all. Is it a magic value in the case of dual axes that causes it to do the right thing?

Please Log in or Create an account to join the conversation.

More
28 Nov 2020 21:44 #190555 by Mud

Please Log in or Create an account to join the conversation.

More
28 Nov 2020 22:02 #190557 by tommylight

I see you have them set to -1, which the docs say means that joint won't be homed at all. Is it a magic value in the case of dual axes that causes it to do the right thing?

A single joint with -1 will not be homed normally, but both joints with -1 will be homed as second in the sequence, first being the one with 0 value. If you set any other joint with 1 in the homing sequence it will home together with two of the joints with -1 value.

Please Log in or Create an account to join the conversation.

More
28 Nov 2020 22:47 #190566 by Clive S

Here you go. Do you mean the HOME_SEARCH_VEL and HOME_LATCH_VEL? Yep, those are the same for both of the gantry joints.


No. as you see above it is the home sequence that has to have both joint for X the same -ve number.


HOME = 0.0 this is the final postition for home
HOME_OFFSET = -3.349 this is the value to offset the gantry square ie 0.1 etc. the sign will denote the direstion of travel
HOME_SEARCH_VEL = -1.0 this is the value of the speed to serch the sign will denote the direstion of travel
HOME_LATCH_VEL = 0.1 this is the slower speed to latch
HOME_USE_INDEX = NO
HOME_IGNORE_LIMITS = YES
HOME_SEQUENCE = 1 this has to be -ve so that both joints will be in sync

Please Log in or Create an account to join the conversation.

More
29 Nov 2020 01:31 #190580 by Lunkwill
Not sure what "-ve" means, but thanks for the explanations and links to the current docs. Setting the sequence numbers to -1 worked great.

Please Log in or Create an account to join the conversation.

More
29 Nov 2020 09:04 #190592 by Clive S

Not sure what "-ve" means, but thanks for the explanations and links to the current docs. Setting the sequence numbers to -1 worked great.


-ve just means negative. In other words 1 would be a positive number and -1 would be a negative number

Please Log in or Create an account to join the conversation.

Time to create page: 0.082 seconds
Powered by Kunena Forum