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 or Create an account 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 or Create an account 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 or Create an account to join the conversation.

More
5 years 11 months ago - 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
Last edit: 5 years 11 months ago by Mud.

Please Log in or Create an account 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 or Create an account to join the conversation.

More
5 years 11 months ago #190555 by Mud

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

Time to create page: 0.134 seconds
Powered by Kunena Forum