Homing Z wants to home X first.
I am running LinuxCNC build from source from the git repo (off the master branch, fresh as of 29 April 2019). I have home switches for X and Y and I home Z manually. The homing configuration in the ini file is: (I have removed lines not related to homing):
[KINS] JOINTS = 3 KINEMATICS = trivkins coordinates=XYZ [AXIS_X] MIN_LIMIT = -0.001 MAX_LIMIT = 612.0 [JOINT_0] TYPE = LINEAR HOME = 0.0 MIN_LIMIT = -0.001 MAX_LIMIT = 612.0 HOME_OFFSET = 0.000000 HOME_SEARCH_VEL = -6 HOME_LATCH_VEL = 1 HOME_SEQUENCE = 1 [AXIS_Y] MIN_LIMIT = -0.001 MAX_LIMIT = 522.0 [JOINT_1] TYPE = LINEAR HOME = 0.0 MIN_LIMIT = -0.001 MAX_LIMIT = 522.0 HOME_OFFSET = 0.000000 HOME_SEARCH_VEL = -6 HOME_LATCH_VEL = 1 HOME_SEQUENCE = 0 [AXIS_Z] MIN_LIMIT = -50.0 MAX_LIMIT = 75.0 [JOINT_2] TYPE = LINEAR MIN_LIMIT = -50.0 MAX_LIMIT = 75.0 HOME_OFFSET = 0.0 HOME_SEQUENCE = -1
X and Y home well. It homes Y first and then X. I do this by clicking on the "Home all" button in the AXIS UI. The issue is that when I manually home Z (by going to menu "Machine -> Homing -> Home Z Axis") it automatically homes X first (by bumping up to the X home switch). I don't want it to do this as not only is it dragging the bit on the spoil board (but only about .3mm) it means I cannot home Z anywhere but X=0.
Any help is appreciated.
I think that you may simply want to leave the Z axis home sequence undefined
See : linuxcnc.org/docs/devel/html/config/ini-....html#_home_sequence
I would set it up per the first example like this
[JOINT_0]HOME_SEQUENCE = 0 [JOINT_1]HOME_SEQUENCE = 0
This will home X & Y at the same time
The docs above say:
If HOME_SEQUENCE is not specified then the joint will not be homed by the HOME ALL sequence (but may be homed by individual joint-specific homing commands).
Your ini file did not seem to be set up for a gantry. If you have two motors on one axis, in master you will be better off running them as separate joints with something like:
KINEMATICS = trivkins coordinates=XYZY
and add another joint
Then set your home sequence to be -1 for both joints of the gantry.
The advantage of this config will be that the gantry will automatically square on homing and you can adjust squareness by changing the HOMING_OFFSET for each side.
The whole point of the new joint axis code is to separate joint config from axis config. The KINEMATICS statement defines which joint belongs to which axis. V 2.7 had hard coded mapping X, Y & Z axes to joints 0,1,2
For any normal machine with 3 axis and 3 motors ( or Joints as refered to in the 2.8 version of Linuxcnc ) it is mandatory to have the Z axis home first ( home_sequence = 0 ) and the other 2 axis ( X and Y ) can be both set to 1 or 2 or as you see fit.
This is to avoid moving the X and Y axis while the Z axis is low and could hit something.
allistar wrote: I have confirmed that this works well. Setting the homing sequence to Z=0, Y=1, X=2 works for my setup. The online documentation still says that to stop an axis from participating in homing it should have a negative sequence. I suppose this will be updated whenever the current master branch is officially released.
I'm sure you are reading the wrong docs. Here are the correct docs for homing linuxcnc.org/docs/devel/html/config/ini-....html#_home_sequence
Be sure you follow the link from the main linuxcnc page and select the correct branch for master. note the .../docs/devel/... in the URL above