> The mental model for the implementation is a PCB milling machine searching (down) for the surface of the blank board for setting a precise zero.
Correct. On most CNC/PnP machines the Z-axis is “upside down” — Z=0 is the highest position and Z=1000mm would be underground, in the basement of the building. This is so that homing to X=0,Y=0,Z=0 is independent of what is underneath the machine head.
FWIW this is a pick and place application. I need to probe the thickness of the PCB and various components.
I ended up digging through the source code to fix this, although I was rather disturbed by what I saw. I’m probably going to switch to LinuxCNC.