Keeping zero position

Hey Bill,

I think what you are saying is totally correct but you use zero for both home and zero here. But I would be careful to always distinguish between

Homing ≠ Zeroing

  • Homing: Triggering the homing process by pressing the corresponding home button (for a single axis, or for all axes) causes all carriages to be driven to their home positions. Once the carriages reached these positions, the machine is able to sense this, either by the limit sensors located at those home points (usually inductive proximity sensors or optical infrared sensors, or, as is the case with the stock Standard Series Onefinity CNC, with motor stall detection, which means by sensing that the motor does not move anymore, which is a function of the TI DRV8711 stepper drivers). When the CNC controller sensed that the corresponding carriages reached their home position, it resets the absolute machine coordinate of the corresponding axis to zero. On the buildbotics-derived Onefinity Controller of the Original/PRO Series, the column that shows these values is the “Absolute position” column.

    Where these home positions really are located, differs between CNC machines and brands. On the Onefinity, X home is on the leftmost position, Y is on the frontmost position, while Z is on the topmost position. As the numbers on every machine always increase by moving away from bottom front left and by moving towards top rear right (as the G-Code standard says, see image below), on the Onefinity the X and Y numbers are positive, while Z is always negative, because since Z home is at the topmost position, and the numbers increase towards upper direction, but home is exactly 0, the Z axis has only negative numbers (0 to −133 mm on Onefinity Standard Series Z-16 slider, 0 to −163 mm on Heavy duty Z-20 slider (=standard on Elite and PRO Series, optional on Original Series).

    Cartesian coordinate system with right hand orientation


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


    Schweizer Nationalbank, Public domain

    On other machines, “home” (aka machine origin) often is on other positions. Usually home is where the tools are changed, which is top front left on the Onefinity, but e.g. on industrial vertical milling centers (VMCs), home is often on top right rear position, as this is where the tool magazine is. On those machines, the absolute machine coordinates are all only negative values, as the numbers always increase towards top rear right and decrease towards bottom front left.

    Homing is usually necessary only once after startup of the machine. Its purpose is to enable the machine to know where its carriages are, which is possible because it is a repeatable starting position. Without homing, the machine would not know where its carriages are, since they could have moved while the machine was switched off.

    Later, if you want or need to go to the machine home position again, e.g. to allow a manual tool change as part of the ‘tool-change’ routine (on the Onefinity CNC, it is to be found on the SETTINGS page (see also here)), or to have the milling motor out of the way to attach a new workpiece, you don’t call the homing sequence again but it is a command like ‘G53 G0 X0 Y0 Z0’ (G53 – Move in machine coordinates)) that is called instead, or ‘G30 (G30 – Go to predefined position)’. This can be important because the homing sequence deletes the machine coordinates and re-establishes them new by driving the carriages to the limits, and on many machines, this does not guarantee an accurate positioning repeatability, while with G53 or G30, the machine still moves on the machine coordinates that were established at startup.

  • Zeroing: This is what tells the machine where your workpiece is in real. It is the representation of the workpiece zero coordinate in your 3D model in reality.

    It means after having moved the tip of the bit and thereby all axis carriages to a desired position, a procedure you can do manually with the jog pane, the gamepad, or with g-code commands entered into the command entry field of MDI tab, or in most cases with a probing procedure with a touch plate or touch probe, the current position is then set as the new zero of a temporary workpiece coordinate system. In fact this means, after zeroing, a new coordinate system is in effect, represented by the “position” and the “offsets” column. This allows the machine to exactly know where you attached your workpiece and your g-code program to be run.

    You can zero one single axis, or all axes at the same time, with the corresponding button, in case you changed only one dimension of your workpiece.

    In fact, Position minus Absolute Position equals to Offset.

    The command that sets the current position to the new workpiece zero is G92 (Coordinate Offset), which is the most important command in every probing routine. It is also the “zero” button on CONTROL page, which in fact executes the command “G92 X0 Y0 Z0” (or the corresponding buttons for only one axis).