Relative move affected by home offset I set a home offset on my Ender 3 running Marlin firmware so that it starts printing from the corner of a custom build surface which doesn't cover the entire bed:

M206 X-10 Y-10


Now, when I run this:

G1 X0 Y0 Z1


the head moved to 1&nbsp;mm above the bottom left most edge of the sticker (good!)

However, I notice when I do relative moves like this:

G91
G1 X-1 Y-1


The head actually moves in the opposite direction than you would expect, because it's subtracting the offset from the relative coordinates, which I didn't expect.

Put another way, the following G-code:

M206 X-10 Y-10
G91
G1 X0 Y0


Moves the head to x=20 y=20 measured against the original coordinate system.

Is this expected? It seems rather undesirable behaviour to me. Bug?
Yes this is expected, with M206 you set a relative offset!


  The values specified are added to the endstop position when the axes are referenced.


reference: G-code wiki M206

So when you issue the command M206 X-10 Y-10 twice (or already have an offset set), the offset is 20, 20 (X, Y) and when instructed to move "nothing" (G1 X0 Y0) the printer moves "nothing" from (thus to!) the newly defined origin at (20, 20). Basically it is relative movement from the set coordinate system, not the position of the carriage. In effect you have changed the reference frame, the printer just responds to that action.