- User Interfaces
- QtPyVCP
- 16 Pocket tool changer with PB and carousel.comp (Working config for reference)
16 Pocket tool changer with PB and carousel.comp (Working config for reference)
- Lcvette
- Away
- Moderator
Less
More
- Posts: 1155
- Thank you received: 614
17 Jun 2023 18:39 #273750
by Lcvette
Replied by Lcvette on topic 16 Pocket tool changer with PB and carousel.comp (Working config for reference)
yes, more than what i was expecting in an answer..lol very interesting for certain! I was putting a atc together for a smaller machine and was considering using a stepper motor with a dumb step generator but also considered using the carousel component, was just curious if the stepper drive connections were gpio or to axis step gen output. was fuzzy on that. but you cleared it up! thank you!
Please Log in or Create an account to join the conversation.
- spumco
- Offline
- Platinum Member
Less
More
- Posts: 1804
- Thank you received: 727
18 Jun 2023 00:33 #273762
by spumco
Replied by spumco on topic 16 Pocket tool changer with PB and carousel.comp (Working config for reference)
No problem, you've helped me out so much over the past couple of years.
Side note on steppers with ATC's... If you're using a geneva drive with a stepper & carousel.comp, no problem. The encoding scheme required by all the modes will ensure the pockets are aligned or carousel will never output a 'ready' signal to the M68 safety check.
But I'd be very reluctant to use an open-loop stepper + reducer in counts mode. There's no feedback to carousel that the ATC rotated properly if you are only using the index pin to home (and no other sensors). Lost steps would be bad here... which is why my closed-loop stepper alarm-out is tied to LCNC's estop.
Side note on steppers with ATC's... If you're using a geneva drive with a stepper & carousel.comp, no problem. The encoding scheme required by all the modes will ensure the pockets are aligned or carousel will never output a 'ready' signal to the M68 safety check.
But I'd be very reluctant to use an open-loop stepper + reducer in counts mode. There's no feedback to carousel that the ATC rotated properly if you are only using the index pin to home (and no other sensors). Lost steps would be bad here... which is why my closed-loop stepper alarm-out is tied to LCNC's estop.
The following user(s) said Thank You: Lcvette
Please Log in or Create an account to join the conversation.
- GuiHue
- Topic Author
- Offline
- Premium Member
Less
More
- Posts: 103
- Thank you received: 36
19 Jun 2023 09:15 #273831
by GuiHue
Replied by GuiHue on topic 16 Pocket tool changer with PB and carousel.comp (Working config for reference)
Apologies for having missed your post.
Spumco did a great job summarizing things.
I am using a closed loop stepper with a 1:80 reduction. However, I have opted against count mode (Although that likely would have been fine and setup of the ini position would have shifted from mechanical fiddling to software offsets). However, since steppers are mighty convenient (and I had some left over), I opted to use it anyways. In may case carousel.comp is run in index mode and communicates with the stepper using velocity mode. This gives me a good amount of control with different velocities while not having to rely on the stepper being accurate. I made sure to place the pocket index markers (M6 SHCS) while milling the top carousel plate and hence there is little trouble to be expected from that.
Spumco did a great job summarizing things.
I am using a closed loop stepper with a 1:80 reduction. However, I have opted against count mode (Although that likely would have been fine and setup of the ini position would have shifted from mechanical fiddling to software offsets). However, since steppers are mighty convenient (and I had some left over), I opted to use it anyways. In may case carousel.comp is run in index mode and communicates with the stepper using velocity mode. This gives me a good amount of control with different velocities while not having to rely on the stepper being accurate. I made sure to place the pocket index markers (M6 SHCS) while milling the top carousel plate and hence there is little trouble to be expected from that.
The following user(s) said Thank You: Lcvette
Please Log in or Create an account to join the conversation.
- spumco
- Offline
- Platinum Member
Less
More
- Posts: 1804
- Thank you received: 727
24 Jul 2023 15:26 #276156
by spumco
Replied by spumco on topic 16 Pocket tool changer with PB and carousel.comp (Working config for reference)
@GuiHue-
I'm starting to port your index-mode carousel config to replace my counts-mode config. First thing I noticed is that carousel.0.enable appears to be commented out.
From atc.hal:
Did I miss an un-commented net connection somewhere in another hal file? How is carousel.0.enable triggered?
I'm starting to port your index-mode carousel config to replace my counts-mode config. First thing I noticed is that carousel.0.enable appears to be commented out.
From atc.hal:
# Carousel Setup
# Signals
# Enable is required to turn the whole thing on
#net carenable carousel.0.enable
# Index = home
net DI-ATC-home carousel.0.sense-0
# Pocket = pocket signal
net DI-ATC-pocket carousel.0.sense-1
# Setup Write Signales
net carousel_enable carousel.0.enable
net carousel_jog-fwd carousel.0.jog-fwd
net carousel_jog-rev carousel.0.jog-rev
net carousel_force-unhome carousel.0.unhome
net carousel_motor-vel carousel.0.motor-vel [HMOT](CARD0).stepgen.05.velocity-cmd
net carousel_pocket-number carousel.0.pocket-number
#conv-s32-float.atc-pocket.in
# Setup READ Signals
net carousel_homed carousel.0.homed
net carousel_ready carousel.0.ready
net carousel_current-position carousel.0.current-position conv-s32-float.atc-pocket.in
# Trigger homing of atc with homing of machine
net carousel_home-auto halui.mdi-command-17 joint.0.homed
Did I miss an un-commented net connection somewhere in another hal file? How is carousel.0.enable triggered?
Please Log in or Create an account to join the conversation.
- GuiHue
- Topic Author
- Offline
- Premium Member
Less
More
- Posts: 103
- Thank you received: 36
25 Jul 2023 07:22 #276206
by GuiHue
Replied by GuiHue on topic 16 Pocket tool changer with PB and carousel.comp (Working config for reference)
Hi spumco,
yes, you did miss something. Snippet above has a link of carousel.0.enable to a signal (carousel_enable). This signal is used by custom m_codes. See for instance M111: github.com/GuiHue/kondor/blob/main/m_codes/M111
Enable is frequently used to actually trigger the carousel component. Accordingly, I have placed halcmd sets carousel_enable all over the place.
yes, you did miss something. Snippet above has a link of carousel.0.enable to a signal (carousel_enable). This signal is used by custom m_codes. See for instance M111: github.com/GuiHue/kondor/blob/main/m_codes/M111
Enable is frequently used to actually trigger the carousel component. Accordingly, I have placed halcmd sets carousel_enable all over the place.
The following user(s) said Thank You: spumco
Please Log in or Create an account to join the conversation.
- spumco
- Offline
- Platinum Member
Less
More
- Posts: 1804
- Thank you received: 727
25 Jul 2023 13:14 #276222
by spumco
Replied by spumco on topic 16 Pocket tool changer with PB and carousel.comp (Working config for reference)
Thank you. It makes sense now that you've explained it, but it never occurred to me you could trigger hal pins like you've done.
Is there some benefit to the way you've done it vs connecting to motion.digital-out-N?
If you don't mind, I've a related question...
Looks like you've defined all your ATC motion.digital-in-NN pins in your INI file, and are then using the INI file definition as a variable in the appropriate subroutine(s).
Why did you prefer this method vs. linking the hal pin to motion.digital-in-NN in a hal file?
Is there some benefit to the way you've done it vs connecting to motion.digital-out-N?
If you don't mind, I've a related question...
Looks like you've defined all your ATC motion.digital-in-NN pins in your INI file, and are then using the INI file definition as a variable in the appropriate subroutine(s).
Why did you prefer this method vs. linking the hal pin to motion.digital-in-NN in a hal file?
Please Log in or Create an account to join the conversation.
- GuiHue
- Topic Author
- Offline
- Premium Member
Less
More
- Posts: 103
- Thank you received: 36
26 Jul 2023 14:32 #276307
by GuiHue
Replied by GuiHue on topic 16 Pocket tool changer with PB and carousel.comp (Working config for reference)
Good questions. Originally I just wanted to play with custom mcodes.
It turns out, that thi sis a very readable and clean way of doing things. M11 is much short and easier to use manually than an M65 statement. Furthermore, it allows to combine setting multiple signals at a time. Also, you can use P words etc.
Sidenote: I did have troubles with M65 motion.digitial-in/out in the past, though I could never reliablly reproduce those issues. It usually works just fine.
It turns out, that thi sis a very readable and clean way of doing things. M11 is much short and easier to use manually than an M65 statement. Furthermore, it allows to combine setting multiple signals at a time. Also, you can use P words etc.
Sidenote: I did have troubles with M65 motion.digitial-in/out in the past, though I could never reliablly reproduce those issues. It usually works just fine.
The following user(s) said Thank You: spumco
Please Log in or Create an account to join the conversation.
- spumco
- Offline
- Platinum Member
Less
More
- Posts: 1804
- Thank you received: 727
26 Jul 2023 19:41 #276320
by spumco
Replied by spumco on topic 16 Pocket tool changer with PB and carousel.comp (Working config for reference)
Gotcha.
I did remember & review the user M-code section of the manual after your reply.
So if you don't mind continuing my education...
As I understand it remap passes the pocket number as float, and carousel needs an S32. That's why I need to use motion.analog-out through a conv-float-s32 comp to carousel.N.pocket-number in my config.
How does this accomplish the same thing?
Specifically, the pocket=${1/.*} line. I get that $pocket is what's passed through as "P" in the parent g-code, but I don't understand the first line.
Do you know where I might find more info about this sort of thing in the user guide?
I did remember & review the user M-code section of the manual after your reply.
So if you don't mind continuing my education...
As I understand it remap passes the pocket number as float, and carousel needs an S32. That's why I need to use motion.analog-out through a conv-float-s32 comp to carousel.N.pocket-number in my config.
How does this accomplish the same thing?
pocket=${1/.*}
halcmd sets carousel_pocket-number $pocket
Specifically, the pocket=${1/.*} line. I get that $pocket is what's passed through as "P" in the parent g-code, but I don't understand the first line.
Do you know where I might find more info about this sort of thing in the user guide?
Please Log in or Create an account to join the conversation.
- GuiHue
- Topic Author
- Offline
- Premium Member
Less
More
- Posts: 103
- Thank you received: 36
26 Jul 2023 20:42 #276322
by GuiHue
Replied by GuiHue on topic 16 Pocket tool changer with PB and carousel.comp (Working config for reference)
Hi spumco,
I have to pass on where to find more information in the user guide. As for the float to s32 thing: I came across this as well and got briefly stopped in my efforts. Then I remembered that custom mcodes are based on bash files on linux. Since bash scripts can do just about anything, going from float to int is possible as well. I id a short search and found this . Basically the ${1/.*} does it all. How? - beats me;).
I have to pass on where to find more information in the user guide. As for the float to s32 thing: I came across this as well and got briefly stopped in my efforts. Then I remembered that custom mcodes are based on bash files on linux. Since bash scripts can do just about anything, going from float to int is possible as well. I id a short search and found this . Basically the ${1/.*} does it all. How? - beats me;).
Please Log in or Create an account to join the conversation.
- spumco
- Offline
- Platinum Member
Less
More
- Posts: 1804
- Thank you received: 727
27 Jul 2023 03:23 #276346
by spumco
Replied by spumco on topic 16 Pocket tool changer with PB and carousel.comp (Working config for reference)
I found a similar link soon after I asked the question, but as you say I can't figure out how this magic stuff works.
I guess I'll press the 'I believe' button and keep bash script capabilities in mind for future use.
Thanks again for the assist.
I guess I'll press the 'I believe' button and keep bash script capabilities in mind for future use.
Thanks again for the assist.
Please Log in or Create an account to join the conversation.
Moderators: KCJ, Lcvette
- User Interfaces
- QtPyVCP
- 16 Pocket tool changer with PB and carousel.comp (Working config for reference)
Time to create page: 0.102 seconds