Dual gantry stepper homing with uneven switches

More
5 years 11 months ago #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 to join the conversation.

More
5 years 11 months ago #190495 by Clive S

Lunkwill wrote: 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 to join the conversation.

More
5 years 11 months ago #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.

Please Log in to join the conversation.

More
5 years 11 months ago #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).
Code:
[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

Please Log in to join the conversation.

More
5 years 11 months ago #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 to join the conversation.

More
5 years 11 months ago #190555 by Mud

Please Log in to join the conversation.

More
5 years 11 months ago #190557 by tommylight

Lunkwill wrote: 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 to join the conversation.

More
5 years 11 months ago #190566 by Clive S

Lunkwill wrote: 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 to join the conversation.

More
5 years 11 months ago #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 to join the conversation.

More
5 years 11 months ago #190592 by Clive S

Lunkwill wrote: 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 to join the conversation.

Time to create page: 0.102 seconds
Powered by Kunena Forum