Homing, probing and coordinates

Hi all, newbie here.
I run homing procedure by $h (I use console, not Easel). Visually homing is great: all three switches work as expected, but… After the homing I see the machine “thinks” it is at x=-749.000,y=-749.000,z=-1:

<Idle|MPos:-749.000,-749.000,-1.000|Bf:15,127|FS:0,0>

Why minus_something, why not zero? Is it correct at all?
If I home machine by easel, then the coordinates are 0,0,0, so this approach works properly:

<Idle|MPos:0.000,0.000,0.000|Bf:15,127|FS:0,0|WCO:0.000,0.000,-0.000>

If then I want to set work zero to x20 y20 - how should I do it? I’m confused a lot by g10 / g91 / g92 (perhaps I haven’t found nice documentation yet, Wikipedia article is not easy reading in this case, at least for non-English native).

Why if I try to run z-probe, sometimes spindle moves up? I do z-probe this way:
$h
g0 z-70 #fast move down close to material
G38.2 Z-15 F10 #slow move to probe. Here it starts to move up.

Could anyone advise, please? Thank you.
p.s: jogging in any app or from console is in the correct direction - except that z-probe misbehavior.

It doesnt really matter.
Its common for CNC machines to have a negative work space, as it subtract material, aka taking away. Just old habit.
The main purpose for homing the machine ($H) is to syncronize design with machine.

You may be be in absolute mode (G90).
Try the same code but enter G91 first, to enable Incremental mode.
If you are in Absolute mode (G90) Z-70 is lower than Z-15

Setting work zero is usually done by jogging the bit to a material reference point (say left corner or middle of work piece)
In Easel this is the point where you click Confirm home position. This is stored as an offset to “machine zero” and persist between power cycles. (Untill changed)

Sending the code G10 P1 L20 X0 Y0 Z0 will also define work zero (G54)

1 Like

Traditionally home is in that location on milling machines, according to what I have read. You can reflash your X Controller to change that. I have the same problem and the sound of reflashing the Arduino makes me nervous ,so I just home .close and then open the UGS to read 000.

1 Like

Thank you both, it works now despite still show negatives.

I hesitate to update controller code but definitely will keep this option in mind.