<p>Yes this is expected, with <code>M206</code> you set a relative offset!</p>

<blockquote>
  <p>The values specified are added to the endstop position when the axes are referenced.</p>
</blockquote>

<p>reference: <a href="https://reprap.org/wiki/G-code#M206:_Offset_axes" rel="nofollow noreferrer">G-code wiki <code>M206</code></a></p>

<p>So when you issue the command <code>M206 X-10 Y-10</code> twice (or already have an offset set), the offset is 20, 20 (X, Y) and when instructed to move "nothing" (<code>G1 X0 Y0</code>) the printer moves "nothing" <strong>from</strong> (<em>thus</em> <strong>to</strong>!) 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.</p>

CC BY-SA 4.0
2020-04-03T07:13:07.257Z
2020-04-03T12:51:23.197Z
2020-04-03T12:51:23.197Z
0scar
<p>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:</p>

<pre><code>M206 X-10 Y-10
</code></pre>

<p>Now, when I run this:</p>

<pre><code>G1 X0 Y0 Z1
</code></pre>

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

<p>However, I notice when I do relative moves like this:</p>

<pre><code>G91
G1 X-1 Y-1
</code></pre>

<p>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.</p>

<p>Put another way, the following G-code:</p>

<pre><code>M206 X-10 Y-10
G91
G1 X0 Y0
</code></pre>

<p>Moves the head to x=20 y=20 measured against the original coordinate system.</p>

<p>Is this expected? It seems rather undesirable behaviour to me. Bug?</p>

CC BY-SA 4.0
2020-04-03T07:14:43.250Z
Hi welcome to 3DPrinting.SE!
0scar
<marlin><creality-ender-3><g-code>
Relative move affected by home offset
Matthew Sainsbury
# Relative move affected by home offset

(Asked by: username_0 on 2020-04-03)

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 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?

**Tags:** marlin, creality-ender-3, g-code

> **Comments:**
> **username_1**: Hi welcome to 3DPrinting.SE!  

---

## 1 answers

### Answer by username_1 on 2020-04-03. Score: 1

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`](https://reprap.org/wiki/G-code#M206:_Offset_axes)

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.


---

