Keeping zero position

Hey Dave,

I assume you mean you press the zero button for these axes, not home. Okay, then you have the numbers. Do you have some example numbers after zeroing workpiece?

That would not have been necessary. With a (now earthed) spindle (in contrast to double-insulated hand router) you don’t need the magnet probe anymore. You only need one wire on the touch probe, because the spindle is already earthed. If the touch probe still did not work after switching to a spindle, all you would have had to do was swap the wires because some touch probes are wired the other way around (see here for details). The touch probe works perfectly with a spindle this way.

As Chris @ChrisM already mentioned above, using the 3-Axis Touch probe gives you more positioning repeatability than stall homing, either on a fixed block or jig, or at the workpiece itself.


Yes, I mean to zero. Either way all of the techniques people have mentioned so far just haven’t been consistent enough to get me close enough to my zero coordinates to be reliable in a multi-day carve. Especially when it is a customer’s logo or design, being off even 2mm is way to much. Maybe it’s just a limitation of the hardware. Maybe Masso will be better.

1 Like

Hey Dave,

the biggest mistake you made is to sell your Three-axis Touch Probe.

On a Standard Series Onefinity CNC machine, there are two ways to get acceptable positioning repeatability: Either

  1. Retrofitting inductive proximity sensors as limit switches or

  2. using the Three-axis Touch Probe instead of inaccurate stall homing, either on a fixed block or jig, or on the workpiece itself, and subsequently only relying on the workpiece coordinates.

If I were in your place, I would order a Three-axis Touch Probe to be able to achieve much better positioning repeatability this way.

We will have to agree to disagree on the probe for the moment. Even when I had the Makita, the probe wasn’t accurate or repeatable. X and Y were OK most, but not all of the time. Also, with the Spoilboard and clamp system I got from Morgan’s etsy shop, you can’t easily use the probe with the u-clamps in place. They get in the way. so you have to try to probe x/y before securely clamping it then hope you don’t move it.
At least 25% of the time it would try to jam the bit through the probe when doing Z. Broke 2 bits that way. I sent a question to 1F about it but didn’t get a response. To be fair, it was buried in an email with a few other issues trying to get it set up. Anyway, I’ve moved on at this point.

Hey Dave,

what @ChrisM suggested above, is to clamp a block somewhere on your workarea, that can be left permanently there, away from your work, and to use the touch probe on this block in order to substitute homing with a more reliable method. Unlike when using stall homing, this block never moves and repeatability should be excellent.

Regarding problems when using the touch probe, you should be able to eliminate them by taking care to clean the bit and the inside of the collet before probing so the electrical connection is of good quality, or if errors come from the flutes, even better use the shank of a bit that you inserted the other way around into the collet as the probe to probe X and Y (and use the real bit only to probe Z).

If you had such problems there could also have been a problem with the probe wire. I would not give up that fast, since when everything is in order, the Touch probe brings excellent results.

1 Like

Just so there is no confusion with the difference between home and setting zero for the different axis. Homing the machine defines the work areas total size by finding the limits to the axis on one side and then the machines total cut area is set by the soft max limit in the axis settings 32in for the x for example. Where these limits are found is by the voltage resistance that it gets to when it hits the ends after pressing home. This is set to 2v and 1amp by default. This is what homing is for to define the total cutting area for the machine.
The next function is the zero for the different axis which is set by probing or manually with the set zero position buttons. Different than the home buttons because rehoming will redefine the total cutting area. This second function of setting the zero for the axis tells the machine where your material is in relation to the total cutting area. As long as you do not turn off the machine this zero position will be the same no matter what file you run. Its important to have a grid as a reference for your material and the stops you are using are parallel with the machine as from this corner everything gets measured from. If the carving is out could be because the material is not parallel with the machine from the starting corner. I cut my fences with the machine to ensure they are parallel. Also when you do turn off the machine its a good idea to roll it back to the farthest stop position before selecting home to ensure the two sides of the gantry home parallel to each other.


Hey Dave,

PS: @JDog in fact suggested this too here:

Hey JDog,

lol, this thread seems to evolve to a collection of explanations of difference between homing and zeroing :slight_smile:. My last one is here, and by the way, onefinitycnc also has one here. There are probably many more in the depths of the forum, because who has not ever tried to explain it to someone (proud when you first understood yourself :slight_smile:). But yours also refers to adjusting the stall homing parameters (see also manufacturer’s video on stall homing fine tuning)


This is my temporary workaround, just installed it a few days ago. I have two fences, one set at the limits the X and Y axis, cut with the machine itself, and another temporary fence system with the touch probe clamped to a block which also gives me the workpiece x/y 0.

I work with x/y offsets in Vcarve or create an artificial spoilboard in my CAD software, with the workpiece offset. Of course it could be more elegant, but seems to work perfectly fine.

1 Like

Very interesting.
Let me see if I understand:
Your touch probe block is clamped exactly a certain distance away from the corner in the fence - looks like X1.0 Y1.0?
Then in your cam software you always put your offset the same distance away from the stock corner?
That would make things a lot simpler when working with square cornered stock pieces.

1 Like

–To answer my own question, if you set up your BB to manually home X & Y, but still ‘stall home’ Z…

…at boot up, if you answer “yes” to the “Do you want to home the machine?”…it stall homes the Z axis, and then that’s it.

–To further the Keeping zero position discussion in regards to max workable area repeatable zero:

For me, I then move the gantry all the way L and all the way F (so that parts are just barely touching), use the controller to back off 1mm, then touch the home button. The machine is now homed in all axis (and fully uses the soft limits) because they are well within its real, physical limits.

For my full sheet, tiling operations, I then just set workplace zero using the 1F zeroing block off a piece of wood that is pegged at 96,96 (and 128, 96) to my spoilboard. Unless the reference block gets damaged, this will set a repeatable workplace zero that 1)is inside the full soft and physical limits of the 1F J-man, and 2)is always in the exact same darn-near-full L, d-n-f Fwd position (because I made the 96,96 and 128, 96 20mm Ø holes at the same time, when I did not understand the difference between the effectively random position that is the result of stall homing and workplace zero).

Were I to be truly worried about consistently lining up workplace zero with a machine zero that is well within the workable area (and without adjusting the soft limits in the BB controller), I would make new 96 on center 20 mm grid holes in new pieces of spoilboard on my QCW, and re-baseline my L fence by screwing down a piece of wood after machine zeroing (as above) and Z-axis zeroing off the spoil and running it F to B at X3.111 (for my phenomenal 6.223mm Ø UD2102 bit), then putting a duly squared 48ish by 96ish plywood with a reference edge and a truly square front L corner on the 1F.

But how many need to completely maximize their workable area (because they are working with material that takes up the entire available real estate), and in a repeatable way?

Pro’ly only me.

Hey Festdewalkita,

I think anybody should have the right (or the claim) to use the entire workspace of a CNC machine you buy (I have this claim). Especially when you have a gantry-style machine that allows tiling of larger workpieces due to the front and rear being completely open. But you have to think of swiveling toolsetters and tool changers with swivel arms then :slight_smile: (or an entire tool magazine that slides out of the way)

Regarding homing X & Y, my opinion is that going the proximity sensor way solves the problem but you can still have a fence to position your tiling workpiece without zeroing X & Y.


I’m time-poor, and what I typed out above (#86) was the ‘now’ solution to this problem.

Ultimately, I’ll go with the Elite Masso (instead of implementing the add-ons to my BB you & Derek-WaywardWoodworker discussed).

You don’t know what you don’t know until you go use your 1F and come on here and get pointers (thank you again, Aiph5u and Derek…you are generous to share the results of your curiosity and experience here).


@Aiph5u, a year ago you were trying to help me when I got off to a rather rocky start, (not that it is super smooth now. Would you be so kind as to give me the keystrokes for this.
Am using two hold down pins to locate my work on the y or x axis. So from the stall homing position the center I want is X405mm , Y 316 with the Z At stall 0 because I want to set Z for each piece. Do I go into the MDI and enter the offsets or do I enter the X0 & Y0 that I made the center of my work?
Would this be correct
Or should I go from stall home
Would love to get to where I could play with the big kids in G code. But get really nervous when digging into the black arts.

Hey Tony,

in front of coordinates, you need a motion command like G0 (rapid move):

G0 X0 Y0

This will go to the X and Y zero coordinate of the currently active coordinate system. If you’ve probed or set a workpiece zero manually with G92 (set coordinate system offset), then it will go there. If no offset coordinate system is in effect, it will go to machine zero X and Y (=home position of X and Y).

If no offset coordinate system is in effect, then the command

G0 X405 Y316

will move to this position relative to machine zero.

Then, if you want to make this position your new workpiece zero, you enter G92 (set coordinate system offset). From then on, every subsequently entered coordinate will be relative to your new workpiece zero which is here.

There is only one way to reach this: Try it out as often as possible and see what the machine does. G-code doesn’t bite, it just wants to play :slight_smile:

Here is the G-code reference:

1 Like

Just to be the village idiot:
I enter MDI type in
G0 X405 Y316
then do I hit play or hit enter?
Then after the machine has done that
I erase that particular G code & load the carve g code?
Sounds like am gonna owe you big time.

Just want to expand further on Aiph5u’s response:

There are a total of 7 “Offsets” with the BuildBotics controller. In GCode, these are referenced as G53-G59. However, G53 is used by the machine as its “Absolute” or “Home” position which is automatically set ever time you power on and “Home” the machine.

Every time you use the electronic probe, or jog the spindle to a position and click the manual buttons to set a particular axis to zero, behind the scenes you are effectively setting work offset number G54.

To utilize additional offsets G55-G59, you will have to do this manually in GCode, including to make sure your CAM software (e.g. VCarve) is properly configured to send the G55-G59 commands as needed. Note, I have never found the need to use these additional offsets.

When recently making a number of jewelry boxes spanning a time frame across a number of days and machine restarts, I used the bench dogs on the bed of my machine to reference a known position for the lower-left corner of the workpiece. Then, after shutdown, startup, and homing the machine, I manually moved to these known coordinates using a GCode command (below) inside the “MDI” tab of the web interface.

Exact steps include:

  1. Power on and “Home” the machine
  2. Send this command: G90 G0 G53 X280.564 Y260.267
  3. Click the buttons in the web interface to set my zero point (i.e. G54 work offset) for X and Y
  4. Set my Z zero position using the electronic probe
  5. Load and run any GCode program I uploaded
  6. Clicking the Home “BUTTON” on the web interface will move to these coordinates and not the machine’s home position

Breaking down the GCode command:
G90: Sets the movement relative to Absolute coordinates of whatever offset you’re referencing and not based incrementally from wherever the spindle is currently located on the bed

G0: Indicates rapid movement or a non-cutting operation.

G53: Instructs the machine to move to a position based on the Absolute offset where the machine was homed.

X280.564 and Y260.267: The specific X and Y coordinates of my bench dogs

After clicking the buttons to set my X-Y zero points, then jogging the machine with the X-Box controller or issuing any GCode command will move the spindle relative to this G54 work offset by default.

If after you configure your work offset (G54) and you want to move the spindle to a position relative to this offset, and not the machine’s Home position, make sure to include G54 instead of G53. Example, if your workpiece is 600x600mm, you set your zero point to the lower-left corner, and you want to move to the center (300x300), issue G90 G0 G54 X300 Y300. Granted, you technically don’t need to use G54 as it should be assumed, but I like to make sure.

Conversely, if your carving finishes and you want to move the spindle all the way up and out of the way to the back-right corner of the machine (Woodworker model with max 800-ish mm square bed), issue this command:

G90 G0 G53 Z5 X800 Y800

Your work offset G54 will still exist and I specified Z5 just to leave a little room at the top.

1 Like

Hey Tony,

you did not yet try? :slight_smile:

Okay, yes you enter it this way. Pressing “Enter” on the keyboard or using the “play” button has the same effect, the command line will be executed then.

Your command line is then moved down to the command history window so that the command entry field is empty again for the next command line you may want to enter.

You can re-execute any of the commands you entered preciously by clicking on it in the history, it will be set in the command entry field again, ready to be executed again.

If a command takes longer to be executed, you can also “pause” it. You can also at any time “stop” it.

1 Like

Hey Forrest, hey Tony, hey all,

Just to expand further on @SurfinGump’s posting :slight_smile::

G53 (move in machine coordinates) differs from the other coordinate system commands in that it is no modal command and must be set on every new line, while G54–G59.3 (Select Coordinate System) (see also here) are modal and stay in effect until another G54-G59.3 coordinate system is set, or the machine is shut down.

1 Like

I sent that at tea time, then went up and put it to work.
Figured out my answers by banging head against wall but did not take but a few trials, biggest error was G0 X416 when I should have entered
G0 X0.
Only other error (far as I know) was cutting part of the head on one of my hold down bolts, but no biggie, I use nylon bolts when am uncertain of my cut path.
Thank you for getting me started on that part of this luxury cruise,