ATC on grblHAL? Anyone cracked the code yet? #577
Replies: 10 comments 12 replies
-
Hi @massiveradiation
Once you go through the discussion, I hope you will be able to do it yourself. However there might be practical issues for which you can post here. You can also read this wiki page about Expressions and Flow Control in grblHAL. |
Beta Was this translation helpful? Give feedback.
-
I'm excited to dig in!
Thanks Ravi.
…On Sat, Aug 31, 2024, 11:46 Ravi Karoria ***@***.***> wrote:
Hi @massiveradiation <https://github.com/massiveradiation>
There are 2 ways to implement ATC in grblHAL:
1. Traditional method using plugin code specific to your application
for which wiki is already in place.
2. Using "tc.macro" file and enabling expressions and flow control in
compile time option. This method is very simple and requires no coding
knowledge. All you need to do is write a macro file just like a gcode
program and with some expressions. For details please go through the discussiin
here <#309>
Once you go through the discussion, I hope you will be able to do it
yourself. However there might be practical issues for which you can post
here.
—
Reply to this email directly, view it on GitHub
<#577 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AGUKYUXBQP3PCBHXQTMHRL3ZUHQOFAVCNFSM6AAAAABNN4EJLWVHI2DSMVQWIX3LMV43URDJONRXK43TNFXW4Q3PNVWWK3TUHMYTANJQG43DMMI>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
Beta Was this translation helpful? Give feedback.
-
Yes and forgot to mention that there are commands to trigger outputs or wait for inputs which you can use inside tc.macro by which you can operate tool clamp/declamp, air blast to remove chips, etc. |
Beta Was this translation helpful? Give feedback.
-
Here is video of my ATC mill with rotary axis running grblHAL. |
Beta Was this translation helpful? Give feedback.
-
Impressive! Bravo!
…On Sat, Aug 31, 2024, 13:50 Ravi Karoria ***@***.***> wrote:
Here is video of my ATC mill with rotary axis running grblHAL.
https://youtu.be/IZoj1mqmCWU?si=nuoyFeowB3bck2d0
—
Reply to this email directly, view it on GitHub
<#577 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AGUKYUXU3M7PEAQGDDR7Z6DZUH657AVCNFSM6AAAAABNN4EJLWVHI2DSMVQWIX3LMV43URDJONRXK43TNFXW4Q3PNVWWK3TUHMYTANJQHAYTMNY>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
Beta Was this translation helpful? Give feedback.
-
Hey Ravi,
Is there a particular grblHAL board you recommend? I'm looking at Phil's
board as it seems to have the most I/O:
https://www.tindie.com/products/philba/grblhal-bob-unkit-for-teensy-41-t41u5xbb/
Thoughts?
…On Thu, Sep 5, 2024 at 9:23 AM Terje Io ***@***.***> wrote:
These M codes works in a normal program file also.
There is a difference though, when reading an input with M66 the result
from the last execution is available in parameter 5399
<https://github.com/grblHAL/core/wiki/Expressions-and-flow-control#numbered-parameters>
- and this can then be used for macro flow control.
—
Reply to this email directly, view it on GitHub
<#577 (reply in thread)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AGUKYUUQPDWLOJZ3L6I3KSDZVBLNLAVCNFSM6AAAAABNN4EJLWVHI2DSMVQWIX3LMV43URDJONRXK43TNFXW4Q3PNVWWK3TUHMYTANJVG43TMOA>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
Beta Was this translation helpful? Give feedback.
-
Yes. I use my customized board. But phils boards are best as they are very well designed. One factor to consider is, whether you want to send gcode via ethernet cable or usb cable? Phil's boards have both options available. Be sure to check that the sender you want to use supports sending via ethernet, if you choose so. USB is default supported by most senders. |
Beta Was this translation helpful? Give feedback.
-
Hey folks, That said, I'd love to see a web builder page for ATC configuration, similar to the grblHAL builder, which would create a tc.macro file. Masso has this built into their controllers. Maybe if you check a box for ATC it brings up a sub menu. when compiled you get both the hex and tc.macro file, which goes on the sdcard as I understand it. The following are some ideas for potential prompts: Type of ATC?: LINEAR (tool holders in a line either on X or Y axis)
-Number of tool holders? TOOL HOLDER COORDINATES for DROP type: Z tool holder TOP height (position spindle must raise to in order to safely move over tool holders. TOOL #1
TOOL #2
TLO touch off type (SHARED WITH PROBE NC?)
AIR BLOW OFF SOLENOID? PNEUMATIC CONTROLS:
HOLD SPINDLE MOVEMENT WHEN SEATING TOOL HOLDER? SOLENOID #4: BLOW OUT ATC SPINDLE CHAMBER: ETC: Any takers on this? I'd be willing to throw some motivation money at it. |
Beta Was this translation helpful? Give feedback.
-
Hi @massiveradiation @Switch-Witch
|
Beta Was this translation helpful? Give feedback.
-
Thank you so much for this! I've been sidelined from this project, but
intend to jump back in.
…On Fri, Nov 15, 2024, 05:01 Ravi Karoria ***@***.***> wrote:
Hi @massiveradiation <https://github.com/massiveradiation> @Switch-Witch
<https://github.com/Switch-Witch>
Here is my tc.macro file for my 6 linear tool magazine machine. There are
no checks for actual tool gripping/ungripping or other inputs so be
cautious using this. This will give you a good start but consider adding
inputs at appropriate locations where checking is must.
(debug,Changing tool #<_current_tool> to tool #<_selected_tool>)
; save current position
#100=#<_x>
#101=#<_y>
#102=#<_z>
#103=#<_spindle_on> ;saving spindle status in a variable
#104=#<_flood> ;saving coolant status in a variable
;tool change code here
G0 G53 Z0
M5 ;stop spindle
M9 ;stop coolant
;program for tool length reference if machine hasn't performed it or undergone soft reset
O301 if [#5070 NE 1]
G0 G53 X-5 Y-28; go to touch off probe coordinates
G0 G53 Z-71 ; rapid down till a safe distance for sensing
G91 G38.2 Z-60 F1000 ; seek down to Z touch off with speed
G91 G0 Z3 ; bounce back 3mm, still in G91
G91 G38.2 Z-3 F100 ; precise touch off for getting #5063 value written in machine memory
G90
G04 P0.1
(debug,Z referenced at #5063)
G0 G53 Z0
O301 endif
#107=#5063 ; save last touch off value in a variable
O101 if [#<_current_tool> EQ 1]
G0 G53 X-287.5 Y-32 ; move to tool rack position #1
O101 elseif [#<_current_tool> EQ 2]
G0 G53 X-241.5 Y-32 ; move to tool rack position #2
O101 elseif [#<_current_tool> EQ 3]
G0 G53 X-195.3 Y-32 ; move to tool rack position #3
O101 elseif [#<_current_tool> EQ 4]
G0 G53 X-149.1 Y-32 ; move to tool rack position #4
O101 elseif [#<_current_tool> EQ 5]
G0 G53 X-102.8 Y-32 ; move to tool rack position #5
O101 elseif [#<_current_tool> EQ 6]
G0 G53 X-56.4 Y-32 ; move to tool rack position #6
O101 endif
O301 if [#<_current_tool> LE 5]
G0 G53 Z-121.9
G0 G53 Y-8.4
O301 elseif [#<_current_tool> GT 5]
G0 G53 Z-120.8
G0 G53 Y-8.4
O301 endif
G04 P0.1 ; pause for syncing immediate output on/off
M64 P1 ; release current tool
G04 P1 ; pause for 1 second so that pneumatics come to final stroke position
G0 G53 Z-50 ; z axis up after tool release
O201 if [#<_selected_tool> EQ 1]
G0 G53 X-287.5 ; move to tool rack position #1
O201 elseif [#<_selected_tool> EQ 2]
G0 G53 X-241.5 ; move to tool rack position #2
O201 elseif [#<_selected_tool> EQ 3]
G0 G53 X-195.3 ; move to tool rack position #3
O201 elseif [#<_selected_tool> EQ 4]
G0 G53 X-149.1 ; move to tool rack position #4
O201 elseif [#<_selected_tool> EQ 5]
G0 G53 X-102.8 ; move to tool rack position #5
O201 elseif [#<_selected_tool> EQ 6]
G0 G53 X-56.4 ; move to tool rack position #6
O201 endif
G04 P0.1 ; pause for syncing immediate output on/off
M64 P2 ; air blow for cleaning on
G0 G53 Z-117
O401 if [#<_selected_tool> LE 5]
G1 G53 Z-121.9 F2000
O401 elseif [#<_selected_tool> GT 5]
G1 G53 Z-120.8 F2000
O401 endif
G04 P0.1 ; pause for syncing immediate output on/off
M65 P1 ; grip new tool
G04 P1 ; pause for 1 second to settle the pneumatics
M61Q#<_selected_tool> ; set new tool as current
G0 G53 Y-32.0
G04 P0.2
M65 P2 ; air blow off
G0 G53 Z0
; touch off probing
G0 G53 X-5 Y-28 ; go to touch off probe coordinates
G0 G53 Z-71 ; rapid down till a safe distance for sensing
G91 G38.2 Z-60 F1000 ; seek down to Z touch off with speed
G91 G0 Z3 ; bounce back 3mm, still in G91
G91 G38.2 Z-3 F100 ; precise touch off
G90
G04 P0.1
(debug,Z Probed at #5063)
G0 Z[#5063]
G10 L20 P0 Z[#107]
G0 G53 Z0
; return to original position
G0 X#100 Y#101
O202 if [#103 EQ 1] ; restore spindle status
M3
O202 endif
O203 if [#104 EQ 1] ; restore coolant status
M8
O203 endif
G0 Z#102
M99
—
Reply to this email directly, view it on GitHub
<#577 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AGUKYUXFHLC3CLESBIZIZS32AXBBFAVCNFSM6AAAAABNN4EJLWVHI2DSMVQWIX3LMV43URDJONRXK43TNFXW4Q3PNVWWK3TUHMYTCMRWGUYDKNY>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
Beta Was this translation helpful? Give feedback.
-
Hello,
Has anyone had any success implementing grblHAL with an ATC setup? I have a proper ATC router which requires two solenoids, one for tool holder release and one for seating. The spindle also has two PNP sensors built in for tool holder seated and tool holder missing. I'd also like to have a solenoid blow off the tool setter. So, I'd need three additional outputs for relays to pop the solenoids and two inputs for tool holder in/out safety checking.
The hard part is the programming! I'm not a coder. I see that the good folks at RapidCNC have done this for their custom ATC, but no one seems to have the golden ticket for a pneumatic ATC spindle.
I'd be happy to pay someone to develop this and then it could be offered up to the public. Or, if someone knows where I can find grblHAL firmware for ATC, I'm all ears!
Thank you,
Tyler
Beta Was this translation helpful? Give feedback.
All reactions