Lost X-Y zero after homing

So this one was a bit strange. I had a multi-part job, where it did a 2 hour complex raster 3D roughing. I then swapped into the ball-nose finish pass, and in doing so of course slightly nudged the x-axis, so rehomed. When I did that I noted that the x-y zero was now waaaaaay up top right very close to crashing the top right corner. The homing worked perfectly and I had homed before setting the initial x-y zero to the bottom left corner of the stock piece. So of course optical alignment is almost impossible on a 3D carved piece since the original corner was gone anyway even if I wanted to (I should probably go to a 3-axis touch plate) to make this a non-issue, although the 3D carving does make the placing of a 3D touch plate hard).

Correct me if I am wrong here, but I should be able to rehome at any time [obviously not during a job] and it will not lose the X-Y zero (e.g. the offset from the machine XY zero to the WCS XY zero)? Or is that not true?

How was work zero assigned to the controller after the initial homing sequence?
(What command, G10 or G92 or whatever)

Work zero is stored as an offset to machine zero so yes, you should be able to rehome at will and keep position. G10 is persistent and G92 is not for instance.

Whats your source design program?
Work offsets enabled by fault? (G54,G55,…,G59)

I use the little set zero button on each axis on the DRO in CNCJS I do each axis independently


I use V-Carve pro mostly

Yeah, they should be good… this workflow have worked for you in the past right?
@NeilFerreri1 know CNCJS well, perhaps he might be able to chip in?

I dont know V-carve though…certain the design zero model = your intended work zero?
I know in Fusion360 I can add an arbitrary fixture and use that as work reference.

Just 2cents, for what its worth on a Sunday :wink:

@HenryFeldman, You absolutely should be able to home and return to the last zero set.

@HaldorLonningdal is right on here. Did you do a temporary zero (G92) or a permanent (G10L20)? Which version of CNCjs on which OS? Are you remotely accessing a pi?

I am running cncjs on Ubuntu 20.04 on a quad-core celeron based machine (so legit x86). I believe I am on the latest version. cncjs is running on a directly connected machine so no remote access, just have a monitor arm bolted to the CNC table, which I am standing in front of. The g-code is generated via V-carve pro (latest) with the x-carve post. But the x-y zero is done through cncjs’s UI.

Also what does temporary mean? How would the x-controller know I “finished” a job, I didn’t shut it off (I almost never do) so why would it reset the X-Y zero, and if it did reset kind of weird it picks a spot way, way up +X/+Y to reset to (rather than 0 offset from the machine coordinates…

So in looking at the console cncjs does a G10.

It seems to be working as expected for homing, so not sure what was happening…