Homing with an indexer axis.
11 Jan 2024 17:26 #290438
by hpeyerl
Homing with an indexer axis. was created by hpeyerl
Still learning here.
My machine has an indexer on the A axis. X/Y are bed moves and Z is a tool move. I have separate xmin/xmax, ymin/ymax and zmin (top) switches wired to inputs on my 7i96s. I have homing working in that it first raises Z all the way up, then X all the way to the right, and Y all the way back (away from the front of the machine).
I'm following Figure 2 on this page (linuxcnc.org/docs/html/config/ini-homing.html) since that seems to match my setup.
My "problem" is that when X is up against xmin, the indexer is directly below my tool bit. If I set "HOME_OFFSET = 67", then it nicely moves the indexer out of the way so that I can then move Z down without interference until it touches the bed. But if I tell it to "G0 X0", it obediently moves the indexer back under the tool bit. This unfortunately happens almost immediately upon starting a job requiring frantic keyboard motions to stop the job.
Ideally the machine would translate X67 to X0 so that GCode can't crash my tool. Do I have to switch to something like G55 and create that offset there? Or do I need to reprogram my brain? or?
Here's the relevent(?) parts of my ini file. I've been playing with "HOME" and "HOME_OFFSET":
#******************************************
[AXIS_X]
MAX_VELOCITY = 33.333333333333336
MAX_ACCELERATION = 750.0
MIN_LIMIT = 0
MAX_LIMIT = 200.0
[JOINT_0]
TYPE = LINEAR
FERROR = 10.0
MIN_FERROR = 1.0
MAX_VELOCITY = 33.333333333333336
MAX_ACCELERATION = 750.0
# The values below should be 25% larger than MAX_VELOCITY and MAX_ACCELERATION
# If using BACKLASH compensation STEPGEN_MAXACCEL should be 100% larger.
STEPGEN_MAXVEL = 41.67
STEPGEN_MAXACCEL = 937.50
P = 1000.0
I = 0.0
D = 0.0
FF0 = 0.0
FF1 = 1.0
FF2 = 0.0
BIAS = 0.0
DEADBAND = 0.0
MAX_OUTPUT = 0.0
# these are in nanoseconds
DIRSETUP = 10000
DIRHOLD = 10000
STEPLEN = 6000
STEPSPACE = 6000
STEP_SCALE = -787.401
MIN_LIMIT = -0.01
MAX_LIMIT = 200.0
HOME = 67.0
HOME_OFFSET = -1.0
HOME_SEARCH_VEL = -40.000000
HOME_LATCH_VEL = -0.500000
HOME_FINAL_VEL = 0.000000
HOME_USE_INDEX = NO
HOME_SEQUENCE = 2
and here's a pretty picture of my machine.
My machine has an indexer on the A axis. X/Y are bed moves and Z is a tool move. I have separate xmin/xmax, ymin/ymax and zmin (top) switches wired to inputs on my 7i96s. I have homing working in that it first raises Z all the way up, then X all the way to the right, and Y all the way back (away from the front of the machine).
I'm following Figure 2 on this page (linuxcnc.org/docs/html/config/ini-homing.html) since that seems to match my setup.
My "problem" is that when X is up against xmin, the indexer is directly below my tool bit. If I set "HOME_OFFSET = 67", then it nicely moves the indexer out of the way so that I can then move Z down without interference until it touches the bed. But if I tell it to "G0 X0", it obediently moves the indexer back under the tool bit. This unfortunately happens almost immediately upon starting a job requiring frantic keyboard motions to stop the job.
Ideally the machine would translate X67 to X0 so that GCode can't crash my tool. Do I have to switch to something like G55 and create that offset there? Or do I need to reprogram my brain? or?
Here's the relevent(?) parts of my ini file. I've been playing with "HOME" and "HOME_OFFSET":
#******************************************
[AXIS_X]
MAX_VELOCITY = 33.333333333333336
MAX_ACCELERATION = 750.0
MIN_LIMIT = 0
MAX_LIMIT = 200.0
[JOINT_0]
TYPE = LINEAR
FERROR = 10.0
MIN_FERROR = 1.0
MAX_VELOCITY = 33.333333333333336
MAX_ACCELERATION = 750.0
# The values below should be 25% larger than MAX_VELOCITY and MAX_ACCELERATION
# If using BACKLASH compensation STEPGEN_MAXACCEL should be 100% larger.
STEPGEN_MAXVEL = 41.67
STEPGEN_MAXACCEL = 937.50
P = 1000.0
I = 0.0
D = 0.0
FF0 = 0.0
FF1 = 1.0
FF2 = 0.0
BIAS = 0.0
DEADBAND = 0.0
MAX_OUTPUT = 0.0
# these are in nanoseconds
DIRSETUP = 10000
DIRHOLD = 10000
STEPLEN = 6000
STEPSPACE = 6000
STEP_SCALE = -787.401
MIN_LIMIT = -0.01
MAX_LIMIT = 200.0
HOME = 67.0
HOME_OFFSET = -1.0
HOME_SEARCH_VEL = -40.000000
HOME_LATCH_VEL = -0.500000
HOME_FINAL_VEL = 0.000000
HOME_USE_INDEX = NO
HOME_SEQUENCE = 2
and here's a pretty picture of my machine.
Attachments:
Please Log in or Create an account to join the conversation.
11 Jan 2024 19:26 #290447
by spumco
Replied by spumco on topic Homing with an indexer axis.
Homing in LCNC can be confusing, no shame there.
I think what you want is to set HOME = 0, and HOME_OFFSET = 67 (or thereabouts).
Your homing process should then look like:
NOTE - yYou will need to change your X MAX_LIMIT value as well since the new travel distance between X0 and X hardstop will have changed by 67.
Two further suggestions:
I think what you want is to set HOME = 0, and HOME_OFFSET = 67 (or thereabouts).
Your homing process should then look like:
- Raise Z
- Move table close to you (Y0)
- Table moves right until switch is found (indexer under the spindle)
- Table then moves left 67mm and stops (indexer clear of spindle)
- DRO reads X0
NOTE - yYou will need to change your X MAX_LIMIT value as well since the new travel distance between X0 and X hardstop will have changed by 67.
Two further suggestions:
- Once you're happy with your setup & configuration, you can create a copy of your config and adjust the X HOME_OFFSET and MAX_LIMIT to give you full range of motion.
- In the event you want to machine something large and you take your indexer off the table you can start LCNC using the "large travels" config.
- You could fabricate a sub-table or bracket for your indexer that hangs it off the left side of the table a bit.
- That would give you your full range of motion without requiring any HOME_OFFSET creativity. You will lose a little Z-height, of course.
The following user(s) said Thank You: hpeyerl
Please Log in or Create an account to join the conversation.
12 Jan 2024 16:20 #290508
by hpeyerl
Replied by hpeyerl on topic Homing with an indexer axis.
Thanks. That seems to have done it. Although I'm confused how to modify the homing sequence so that it moves Y+ to a specific position first?
But you're right. I did wonder about relocating the indexer especially since the rh side of my build plate is inaccessible due to the stepper bolted under it so that's wasted space as well (except perhaps the future addition of a tail-stock).
Frankly, I haven't figured out what use-cases this machine would be good for in my world. It was given to me so I'm using it as a vehicle to learn LinuxCNC.
But you're right. I did wonder about relocating the indexer especially since the rh side of my build plate is inaccessible due to the stepper bolted under it so that's wasted space as well (except perhaps the future addition of a tail-stock).
Frankly, I haven't figured out what use-cases this machine would be good for in my world. It was given to me so I'm using it as a vehicle to learn LinuxCNC.
Please Log in or Create an account to join the conversation.
12 Jan 2024 18:19 #290516
by spumco
If you want Y to end up at a specific location after homing you will adjust the Y similar to X in the INI file.
Example
DRO will be "50" after everything is complete.
If you try this, be cautious the first time you do this as I may have gotten the values flipped pos/neg.
Replied by spumco on topic Homing with an indexer axis.
Thanks. That seems to have done it. Although I'm confused how to modify the homing sequence so that it moves Y+ to a specific position first?
If you want Y to end up at a specific location after homing you will adjust the Y similar to X in the INI file.
Example
- Y-axis travel extent = 0-100mm
- Y homes negative (table away from operator) and you want the minimum value to be Y0
- You want the table to finish the homing process in the middle of the travel range
- HOME = 50
- HOME_OFFSET = 50
- MAX_LIMIT = 100
- MIN_LIMIT = 0
- HOME_SEARCH_VEL = [negative speed value here]
- HOME_LATCH_VEL = [positive speed value here]
- HOME_FINAL_VEL
DRO will be "50" after everything is complete.
If you try this, be cautious the first time you do this as I may have gotten the values flipped pos/neg.
The following user(s) said Thank You: hpeyerl
Please Log in or Create an account to join the conversation.
13 Jan 2024 17:36 #290573
by hpeyerl
Replied by hpeyerl on topic Homing with an indexer axis.
That's very straight forward. I hadn't considered that rather obvious approach.
Thanks.
I removed the indexer this morning and made a new configuration. I actually kind of like the idea of mounting the indexer and a tailstock to a seperate assembly so I can clamp it down to my larger CNC when needed.
Thanks.
I removed the indexer this morning and made a new configuration. I actually kind of like the idea of mounting the indexer and a tailstock to a seperate assembly so I can clamp it down to my larger CNC when needed.
Please Log in or Create an account to join the conversation.
13 Jan 2024 20:11 #290583
by spumco
Or so I've read.
Replied by spumco on topic Homing with an indexer axis.
It's only 'rather obvious' when you've screwed it up a few times and (eventually) learn from your mistakes.That's very straight forward. I hadn't considered that rather obvious approach.
Or so I've read.
Please Log in or Create an account to join the conversation.
Time to create page: 0.162 seconds