Z problem with first time homing not zeroing (solved)

Hey bobaluke,

Why does Z not home at Z’s lowest value?

You just have to think about it. When homing, the machine does not know about your bit length, so if it would home at Z’s lowest value, you would have a broken bit or a hole in the table.

What the machine needs to know at startup, is where are the axes positioned. Since with open-loop steppers and with the machine lacking limit sensors, it cannot sense it, so what the Onefinity CNC does is to drive the X and Y axes to front and left until it can’t go further (the stepper drivers have “stall detect” capability) so it sets machine origin (aka “home”) to zero for X and Y when these axes reached there, at the front and left ends of their travel.

Since as explained, it cannot do the same for Z, which means it cannot drive the Z axis to its lowest position without risking to destroy something, it simply drives the Z axis in the other direction, which means upwards, away from low position values towards higher position values, until the motor triggers a stall detect at the highest point too.

Now the stored machine’s soft limits come into play, which are stored under Flyout menu → MOTORS → Motor $ → Limits. For Z axis, it is found under Motor 3 → Limits. As you can see, the “min-soft-limit” for the motor 3, which is the motor for Z axis, is set to a negative value: −133 mm (in imperial, this is −5¼″). Hey, this happens to be Onefinity’s maximum Z travel distance, did you recognize it? :wink: What this means is, by reaching the other end of the Z travel, and then subtracting the maximum possible travel, the machine knows where machine’s Z lowest position is. And that’s what homing is all about! :wink:


Schematic Representation of a CNC vertical milling center
– Source: Smid, Peter: CNC Programming Handbook , Industrial Press, South Norwalk, CT, USA, ISBN 9780831133474

By the way, many industrial vertical milling centers don’t have their X and Y home point at the lowest value either, but at right rear ends of X and Y travel (which is then also where the tool magazine for automatic tool change is located). The way to know where the axis’s lowest value is works the same way internally as explained for Z above, by looking up the stored limits, which then would also be negative values (unlike the X and Y lowest values on Onefinity). Manufacturers can decide that differently. Machine origin (aka “home”) is just a reference position the machine has to take once at startup with the homing command.

As soon as you have loaded a g-code program, usually you have a new coordinate system in effect, with a program zero (or workpiece origin) that defines where X zero, Y zero and Z zero are and that the machine gets to know in relation to machine coordinates by probing axes or moving and zeroing axes manually.


References

All Machines Specs

2 Likes