no option to home just Y axis on gantry with 2 Y motors

More
16 Feb 2022 20:47 - 16 Feb 2022 20:48 #235077 by dbotos
Thinking out loud about a possible two-pronged solution:

1) Have a script that runs when LinuxCNC starts that homes all axes (causes no actual movement the way I've got my config).  This will make Y able to be jogged.  Basically an automated pressing of the Home All button.  There's a halui pin called halui.home-all that sounds like it would do the trick.

2) Make the Home Y button do the following, in order:
     a) put LinuxCNC in joint mode (using halui pin halui.mode.joint)
     b) home joints 1 and 3 (Y1 and Y3) (what it's already coded to do)
     c) put LinuxCNC back in world mode (using halui pin halui.mode.teleop)
Last edit: 16 Feb 2022 20:48 by dbotos.

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

More
18 Feb 2022 22:19 #235291 by dbotos
Was getting close to figuring out how to accomplish with GladeVCP and a Python handler, but then I discovered it's as easy as:

1) setting kinstype=BOTH on the KINEMATICS line of the INI file

2) homing all (from the Machine menu) once you start LinuxCNC (takes you from joint mode into world mode and lets you jog)

3) homing either joint 1 or joint 3 (from the Machine menu) (either will home the Y axis)

Problem solved.

 
Attachments:

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

More
02 Mar 2022 18:56 #236206 by jtrantow
I'm not sure that's the best way to implement a gantry??? Will it safely home a racked gantry? What happens if your gantry is racked and your home positions aren't close to the switches and you use a faster HOME_FINAL_VEL than HOME_SEARCH_VEL or HOME_LATCH_VEL? A big advantage of gantry is waiting for both to find the home switch before going to the home position.

I just updated the configs/by_interface/parport/gantry in github's 2.8 branch.
gantry_joint.ini uses kinstype=BOTH and you can individually home each axis in joint mode. Once homed, it will let you move in world mode. Use this config with slow home velocities and keep your home position near the switch. Once you have your setup correct switch to gantry.ini.

gantry.ini uses the same .hal file but does NOT require mucking around in joint space. You will need to home all and use negative HOME_SEQUENCE values for the dual joints.

Previous gantry configs (in the 2.8.2 release) looked outdated. The updated examples:
1) Shows how to reduce coordinate dimensions Example: XYZA -> XYZY
2) Shows this change in [TRAJ] and [KINS] sections.
3) Shows proper use of negative HOME_SEQUENCE.
4) Optional changes adir,astep,etc to y2dir, y2step, y2 limits

I think this is the best practice for implementing a gantry machine.
The following user(s) said Thank You: tommylight, Aciera

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

More
02 Mar 2022 19:17 #236209 by jtrantow
Attached are files from latest github 2.8 branch configs/by_interface/parport/gantry.

Follow gantry_joints.ini if you want to home each Y axis individually during machine setup.
Follow gantry.ini once you have motors moving the correct directions and limit switches adjusted to remove racking. When you home just Y it will home both Y motors intelligently. No need for joint mode.

gantry.ini is a typical router setup. It will home Z to maximum first, then X to minimum, then Y and Y2.  My router homes X,Y,Y2 at the same time by setting [JOINT_1] and [JOINT_3] HOME_SEQUENCE -1. You could home all axis simultaneously, but I like to get spindle up before homing XY.
Attachments:

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

Time to create page: 0.072 seconds
Powered by Kunena Forum