So I have been dialing in my process for milling PCB’s which involves a leveling routing using bCNC, to compensate for warpage in the xy plane. So far my results are decent, but I had a sneaking suspicion my v-groove bit was consistently diving in ~0.3mm too far. Then I noticed the PCB slightly warping every time the probe touched it. Investigating this, I found an issue report for grbl that explains this behavior:
So if you just use G38.2 to probe down on z and set your zero afterwards, there will always be some error proportional to your machine’s z acceleration and the probing speed. Basically it slows down after contact, obeying max acceleration, which means it will come to a stop slightly beyond the contact point. So with grbl you have to compensate for this. To properly set zero after probing, you have to add a retract back to the point of contact, and zero from there.
Unfortunately the guy didn’t end up posting his macro. I don’t know gcode like the back of my hand, so I’ll have to look some things up and do some testing to figure out how to retract the proper distance (somehow make use of the contact position stored internally in grbl). If anyone has already done this, please share.
I think this will be the secret to me being able to do much finer pitch pcbs. I also just probe at 100 now, and want to make my macro do a slow second probe. That I know how to do, but without the retract thing it will still always be off a bit.