# Keeping zero position

**URL:** <https://forum.onefinitycnc.com/t/keeping-zero-position/14115>\
**Category:** Original/PRO Series (Buildbotics) (Gen 1)\
**Created:** [July 13, 2022, 1:47pm UTC](https://forum.onefinitycnc.com/t/keeping-zero-position/14115 "2022-07-13T13:47:13Z")\
**Posts on this page:** 20\
**Page:** 3

<div class="post-metadata">

**Author:** ![SanderCreations](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.onefinitycnc.com/sandercreations/32/21310_2.png) [@SanderCreations](https://forum.onefinitycnc.com/u/SanderCreations)\
**Post date:** [March 13, 2023, 6:04am UTC](https://forum.onefinitycnc.com/t/keeping-zero-position/14115/41 "2023-03-13T06:04:59Z")

</div>

So I decided to give it a try tonight. unfortunately it didn’t work.  
I first moved the router to a different section of the board and tried to get it to go home with the g01 command. It gave me an error so I shortened it from 117.103 to 117.10. Same with Y. This time nothing at all happened. No movement or error.  
Later on in the evening we had a power outage due to storm. Thankfully I was already at my 0,0 so I can run the rest of the job without homing. But just for fun I tried it again and this time got the error below. It doesn’t make sense to me because the x I put in was 117.10 but it recognized it 3107.  
Seems like it should be much more straightforward to dial in any spot on the board and go there. Or maybe it is and I’m just doing it wrong.

 ![image (1)](https://us1.discourse-cdn.com/flex022/uploads/onefinitycnc/original/3X/3/8/385dfe4e04f716863fbe7abce2e4bd51f8889e01.jpeg)

---

<div class="post-metadata">

**Author:** ![bumps](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.onefinitycnc.com/bumps/32/3445_2.png) [@bumps](https://forum.onefinitycnc.com/u/bumps)\
**Post date:** [March 13, 2023, 8:36am UTC](https://forum.onefinitycnc.com/t/keeping-zero-position/14115/42 "2023-03-13T08:36:07Z")

</div>

If you are using the go command zero your machine first then use the go command. Or zero the machine first and simply move your machine to where you want the new zero position to be and zero it on the controller.

---

<div class="post-metadata">

**Author:** ![349iq2345](https://avatars.discourse-cdn.com/v4/letter/3/bb73d2/32.png) [@349iq2345](https://forum.onefinitycnc.com/u/349iq2345)\
**Post date:** [March 13, 2023, 4:13pm UTC](https://forum.onefinitycnc.com/t/keeping-zero-position/14115/43 "2023-03-13T16:13:37Z")

</div>

Hey Dave,

> [@SanderCreations](#):
>
> So I decided to give it a try tonight. unfortunately it didn’t work.  
> I first moved the router to a different section of the board and tried to get it to go home with the g01 command. It gave me an error so I shortened it from 117.103 to 117.10. Same with Y. This time nothing at all happened. No movement or error.  
> Later on in the evening we had a power outage due to storm. Thankfully I was already at my 0,0 so I can run the rest of the job without homing. But just for fun I tried it again and this time got the error below. It doesn’t make sense to me because the x I put in was 117.10 but it recognized it 3107.  
> Seems like it should be much more straightforward to dial in any spot on the board and go there. Or maybe it is and I’m just doing it wrong.

what do you want to do? Is this still about [Resetting after a power outage](https://forum.onefinitycnc.com/t/resetting-after-a-power-outage/18841)?

Were you able to follow what I explained in my [reply](https://forum.onefinitycnc.com/t/resetting-after-a-power-outage/18841/3)? What you have to note or screenshot for the case of a power outage is the offsets column. These numbers say where your _workpiece zero_ is in relation to the absolute _machine origin_, so having these data is crucial. The offsets are usually created by probing the workpiece prior to running the program or at the beginning of a new tool pass. On probing, the new coordinate system is activated to have its XYZ zero position exactly where your workpiece zero is in your 3D model.

In case you had a power outage, but noted the offsets, you can enter them with the [G92 (Coordinate system offset)](https://linuxcnc.org/docs/html/gcode/g-code.html#gcode:g92) command. This corresponds to moving the machine to the coordinates that you noted (manually by jogging, or with a G0 command) and then pressing one of the **zero buttons** on the CONTROL page (available for a single axis or for XYZ). This in fact executes a G92 X0 Y0 Z0 command (or G92 _axis_ with only one axis). This is the command to set a new workpiece zero at the position that you moved to. It is also the most important command in every probing routine, as it tells the machine where the workpiece zero is, (or in case of probing after a tool change, how long the new bit is).

If you have the coordinates of the offset colum, I can tell you how to re-enter them after a power outage.

---

<div class="post-metadata">

**Author:** ![349iq2345](https://avatars.discourse-cdn.com/v4/letter/3/bb73d2/32.png) [@349iq2345](https://forum.onefinitycnc.com/u/349iq2345)\
**Post date:** [March 13, 2023, 4:53pm UTC](https://forum.onefinitycnc.com/t/keeping-zero-position/14115/44 "2023-03-13T16:53:46Z")

</div>

Hey Bill,

> [@bumps](#):
>
> If you are using the go command zero your machine first then use the go command. Or zero the machine first and simply move your machine to where you want the new zero position to be and zero it on the controller.

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](https://www.ti.com/product/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.

- **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.

---

<div class="post-metadata">

**Author:** ![SanderCreations](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.onefinitycnc.com/sandercreations/32/21310_2.png) [@SanderCreations](https://forum.onefinitycnc.com/u/SanderCreations)\
**Post date:** [March 13, 2023, 5:22pm UTC](https://forum.onefinitycnc.com/t/keeping-zero-position/14115/45 "2023-03-13T17:22:23Z")

</div>

Hi.  
Thanks for trying to help. Yes, i am still trying to figure what to do after a power outage. It would also be helpful knowledge when doing a multicolor epoxy inlay like I’m doing now. I have 5 colors and each one takes 1-2 days to cure. It would be nice to not have to keep the machine on and idle for that long but still be able to reliably get back to my zeros for the job. Then, i could do other projects but still get back to zero for the next color/layer.  
My offsets are the same as my 0,0. Though i still don’t think I understand how to use the g0 or g92 commands.

 ![image](https://us1.discourse-cdn.com/flex022/uploads/onefinitycnc/original/3X/9/a/9a1b5315ffeb89ddd6bc74fbeab86115920546a6.jpeg)

---

<div class="post-metadata">

**Author:** ![349iq2345](https://avatars.discourse-cdn.com/v4/letter/3/bb73d2/32.png) [@349iq2345](https://forum.onefinitycnc.com/u/349iq2345)\
**Post date:** [March 13, 2023, 5:39pm UTC](https://forum.onefinitycnc.com/t/keeping-zero-position/14115/46 "2023-03-13T17:39:23Z")

</div>

Hey Dave,

noting and restoring the offsets makes only sense if you let the workpiece clamped on the machine bed until the next pass. If you reposition it, you would re-probe instead.

Let’s say you have a workpiece clamped on the machine bed and prior to first pass, you probe XYZ. The result is that you have the offset numbers which in fact designate the _workpiece zero_ in relation to the absolute _machine zero_.

- If you let the machine on until next pass, you avoid homing and you can directly run the next pass, as these values did not change.

- But if you switch the machine off or have a power outage, you got to re-enter these offsets before you can run the same program (or a pass that is based on the same program and workpiece) again.

To enter these values, you use the G92 command and you enter it into the command entry field of the MDI Tab, _but with their sign changed (i.e. the [Additive Inverse](https://en.wikipedia.org/wiki/Additive_inverse))_:

Let’s say according to your image, your offsets for the workpiece were X=117.702, Y=129.392 and Z=-57.41. You re-home the machine, then you enter this into the command entry field of the MDI Tab:

`G92 X-117.702 Y-129.392 Z57.41`

Take care of the signs in front of the numbers, which were changed!

This command activates a new coordinate system, which is the _workpiece coordinate system_, which has its zero exactly where the workpiece zero is in your 3D model.

You can check whether a G92 offset is active by entering:

`(debug, Offset=#5210)`

If the output is 1, then there is a G92 offset active, if it is 0, not. (Don’t forget the parantheses when you use ‘debug’.)

Now to go to the workpiece zero, you enter:

`G0 X0 Y0 Z0`

Magic, eh? 😉

To delete any offset, use

`G92.1`

PS: If you forgot to note the offsets and they were lost due to a power outage, they can be extracted at any time later from the file /var/log/bbctrl.log.

---

<div class="post-metadata">

**Author:** ![bumps](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.onefinitycnc.com/bumps/32/3445_2.png) [@bumps](https://forum.onefinitycnc.com/u/bumps)\
**Post date:** [March 13, 2023, 5:53pm UTC](https://forum.onefinitycnc.com/t/keeping-zero-position/14115/47 "2023-03-13T17:53:33Z")

</div>

After you have zeroed the machine make a note of the offset numbers on the X and Y or take a picture of them.  
When you restart your machine home it in the usual way then go into the mdi setting and enter g01 X… Y… The dots represent the offsets that you made a note of, press enter and you are back at your preset zeros

---

<div class="post-metadata">

**Author:** ![349iq2345](https://avatars.discourse-cdn.com/v4/letter/3/bb73d2/32.png) [@349iq2345](https://forum.onefinitycnc.com/u/349iq2345)\
**Post date:** [March 13, 2023, 5:56pm UTC](https://forum.onefinitycnc.com/t/keeping-zero-position/14115/48 "2023-03-13T17:56:55Z")

</div>

Hey Bill,

> [@bumps](#):
>
> After you have zeroed the machine make a note of the offset numbers on the X and Y or take a picture of them.  
> When you restart your machine home it in the usual way then go into the mdi setting and enter g01 X… Y… The dots represent the offsets that you made a note of, press enter and you are back at your preset zeros

yes, this is the other way to achieve the same goal: Move to that position with a motion command (G00 or G01) and then zero there (what I described above is the same, but just the other way round). **But only if** you press the “zero” icon on the CONTROL page then, or enter `G92 X0 Y0 Z0` (which is the same as pressing the “zero” icon for all axes), this new position will come into effect!

By the way, no reason to use G1 (linear move at set feedrate), usually you would use G0 (rapid move) to quickly go somewhere. A problem with G1 is that a laser stays firing during a G1 movement, during a G0 move not.

---

<div class="post-metadata">

**Author:** ![JDog](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.onefinitycnc.com/jdog/32/2056_2.png) [@JDog](https://forum.onefinitycnc.com/u/JDog)\
**Post date:** [March 13, 2023, 7:38pm UTC](https://forum.onefinitycnc.com/t/keeping-zero-position/14115/49 "2023-03-13T19:38:55Z")

</div>

I find that there is enough room on the sides of the waste board that are next to the rails to make a fixture as I was suggesting above to form a corner. The one on the x axis I made removeable for those tiling situations. Since the machine will never be in the same place when it homes. The only solution to a repeatable x and y is a fixed location on the spoil board that can be probed and set each time the machine is turned on. For example for the epoxy guy who wants to make multiple pours. With this method he could actually remove the piece and let it dry and then return it to the machine when he was ready because the start position will be the same for all pieces that start in the set corner fixture.

---

<div class="post-metadata">

**Author:** ![349iq2345](https://avatars.discourse-cdn.com/v4/letter/3/bb73d2/32.png) [@349iq2345](https://forum.onefinitycnc.com/u/349iq2345)\
**Post date:** [March 13, 2023, 8:20pm UTC](https://forum.onefinitycnc.com/t/keeping-zero-position/14115/50 "2023-03-13T20:20:50Z")

</div>

Hey JDog,

beautiful fixtures / jigs!

I think reducing the use of the touch probe to only once per bootup period because you have a fixed jig is something that really saves time. I think when using this, it is important that you can ensure accurate positioning and clamping of the workpiece at the jig, I mean the faces would need to be perpendicular and first of all perfectly parallel to machine axes. As [Dr-Al mentioned the other day](https://forum.onefinitycnc.com/t/grid-lines-on-spoil-board/3213/25), when you mill the faces of your angular jig _with the machine itself_, the parallelity to the machine axis is absolutely perfect and reliable.

Another way to achieve positioning repeatability is to [retrofit inductive proximity sensors](https://forum.onefinitycnc.com/t/controller-software-tool-change-location-0-0-g54-g55-g56/10052/14) to decommission the stock [stall homing](https://forum.onefinitycnc.com/t/how-common-are-missed-steps/18352/8). This brings perfect positioning repeatability. With inductive limit sensors, you can rely on the absolute _machine coordinates_, which means if you want to move to a specific point, you could do that with motion commands and a coordinate, and it would accurately be the same position everytime, even after shutdown or power outage.

A positive side effect of limit sensors is that you can [square the machine](https://forum.onefinitycnc.com/t/what-do-i-do-first/18349/6) **without** unbolting and repositioning main parts of the machine. You can simply move the sensors a bit. Elite Series with Masso G3 Touch use a comparable way to achieve its auto-squaring.

---

<div class="post-metadata">

**Author:** ![SanderCreations](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.onefinitycnc.com/sandercreations/32/21310_2.png) [@SanderCreations](https://forum.onefinitycnc.com/u/SanderCreations)\
**Post date:** [March 15, 2023, 5:47am UTC](https://forum.onefinitycnc.com/t/keeping-zero-position/14115/51 "2023-03-15T05:47:28Z")

</div>

Thanks for the advice Aiph5u. I did give it a try tonight and unfortunately, still no luck. I put in the offsets as you suggested, with the negative numbers and using the g92 code. Then I used the go code and got the error in the picture below. I tried positive numbers just in case, but still got an error. I also tried to use the debug as you suggest but there is no = sign on the buildbotics screen so couldn’t put that in.

 ![image (1)](https://us1.discourse-cdn.com/flex022/uploads/onefinitycnc/original/3X/8/f/8fd5b41c62dccd9cd6ea26c9dfcf9189159ebb9c.jpeg)

---

<div class="post-metadata">

**Author:** ![SanderCreations](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.onefinitycnc.com/sandercreations/32/21310_2.png) [@SanderCreations](https://forum.onefinitycnc.com/u/SanderCreations)\
**Post date:** [March 15, 2023, 5:48am UTC](https://forum.onefinitycnc.com/t/keeping-zero-position/14115/52 "2023-03-15T05:48:06Z")

</div>

I believe that I have tried this before but it didn’t move. I will try again tomorrow.

---

<div class="post-metadata">

**Author:** ![SanderCreations](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.onefinitycnc.com/sandercreations/32/21310_2.png) [@SanderCreations](https://forum.onefinitycnc.com/u/SanderCreations)\
**Post date:** [March 15, 2023, 5:51am UTC](https://forum.onefinitycnc.com/t/keeping-zero-position/14115/53 "2023-03-15T05:51:20Z")

</div>

I’m that guy! I made the project work this time by creating that fixed point as you suggested. That way my workpiece goes to the exact same spot so if I have to re-do the x and y zeros, at least the corner of the workpiece is always in the same position. I also got around the problem by bringing the machine back to xoyo between each pour so it started in the same position. That wouldn’t work off course if there was a power outage midrun.  
This has been a bit of a frustrating learning curve but one I am determined to figure out.

---

<div class="post-metadata">

**Author:** ![349iq2345](https://avatars.discourse-cdn.com/v4/letter/3/bb73d2/32.png) [@349iq2345](https://forum.onefinitycnc.com/u/349iq2345)\
**Post date:** [March 15, 2023, 9:22am UTC](https://forum.onefinitycnc.com/t/keeping-zero-position/14115/54 "2023-03-15T09:22:58Z")

</div>

Hey Dave,

what exactly did you do? I’d really like to provide support, but I can not diagnose what happened without the _positions, absolute positions and offsets before_, a step-by-step description of _what you exactly did or entered_, and how the values are _after_ your input.

The values in your error screen photo suggest that we didn’t or don’t have a situation like I described before or that you described, or that you entered something different, or you entered something else earlier that you forgt to mention(!). **Numbers like 2989.63 mm are much too big and I cannot see any reason where you got such values from** (except if you had units set to imperial and entered millimeters!)

I have tested all my suggestions on my controller and it worked perfectly.

Can you provide the details requested above?

---

<div class="post-metadata">

**Author:** ![349iq2345](https://avatars.discourse-cdn.com/v4/letter/3/bb73d2/32.png) [@349iq2345](https://forum.onefinitycnc.com/u/349iq2345)\
**Post date:** [March 15, 2023, 10:13am UTC](https://forum.onefinitycnc.com/t/keeping-zero-position/14115/55 "2023-03-15T10:13:22Z")

</div>

Hey Dave,

> [@SanderCreations](#):
>
> I did give it a try tonight and unfortunately, still no luck. I put in the offsets as you suggested, with the negative numbers and using the g92 code. Then I used the go code and got the error in the picture below. I tried positive numbers just in case, but still got an error.
> 
> > [@349iq2345](#):
> >
> > **Numbers like 2989.63 mm are much too big and I cannot see any reason where you got such values from** (except if you had units set to imperial and entered millimeters!)

**oh man, you really did!** 🙂 You really entered 117.702 mm but you were in _imperial mode_. I just tried to reproduce your numbers. That exactly gave me _“X axis position 2989.63mm is greater than maximum soft limit”_, exactly as in your screen photo. Okay, it’s clear that cannot work, if you mix up units modes ☹

[G20, G21 (Units mode)](https://linuxcnc.org/docs/html/gcode/g-code.html#gcode:g20-g21)

G20 ; Set imperial units mode, use inches for length units.  
G21 ; Set metric units mode, use millimeters for length units.

Okay, with making sure to stay with one unit system during one operation, everything should work.

---

<div class="post-metadata">

**Author:** ![Festdewalkita](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.onefinitycnc.com/festdewalkita/32/21774_2.png) [@Festdewalkita](https://forum.onefinitycnc.com/u/Festdewalkita)\
**Post date:** [March 16, 2023, 9:54pm UTC](https://forum.onefinitycnc.com/t/keeping-zero-position/14115/56 "2023-03-16T21:54:21Z")

</div>

Agreed about homing, although if you [manually home](https://buildbotics.com/manual-v1-0-2/#SettingsPageMotorsTabHomingSection), you can get your machine’s absolute zero pretty reliably in the same spot in order to maximize the workable area (i.e., the soft limits).

I could maybe see squeezing a corner alignment jig onto a QCW/rolling-folding and having something set up to give you a gnat’s butt accurate/repeatable workplace zero that is therefore inside the soft limit area (based on the above repeatable/accurate absolute zero).

As you (and @349iq2345) mentioned, for a smaller project well within the soft limit area defined by the absolute x,y zero, it would be enough to just (re-) define the workpiece zero when the workpiece is re-mounted, or alternatively continue on using the offsets mentioned in [Aiph5u’s “Resetting after a power…” post](https://forum.onefinitycnc.com/t/resetting-after-a-power-outage/18841).

---

<div class="post-metadata">

**Author:** ![ChrisM](https://avatars.discourse-cdn.com/v4/letter/c/47e85d/32.png) [@ChrisM](https://forum.onefinitycnc.com/u/ChrisM)\
**Post date:** [March 17, 2023, 1:29am UTC](https://forum.onefinitycnc.com/t/keeping-zero-position/14115/57 "2023-03-17T01:29:11Z")

</div>

I will suggest this method of keeping track of your origin.  
I am now in the middle of a 3 day carve. ( not 3 days long but i am splitting up a 4 hour program over 3 days since I only get an hour or so a night to work on it. )  
I do not leave the controller on. It is shut off. And I do not worry about keeping the axis in the position I left off at.

Start by clamping a block on your table that can be permanent, for the duration of your job, and away from your work. I have a notch cut out of the front left corner of the wasteboard that is for this purpose.  
Use your tool setter block to find the front left corner of that block. Make that the origin for now.  
Write down the numbers circled in the pic below:  
 ![IMG_0743](https://us1.discourse-cdn.com/flex022/uploads/onefinitycnc/original/3X/e/8/e8b0275623514fcebec9e69014c1ce3dee23cf09.jpeg)  
Then find your origin on your actual workpiece and make that your origin in the usual way.  
Write down those numbers as circled in the pic below:  
 ![IMG_0742](https://us1.discourse-cdn.com/flex022/uploads/onefinitycnc/original/3X/d/8/d8b5ad47a69ae57644e089158a191a4919c77ca0.jpeg)  
Now use paper and pencil or Notepad as I did to organize those numbers and subtract the first set from the second set as done below:  
 ![IMG_0744](https://us1.discourse-cdn.com/flex022/uploads/onefinitycnc/original/3X/6/1/61e9c31f14e07af445b5c8cfbe634c287e642009.jpeg)  
“ORIGIN OF WORK:” is the origin of the actual workpiece I am working on.  
“FAR FRONT LEFT CORNER:” is the origin of the cutout on my waste board. This would be the permanent block you clamp somewhere. This number will be different every time I start the machine and home it. Only by .010 to .020 but enough that it would ruin my work. This is why I do not just use the offsets from the home position.

Then start your job in the usual way and stop it when you want and shut every thing down. Move the axis if you want - it doesn’t matter.

Then when I come back to start the job again be it a day or a week later - I start my machine and home it.  
Then I find the front left corner of that permanent block I still have clamped to the table and make that the origin temporarily.  
Don’t write down any numbers now - it is not needed.  
Go the the MDI and type in the X and Y distance to move I calculated before:  
 ![IMG_0746](https://us1.discourse-cdn.com/flex022/uploads/onefinitycnc/original/3X/8/0/808b40318a52e828ee77194960de9d45b7e08efb.jpeg)  
I leave the the Z out of it for now because rapiding on X Y and Z at the same time is dangerous if anything is in the way. Leave the spindle up high. ← I stress again PUT YOUR SPINDLE UP HIGH BEFORE YOU PRESS PLAY! ( Don’t ask me how I know this is so important)

Press play on the MDI and go to the new offset position. Make that new place the X and Y origin.  
Then move the spindle to a safe place and press the Z0 button on the controller to take it down to the Z0 of that permanent block.  
Then type in the MDI again G0 G90 Z.651 ← this is the number I computed earlier.  
Set that new place as the new Z0.

That’s it. ( it takes longer to explain it than to do it )  
You are now back to your original origin.  
If you take the time to setup this separate block and record these numbers before you start a big or expensive job you will not have to worry about finding your origin after a power failure either.

You will also note I wrote down “Roughed to .980 above Z0”  
That is so I can stop a 4 hour program, go into it latter and edit it to start right where I left off. That is a discussion for another day.

---

<div class="post-metadata">

**Author:** ![WaywardWoodworker](https://avatars.discourse-cdn.com/v4/letter/w/e79b87/32.png) [@WaywardWoodworker](https://forum.onefinitycnc.com/u/WaywardWoodworker)\
**Post date:** [March 17, 2023, 1:57am UTC](https://forum.onefinitycnc.com/t/keeping-zero-position/14115/58 "2023-03-17T01:57:18Z")

</div>

A vey good explanation using offsets to re establish a work offset or zero point to resume a program. If this is something that is a very common operation I would suggest looking into implementing proximity sensors for homing from stall homing, I have been able to repeatability home +/- .02mm using them (possibly more precise than this but my measuring instrument only shows .02mm graduations). Then I can apply the offset without the extra step of probing a previously fixed position.

Also I had decent success boring a .250 hole somewhere that could become my base point on my fixtures and jigs vs having a fixed block to work from. This was precise enough for reuse of a program to create a part over and over at different time. I affix the fixture somewhere on the waste board, align to the .250" hole in the fixture, insert stock, hit go.

---

<div class="post-metadata">

**Author:** ![349iq2345](https://avatars.discourse-cdn.com/v4/letter/3/bb73d2/32.png) [@349iq2345](https://forum.onefinitycnc.com/u/349iq2345)\
**Post date:** [March 17, 2023, 2:44am UTC](https://forum.onefinitycnc.com/t/keeping-zero-position/14115/59 "2023-03-17T02:44:03Z")

</div>

Hey Chris,

in fact you do the same as what @JDog does as [mentioned above](https://forum.onefinitycnc.com/t/keeping-zero-position/14115/49), which means to circumvent the unreliable [stall homing](https://forum.onefinitycnc.com/t/how-common-are-missed-steps/18352/8) by using the touch probe on a corner that is fixed on machine bed, thereby reducing the use of the touch probe to once per bootup period, and to achieve practically perfect repeatibility. Great!

But I agree to Derek @WaywardWoodworker that with [retrofitted inductive proximity sensors](https://forum.onefinitycnc.com/t/controller-software-tool-change-location-0-0-g54-g55-g56/10052/14) you would not even need this probing once, but just entering any value you like and it would be perfectly reliable.

As you can see on the datasheet of a typical inductive proximity sensor ([Omron E2B](https://www.ia.omron.com/products/family/3203/)), the moment when it is triggered is very predictable and therefore brings accurate homing repeatability.

 ![Omron_E2B__Proximity_Sensors_Datasheet_P010](https://us1.discourse-cdn.com/flex022/uploads/onefinitycnc/original/2X/d/d4ea22b72a776b5d248e41a2e264723ce51b0a1e.png)  
Source: [Omron E2B Inductive Cylindrical Proximity Sensor Datasheet](https://assets.omron.eu/downloads/datasheet/en/v3/d116_e2b_cylindrical_proximity_sensor_datasheet_en.pdf)

---

<div class="post-metadata">

**Author:** ![ChrisM](https://avatars.discourse-cdn.com/v4/letter/c/47e85d/32.png) [@ChrisM](https://forum.onefinitycnc.com/u/ChrisM)\
**Post date:** [March 17, 2023, 3:00am UTC](https://forum.onefinitycnc.com/t/keeping-zero-position/14115/60 "2023-03-17T03:00:16Z")

</div>

Hi Derek and Aiph5u,

I agree sensors are better than stall homing for this but I am trying to show how anybody with a stock Onefinity machine with no mods can get very accurate reliable results and does not have to leave the machine on to pickup where they left off. It just takes an extra 5 minutes before a carve to clamp any block of wood down somewhere to find a temporary origin on and record the numbers.

Also a question that comes up a lot is if someone has to change a tool but the Z0 surface they used is gone - what do they do?  
Just find the origin of that permanent block as I call it but on Z only. Then again in the MDI type the offset difference number you calculated for Z earlier. Go to that new place then make that the Z0 on the controller. Your back in business.

I guess I just want to stress that it is important to think and prepare for things like power failures and is possible to recover from if you make a plan before you start a carve.

[Previous page](https://forum.onefinitycnc.com/t/keeping-zero-position/14115.md?page=2)

[Next page](https://forum.onefinitycnc.com/t/keeping-zero-position/14115.md?page=4)
