Trying to share pin for 2 axis home and limit using debounce
17 Jul 2023 17:14 #275664
by reBrick
I have not had much luck finding examples of sharing input pins, there is one example that is not really explained on the wiki:
# connect pin 13 to all three max limits
net XYZ-max-lim parport.0.pin-13-in-not => axis.0.pos-lim-sw-in
axis.1.pos-lim-sw-in axis.2.pos-lim-sw-in
I am converting a knee mill and using knee as U and quill as Z with a parallel port bob and need to use a tool setter (probe and estop) so I have run out of pins. I am trying to share pin 11 for Z and U home and limit using debounce and I get joint 2 (z) limit error when homing U trips limit switch. I appreciate any pointers.
Attached are my hal and ini files...
# connect pin 13 to all three max limits
net XYZ-max-lim parport.0.pin-13-in-not => axis.0.pos-lim-sw-in
axis.1.pos-lim-sw-in axis.2.pos-lim-sw-in
I am converting a knee mill and using knee as U and quill as Z with a parallel port bob and need to use a tool setter (probe and estop) so I have run out of pins. I am trying to share pin 11 for Z and U home and limit using debounce and I get joint 2 (z) limit error when homing U trips limit switch. I appreciate any pointers.
Attached are my hal and ini files...
Attachments:
Please Log in or Create an account to join the conversation.
17 Jul 2023 19:54 #275675
by rodw
Replied by rodw on topic Trying to share pin for 2 axis home and limit using debounce
try:
net XYZ-max-lim <= parport.0.pin-13-in-not
net XYZ-max-lim => axis.0.pos-lim-sw-in
net XYZ-max-lim => axis.1.pos-lim-sw-in
net XYZ-max-lim => axis.2.pos-lim-sw-in
This is why I always like to use 2 lines in my hal assignments, you just never know when you want to use a pin more than once!
net XYZ-max-lim <= parport.0.pin-13-in-not
net XYZ-max-lim => axis.0.pos-lim-sw-in
net XYZ-max-lim => axis.1.pos-lim-sw-in
net XYZ-max-lim => axis.2.pos-lim-sw-in
This is why I always like to use 2 lines in my hal assignments, you just never know when you want to use a pin more than once!
Please Log in or Create an account to join the conversation.
17 Jul 2023 20:12 #275678
by reBrick
Replied by reBrick on topic Trying to share pin for 2 axis home and limit using debounce
That seems similar to the wiki, I am trying to understand how to apply this to my use case with debounce. Everything I have tried complains about pins already being assigned
I don't understand the hal syntax with multiple components on one side of an optional direction indication. This is from my hal file to combine z and u on one pin.
net debounce-home-zu debounce.0.3.in <= parport.0.pin-11-in
net min-home-z debounce.0.3.out
#net debounce-home-u debounce.0.4.in <= parport.0.pin-11-in
#net min-home-u debounce.0.4.out
I don't understand the hal syntax with multiple components on one side of an optional direction indication. This is from my hal file to combine z and u on one pin.
net debounce-home-zu debounce.0.3.in <= parport.0.pin-11-in
net min-home-z debounce.0.3.out
#net debounce-home-u debounce.0.4.in <= parport.0.pin-11-in
#net min-home-u debounce.0.4.out
Please Log in or Create an account to join the conversation.
18 Jul 2023 20:07 #275763
by reBrick
Replied by reBrick on topic Trying to share pin for 2 axis home and limit using debounce
Rod, thanks for the response. I didn't mean to sound unappreciative. I used your suggestion to split up the assignments and have the pins assigned the way I think they should be. When homing Z or U I get a joint error on the other joint sharing the switch.
net debounce-home-zu <= parport.0.pin-11-in
net debounce-home-zu => debounce.0.3.in
net home-zu <= debounce.0.3.out
net home-zu => joint.2.home-sw-in
net home-zu => joint.2.neg-lim-sw-in
net home-zu => joint.3.home-sw-in
net home-zu => joint.3.neg-lim-sw-in
I am using this on joints 2 and 3...
HOME_IGNORE_LIMITS = YES
HOME_IS_SHARED = 1
net debounce-home-zu <= parport.0.pin-11-in
net debounce-home-zu => debounce.0.3.in
net home-zu <= debounce.0.3.out
net home-zu => joint.2.home-sw-in
net home-zu => joint.2.neg-lim-sw-in
net home-zu => joint.3.home-sw-in
net home-zu => joint.3.neg-lim-sw-in
I am using this on joints 2 and 3...
HOME_IGNORE_LIMITS = YES
HOME_IS_SHARED = 1
Attachments:
Please Log in or Create an account to join the conversation.
19 Jul 2023 02:02 #275780
by rodw
Replied by rodw on topic Trying to share pin for 2 axis home and limit using debounce
This is what happens when you try to be sneaky
For each joint, there is a pin joint.N.homing OUT BIT TRUE if the joint is currently homing.
ref: linuxcnc.org/docs/2.9/html/man/man9/motion.9.html#JOINT%20PINS
So what you could try is to AND2 your home switch with this pin and use the output as your home switch input
So the home switch input will only be seen if the particular joint is homing. Thats now super sneaky and It should work!
For each joint, there is a pin joint.N.homing OUT BIT TRUE if the joint is currently homing.
ref: linuxcnc.org/docs/2.9/html/man/man9/motion.9.html#JOINT%20PINS
So what you could try is to AND2 your home switch with this pin and use the output as your home switch input
So the home switch input will only be seen if the particular joint is homing. Thats now super sneaky and It should work!
The following user(s) said Thank You: reBrick
Please Log in or Create an account to join the conversation.
19 Jul 2023 03:11 - 19 Jul 2023 16:27 #275785
by reBrick
Replied by reBrick on topic Trying to share pin for 2 axis home and limit using debounce
I remembered this statement "block the limit signals of the joints not homing in HAL and home one joint at a time" and found this thread...
forum.linuxcnc.org/38-general-linuxcnc-q...ther-joints-blocking
Using Stepconf and selecting "all limits and homes" for an input generates a working example using lut5
I was getting an error initially on homing U, but it kind of went away on its own, at least temporarily ("Home switch inactive before start of latch move").
I can now home all four axis and use my tool setter!
loadrt lut5
addf lut5.0 servo-thread
net debounce-home-zu <= parport.0.pin-11-in
net debounce-home-zu => debounce.0.3.in
net home-zu <= debounce.0.3.out
setp lut5.0.function 0x10000
net home-zu => lut5.0.in-2
net limit-zu <= lut5.0.out
net homing-z <= joint.2.homing => lut5.0.in-0
net homing-u <= joint.3.homing => lut5.0.in-1
net home-zu => joint.2.home-sw-in
net limit-zu => joint.2.neg-lim-sw-in
net limit-zu => joint.2.pos-lim-sw-in
net home-zu => joint.3.home-sw-in
net limit-zu => joint.3.neg-lim-sw-in
net limit-zu => joint.3.pos-lim-sw-in
forum.linuxcnc.org/38-general-linuxcnc-q...ther-joints-blocking
Using Stepconf and selecting "all limits and homes" for an input generates a working example using lut5
I was getting an error initially on homing U, but it kind of went away on its own, at least temporarily ("Home switch inactive before start of latch move").
I can now home all four axis and use my tool setter!
loadrt lut5
addf lut5.0 servo-thread
net debounce-home-zu <= parport.0.pin-11-in
net debounce-home-zu => debounce.0.3.in
net home-zu <= debounce.0.3.out
setp lut5.0.function 0x10000
net home-zu => lut5.0.in-2
net limit-zu <= lut5.0.out
net homing-z <= joint.2.homing => lut5.0.in-0
net homing-u <= joint.3.homing => lut5.0.in-1
net home-zu => joint.2.home-sw-in
net limit-zu => joint.2.neg-lim-sw-in
net limit-zu => joint.2.pos-lim-sw-in
net home-zu => joint.3.home-sw-in
net limit-zu => joint.3.neg-lim-sw-in
net limit-zu => joint.3.pos-lim-sw-in
Attachments:
Last edit: 19 Jul 2023 16:27 by reBrick. Reason: Adding samplecode
Please Log in or Create an account to join the conversation.
19 Jul 2023 07:52 #275797
by rodw
Replied by rodw on topic Trying to share pin for 2 axis home and limit using debounce
Good find. Interesting that Andy suggested AND2 initially.
Please Log in or Create an account to join the conversation.
Time to create page: 0.075 seconds