Dead in the water on 7i92 config
In Joint mode, I could set the XHC's dial to X, Y, or Z and turn the handwheel and X, Y, or Z moved. It was a very slow move and the "Step ++" button to change the step speed did nothing.
Honestly I'm not clear on what "Incremental" jog is. A jog wheel, however, is going to mean moving the commanded position +0.1", +0.2", +0.3", +0.4", +0.5"... incrementally. As opposed to "G91 G0 X0.5" = move X +0.5 from wherever it is now. Or "right arrow", being "keep moving as long as this arrow is held, then decelerate when released" which is not a specific destination.
I did see that G91- which I know as "relative mode", is referred to as "incremental mode". But all 3 examples above are all relative to the current position.
Is "incremental jogging" the fact that you've got incremental step, step, step off the jog wheel? But even if it didn't handle it as I'd like, it'd be basically implemented as a string of "G91 G0 X0.1" commands, which is awkward because that would seem to require fullstop after each one.
Please Log in or Create an account to join the conversation.
You can _not_ use a jogwheel in World Mode with a non-trivial kinematics in the released version of LinuxCNC.
You can use a jogwheel if you use the joints_axes12 branch of LinuxCNC.
You can use a jogwheel if you use a trivial kinematics and link the axes using the "gantry" HAL module.
linuxcnc.org/docs/2.7/html/man/man9/gantry.9.html
Please Log in or Create an account to join the conversation.
- Todd Zuercher
- Offline
- Platinum Member
- Posts: 5007
- Thank you received: 1441
Honestly I'm not clear on what "Incremental" jog is. A jog wheel, however, is going to mean moving the commanded position +0.1", +0.2", +0.3", +0.4", +0.5"... incrementally. As opposed to "G91 G0 X0.5" = move X +0.5 from wherever it is now. Or "right arrow", being "keep moving as long as this arrow is held, then decelerate when released" which is not a specific destination.
I did see that G91- which I know as "relative mode", is referred to as "incremental mode". But all 3 examples above are all relative to the current position.
Is "incremental jogging" the fact that you've got incremental step, step, step off the jog wheel? But even if it didn't handle it as I'd like, it'd be basically implemented as a string of "G91 G0 X0.1" commands, which is awkward because that would seem to require fullstop after each one.
A jog wheel move is essentially a series of incremental jogs, hence why it doesn't work. Listen to Andy, he is one of the smarter, most helpful people on the forum.
Please Log in or Create an account to join the conversation.
I need Joint 0 and Joint 3 tied together as the X axis, with the ability to home each side to resolve racking.
"loadrt trivkins" works. It appears I need to find the source code for trivkins somewhere, alter it, and recompile somehow?
Please Log in or Create an account to join the conversation.
"loadrt trivkins" works. It appears I need to find the source code for trivkins somewhere, alter it, and recompile somehow?
No, that is all you need to do.
Then you need to link the axes using the "gantry" component, as described in the man page, and as done in the sample configuration.
Please Log in or Create an account to join the conversation.
I don't quite follow, I don't see anything about a "gantry" component. Where would a sample config be?
Please Log in or Create an account to join the conversation.
- Todd Zuercher
- Offline
- Platinum Member
- Posts: 5007
- Thank you received: 1441
linuxcnc.org/docs/2.7/html/man/man9/gantry.9.html
It was just added in version 2.7.4 and I don't think there is any mention of it in the regular documentation. But I think there may be an example config somewhere.
That said the man page makes it look like setting it up shouldn't be too hard even without an example.
Please Log in or Create an account to join the conversation.
The example I found is wiki.linuxcnc.org/cgi-bin/wiki.pl?GantryPlasmaMachine
It uses 2x steppers on Y, and trivkins, but there's no gantry.anything going on here. What I did see was:
#Y2 signal setup:
#Mod to slave Y(1) and Y2:
net Y2.pos-fb hm2_7i43.0.encoder.03.position => pid.3.feedback
net Y2.pos-out pid.3.output => hm2_7i43.0.stepgen.03.velocity-cmd
# Add an offset to the position command to remove racking.
# No offset when homing, but apply after homing to adjust the homed error
net Y.pos-cmd axis.1.motor-pos-cmd => sum2.6.in0
setp sum2.6.gain0 1
setp sum2.6.gain1 1
setp sum2.6.offset 0
net home-status mux2.8.sel
setp mux2.8.in0 [AXIS_3]ANTI_RACK_POSITION_OFFSET
setp mux2.8.in1 0
net Y2Offset mux2.8.out sum2.6.in1
net Y2.pos-cmd sum2.6.out pid.3.command
And I don't know if that's some off-label hack or the way it's done or what. The pos-fb and pos-out are just the pid.3 and stepgen.03, not tied to the Y1's pid/stepgen 01 instance. So the "net Y.pos-cmd axis.1.motor-pos-cmd => sum2.6.in0" seems to be where the magic happens.
But the way that summing and anti-racking works is still unclear to me. It's got me concerned about just copying in something where I don't understand most of the code and I don't need the anti-racking homing just yet- but will eventually.
Current .hal file enclosed, just because.
Please Log in or Create an account to join the conversation.
I will try one more time, but this really is feeling like talking to a brick wall.
The gantry HAL component manpage is here:
linuxcnc.org/docs/2.7/html/man/man9/gantry.9.html
The sample config is here:
github.com/cdsteinkuehler/linuxcnc/blob/...e/Probotix/Comet.hal
Please Log in or Create an account to join the conversation.
What I get is that the pin hm2_[HOSTMOT2](BOARD).stepgen.00.position-cmd isn't found. I've looked through all that and yeah stepgen uses position-fb and velocity-cmd. Not sure where to go from here. Pretty suspicious I've screwed up more things than that.
Please Log in or Create an account to join the conversation.