Electrical Probe for CNC

This is just an update on my progress with using a touch plate to set the Z height on my CNC using Mach3.

I wired this using the wiring diagram from post #1 and the info from post #6 "How to setup touch plate.doc" posted by acourtjester.
It's working great through repeated testing and I'm very happy with the setup, I did overlook one thing even though I read the document repeatedly I overlooked the fact that it states to use a piece of "PCB material" and I soon found out why, the plate can not ground out or the touch off plate will not work properly, I used a piece of brass plate which worked great when used off pieces of foam for testing but as soon as I tried it off of a piece of aluminum I soon realized my error, a small piece of screen protector on the bottom of my brass plate fixed this issue.

There is one thing though that anyone considering a setup such as this, is the fact that to high of a feed rate will cause the tool to travel on even after the signal is detected.
The VB Code for Auto Tool Zero has a value of 20 for a feed rate which was a little fast for my comfort, so I slowed it down to 15 but I was still concerned that the tool may travel after a signal was detected.
My testing setup is admittedly crude but the results where very consistent and repeatable throughout a couple of hours of testing.

IMG_00001290.jpg

Feed rate 15 --> Over run .0019
Feed rate 10 --> Over run .0010
Feed rate 05 --> Over run .0003
Feed rate 02 --> Over run .0001

Regardless of the tool over run results using the 4 different feed rates the tool height constantly finished at the exact same height as near as I could detect with my .0001 indicator.

Just something to think about if your considering a setup like this, I'll be making a new touch off plate that will allow some over run of the tool.

IMG_00001290.jpg
 
I will not have a chance to test this anytime soon so use with caution but here is a slightly modified version of the code in the doc that was attached above. this will use a high feedrate initially. Once it touches it will back off .05 and then go down again for a touch at a very slow feed rate. This should eliminate the overrun in the final z setting. It will NOT prevent an actual overrun in the first touch. It might be wise to lower the 20ipm to something lower so that there is no damage to the tool when it overshoots slightly. The good thing about a copper clad PCB is that is that it will probably absorb a small overshoot. Eventually it would need to be replaced.
Anyway, remember that I have not tested the modifications below. It seems pretty simple but you never know until you test it.

Message( "Auto Zeroing..." )
If IsSuchSignal (22) Then
code "G31 Z-3 F20" ' first touch with feedrate of 20
While IsMoving()
Wend

Call SetDRO(2,0) ' this temporarily sets the z axis to zero where it first touched
code "G0 Z 0.05" ' Back off .05

if IsSuchSignal (22) Then
Code "G31 Z-.1 F1" ' do it again at feedrate of 1
While IsMoving()
Wend


Call SetDRO( 2, .060 ) ' now reset the Z-Zero with the offset of touch plate.
code "G1 Z1"
End If
 
Thank's for posting this info, I'm not getting time in the shop right now but I'll have a closer look when I have time :))

I will not have a chance to test this anytime soon so use with caution but here is a slightly modified version of the code in the doc that was attached above. this will use a high feedrate initially. Once it touches it will back off .05 and then go down again for a touch at a very slow feed rate. This should eliminate the overrun in the final z setting. It will NOT prevent an actual overrun in the first touch. It might be wise to lower the 20ipm to something lower so that there is no damage to the tool when it overshoots slightly. The good thing about a copper clad PCB is that is that it will probably absorb a small overshoot. Eventually it would need to be replaced.
Anyway, remember that I have not tested the modifications below. It seems pretty simple but you never know until you test it.

Message( "Auto Zeroing..." )
If IsSuchSignal (22) Then
code "G31 Z-3 F20" ' first touch with feedrate of 20
While IsMoving()
Wend

Call SetDRO(2,0) ' this temporarily sets the z axis to zero where it first touched
code "G0 Z 0.05" ' Back off .05

if IsSuchSignal (22) Then
Code "G31 Z-.1 F1" ' do it again at feedrate of 1
While IsMoving()
Wend


Call SetDRO( 2, .060 ) ' now reset the Z-Zero with the offset of touch plate.
code "G1 Z1"
End If
 
Back
Top