Trying to share pin for 2 axis home and limit using debounce

More
3 years 3 months ago #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...

Attachment not found


Attachment not found

Please Log in to join the conversation.

More
3 years 3 months ago #275675 by rodw
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! 

Please Log in to join the conversation.

More
3 years 3 months ago #275678 by reBrick
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

Please Log in to join the conversation.

More
3 years 3 months ago #275763 by reBrick
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

Attachment not found

 

Attachment not found


 

Please Log in to join the conversation.

More
3 years 3 months ago #275780 by rodw
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!

Please Log in to join the conversation.

More
3 years 3 months ago #275785 by reBrick
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

Attachment not found


Attachment not found

Please Log in to join the conversation.

More
3 years 3 months ago #275797 by rodw
Good find. Interesting that Andy suggested AND2 initially.

Please Log in to join the conversation.

Time to create page: 0.190 seconds
Powered by Kunena Forum