Tool setter work in progress

I had some rare downtime this weekend which allowed me to work on an tool setter accessory I have wanted since I began working with my Onefinity. I have seen some examples using standard normally open momentary contact buttons for this function but I figured it would not be repeatable enough to be practical. The testing I performed this weekend would prove that statement wrong. I began with a temporary setup on the waste board where I repeated a probing cycle 100 times and found the variation to be .031mm. I then took this and created a more permanent installation near the front right foot, it sits below the height of the waste board.

The testing of this installation proved to be more repeatable than the previous setup I had with a deviation of .018mm across 100 probing cycles. The test cycle starts at Z0 (top) probes at a feed rate of 300mm/min until it finds the switch, then backs off 7mm and then probes again at a rate of 50mm/min, outputs the message in the table below, then raises the Z axis back to Z0 (top) and begins again

This push button is connected to the breakout board probe (pin 22 and pin 19 ground) and I am still working on the M6 code, it works fine but the planner shows “over” because it doesn’t properly handle the G53 commands, not sure if this can be fixed but I am still working on it. Some of the inspiration for this comes from the work Mike did in this thread:

Since I don’t use tool changes in all of my projects I want to work all of the tool change and probing logic into the tool change M6 operation so I don’t have to run the tool setter code at program start for programs that don’t include a tool change. Once I get the code to a point I’m happy with it I’ll share it here.


Are you using the conductivity of the surface or actually triggering the switch with probing?

Closing the switch with the probe, I though about using it with the conductivity of the switch - actually both conductivity and triggering the switch in case continuity between the bit and the switch surface failed for some reason. I am still leaning towards implementing it this way in the future but this would mean I need to connect a digital ground from the controller to the spindle full time which raises concerns about giving noise/emi/rfi a path into the controller - from the online circuit diagrams for the Onefinity controller I see there is a 10khz low pass filter on the input but I would want to introduce an opto isolator or something similar.

One of the things that my testing showed is that there a few tens of milliseconds of delay between the switch closing and the controller detecting it. A spring loaded tool setter seems to be ideal as it will allow for faster probe rates but also prevent crashing the bit due to the delay. I found the 2 step probe cycle, one with feed rate 300 and a second one with feed rate 50 to provide far more accuracy.

This switch is stainless steel, ideally I’d like the probe surface to be a soft metal, I might try adding a aluminum plate to the top of the switch in the future.