After the Buildbotics CNC Controller is booted, it simply assumes that the cutting head is located at the origin (all axis positions are set to zero). Homing the machine leaves the axes near their limit switches at known positions. Check out my article titled 'Homing your CNC machine' to learn all about homing the Buildbotics Controller.

This is all great, but the CAD programs typically define the origin as a location on the workpiece. It's pretty safe to say that the GCode origin is different from the machine origin. That's where offsets come into play.

After homing, my machine thinks the origin is in the center of the table. The picture below shows that the machine origin is in the center of the machine but I laid the workpiece down near the front right side of the machine.

The GCode program expects the origin to be at the top, left, front corner of my workpiece.

Absolute Origin vs GCode Origin

The goal is to adjust the offsets such that the machine origin is in the same place as the GCode origin.

One way is to jog the machine into position with the game pad and then set the offsets.

Cutting head co-located with the GCode origin

As you jog the tool around, you will notice that the 'Position' and 'Absolute' fields remain equal to each other and the Offset fields remain at zero. The next picture shows my display after jogging to the gcode origin.

Offsets not set

Now, click the top Zero offset button to set the current positions to zero. The picture below shows that the offsets have been set. Notice 'Absolute' remains the same but Position is now all zeros and Offset shows the difference between the two.

Summary

This article shows a brute force method of setting the offsets. It works pretty well until you need to change bits in the middle of a program.

This method requires that you take control of the machine to set the offsets. Many GCode programs require tool changes in the middle of the program and unless you have an automatic tool changer, the bit position is likely to be different each time you change it. In the method shown, you would have to run individual programs each time you want to use a different bit.

This problem is solved by initiating a probing sequence after each tool change. Check out my article titled 'Probing to set CNC offsets' and my 3D probing video.