LinuxCNC Dual-Head Gantry Setup Assistance Request

More
08 May 2025 17:24 #328021 by akim14
I need assistance setting up my dual-head gantry system in LinuxCNC. My current configuration has:
  • Limit switches at both ends of each axis
  • An additional center-position switch (to prevent collisions between the two gantry heads)
  • No dedicated home switches (just these limit switches)
I'm trying to understand:
  1. How to properly configure these limit switches to also function as home switches
  2. The correct way to set up homing for this dual-head gantry system
  3. How to implement the center-position switch to prevent collisions between heads
  4. Proper configuration in MESA CT for this setup
I've reviewed the documentation but am unclear about:
  • How to handle the limit switch configuration when there's no dedicated home switch
  • The best homing sequence for this dual-head arrangement
  • How to implement the center-position switch logic
Could someone experienced with similar setups please advise on:
  • The appropriate HAL and INI configurations
  • Best practices for homing in this scenario
  • Any special considerations for the MESA CT hardware
Thank you in advance for your help!

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

More
08 May 2025 18:28 #328023 by PCW
I would first take a look at:

linuxcnc.org/docs/html/config/ini-homing.html

You can share limit/home switches

It seems to me that rather than a center limit, you would do some math in hal
to assert a fault if the heads get too close to one another.

I would expect that specific support for a dual head gantry machine would have to be done
by direct editing of the hal/ini files, not something that a generic GUI setup can reasonably do.
 

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

More
09 May 2025 13:46 - 09 May 2025 13:48 #328069 by Todd Zuercher
Replied by Todd Zuercher on topic LinuxCNC Dual-Head Gantry Setup Assistance Request
I've set up a few multi head gantry machines, but the ones I was working with had fixed spacing between the heads. I've set them up using Z and W for axis for two head machines. But for a larger machine I set up that used 8 heads I used the new extra joints feature and controlled them all with the Z axis command, with each joint having separate offsets for tool lengths and the ability to enable/disable each spindle/head and when one was disabled it automatically would park raised up at it's home position.

I've thought about dual head machines with two heads on a common X or Y axis a little bit and can imagine couple of ways to handle it. One possible way that I think has merit would be to configure both heads with a common X with a U axis set up as the spacing between the two heads. This way an X axis command would move both heads in parralel motion, and U commands would vary the space between them. To set up this, if the joint arrangement is such that the two axis joints are totally independent (say each head is driven by motor turning a pinion gear on a common rack on the gantry.) the kinematics model would be joint0 = X position, and joint3 = X+U and revers kins X=J0 and U=J3-J0.

The advantage to this set up would be that the g code for milling out 2 parallel identical parts could be simple 3 axis xyz g-code. (This could be a big advantage if the current version of Linuxcnc still doesn't do advanced look-ahead tool planning for axis beyond XYZ especially if UVW are left out. That used to be the case a few years ago but may no longer be true and was the reason I set up my machines the way I did to allow commanding multiple Z axis with just a Z command instead of using Z and W...

But If you would want to do something different with both heads simultaneously, like for example cutting out mirror images of the same shape at the same time one on XYZ and the other on UYW. Then it would probably be better to have simple 1:1 kinematics with J0=X, J1=Y, J2=Z, J3=U, and J4=W. However this will make collision prevention more difficult than the U=J0+J3 model.
Last edit: 09 May 2025 13:48 by Todd Zuercher. Reason: Lack of proof reading
The following user(s) said Thank You: tommylight

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

Time to create page: 0.055 seconds
Powered by Kunena Forum