Dual Y servos on a 5 axis gantry router
- westveld
- Offline
- New Member
-
- Posts: 17
- Thank you received: 0

What is the best way to configure the Y axis?
Gantrykins?
I need active position control on both, I believe, even though they'll always be going to the same Y location
I'll likely be running the ubc3-7i80 branch.
Photos:
www.dropbox.com/sh/h8zfs0y3gb1u2ks/kVKFndHE3W
Please Log in or Create an account to join the conversation.
- PCW
-
- Online
- Moderator
-
- Posts: 18530
- Thank you received: 5079
but you should probably wait until someone with a servo
driven gantry weighs in, especially someone who has solved
the somewhat tricky homing issues.
I would strongly suggest _not_ starting a large
retrofit project with the Mesa Ethernet interface cards
yet as your task is difficult enough without adding more
unknowns.
Please Log in or Create an account to join the conversation.
- westveld
- Offline
- New Member
-
- Posts: 17
- Thank you received: 0
What would be a practical length limit for the 50 pin cables?
Thanks!
Please Log in or Create an account to join the conversation.
- westveld
- Offline
- New Member
-
- Posts: 17
- Thank you received: 0
What is the proper way to handle this today?
joints_axes6 branch?
If so - do I just pull that branch, compile it, and run it on a stock 2.6.3 install from live-cd ?
Thanks!
Please Log in or Create an account to join the conversation.
- DaBit
- Offline
- Platinum Member
-
- Posts: 446
- Thank you received: 35
Using gantrykins or JA4 would have been my preference. I even modified the homing code to synchronise the two Y joints movement during homing.
But in the end I got tired of all the little issues with a 4-axis configuration in LinuxCNC. It is possible to jog the joints independently (very, very dangerously), 'world' vs 'teleop' mode, somehow not being able to jog in steps, etcetera. So I decided to use a regular 3-axis trivial kinematics configuration and deal with the 2 Y joints externally.
Basically:
- Both Y joints run independant servo loops and are not mechanically connected.
- One Y-joint is the master and receives the motor-pos-cmd directly from motion.
- The other one receives the same motor position command, but through an 'offset' component. Setting the ofset can compensate for gantry racking.
- A 'comp' component watches the positions of both and throws an error when they deviate more than a given distance (+/- 0,5mm in my situation).
I did not yet implement automatic gantry squaring since there is no real need for it yet. My gantry is very stiff so it does not rack by itself anyway unless seriously abused. I once did the squaring by hand and from then on the linear scales attached to the gantry ensure that the gantry stays square.
I intend to add that automatic squaring at some point in the future using the index pulses of the scales, but these are too short to capture in software and the regular index-enable stuff is a royal pain in the ass too if you only want to latch the position where an index pulse occurred.
When I implement it, it will be with a component or bit of HAL logic that does something like 'I know the index pulse happens at -100,73mm, the joint position is now -100,78mm according to LinuxCNC, so I'll have to apply an offset of +0,05mm'.
A recent copy of my configuration files can be found here: www.linuxcnc.org/index.php/english/forum...uling?start=10#52435
Please Log in or Create an account to join the conversation.
- andypugh
-
- Away
- Moderator
-
- Posts: 23315
- Thank you received: 4944
I am not sure that is the case now. Perhaps I ought to investigate.
An alternative that I don't know much about is a gantry HAL component by Charles:
github.com/machinekit/machinekit/blob/ma...mponents/gantry.comp
It would need to be compiled/installed with "halcompile" to be used in LinuxCNC.
Please Log in or Create an account to join the conversation.
- DaBit
- Offline
- Platinum Member
-
- Posts: 446
- Thank you received: 35
My problem with that component is mainly this:
For best results, set HOME_SEARCH_VEL and HOME_LATCH_VEL to the same direction
and as slow as practical. When a joint home switch trips, the commanded
velocity will drop immediately from HOME_SEARCH_VEL to zero, with no limit on
accleration.
With any weight in the gantry that's a huge impulse applied to the ballscrew nut/bearings, etc.
Another thing is that the home switch locations must be equal and accurate. Since I desire <0,03mm/500mm squareness that's not really an option; mounting those switches in a stable and convenient location and telling the component where they are located exactly is far easier.
So that component is not the holy grail either and could use some improvements.
This is not complaining BTW: at least someone made something to solve the gantry problem and took the effort to put it in a repository where it is accessible for everybody. By now I have a few components that might be useful for others and all I have to do is once again figure out what the mascot name was and put them on the wiki. But I am just too lazy sometimes, so I have no rights to complain at all.
Please Log in or Create an account to join the conversation.
- andypugh
-
- Away
- Moderator
-
- Posts: 23315
- Thank you received: 4944
I have to do is once again figure out what the mascot name was
His name is "chips" the more industrial younger brother of "Tux"
(which is why the sample G-code file that carves a penguin is called "3dChips.ngc")
Please Log in or Create an account to join the conversation.
- DaBit
- Offline
- Platinum Member
-
- Posts: 446
- Thank you received: 35
I added two components to show good will

Some others need a bit more documentation than 'blah'
Please Log in or Create an account to join the conversation.
- tommy
- Offline
- Premium Member
-
- Posts: 125
- Thank you received: 2
www.linuxcnc.org/index.php/english/forum...setting-up-5axiskins
Please Log in or Create an account to join the conversation.