<p>To supplement the accepted answer, and answer a question in the answer's comments (which should not be there), consider the E value as another axis - the axis of the filament.</p>
<p>If you executed:</p>
<pre><code>G92 E0     ; Reset the extruder's origin
G1 F200 E3 ; Extrude 3 millimetres of filament at a rate of 200 units per second
</code></pre>
<p>and then went on to printing, the first filament move would have to take you from E3 to whatever E value the next move specified.</p>
<p>If the next move assumed starting at E0, you'd already be 3 mm further along, and the first move would probably be a retract, so for example, if the next printing move was:</p>
<pre><code>G1 Xnnn Ynnn E0.5 ; Extrude 0.5 millimetres of filament
</code></pre>
<p>then <strong>instead of extruding 0.5 mm, you would actually retract 2.5 mm</strong>, to get from 3.0 to 0.5. Just like moving in a negative direction on any other axis.</p>

CC BY-SA 4.0
2020-07-20T08:32:31.157Z
I think the comment refers to the first G92, not the second.
0scar
CC BY-SA 4.0
2020-08-10T16:48:43.937Z
@0scar - Davo has made a good point about the question in comments under Mick's answer... Davo, I assume you mean [the comment from Michael](https://3dprinting.stackexchange.com/questions/4826/what-is-g92-used-for-in-g-code/13935#comment21278_4828) (who is not the OP)?. That question (in the comments) should really have been a new question, referring back to this question (I guess), to which Davo's answer would have been the answer to... if you follow me... Man, this is a bit of a muddle..! :-)
Greenonline
CC BY-SA 4.0
2020-08-10T17:28:48.867Z
@Greenonline I can post that question as a stand-alone, and self-answer it, if you think that will improve the site.
Davo
CC BY-SA 4.0
2020-08-10T17:31:01.397Z
Hi Davo. Yeah, that's an idea I guess... However, I have just left Michael [a comment](https://3dprinting.stackexchange.com/questions/4826/what-is-g92-used-for-in-g-code/13935?noredirect=1#comment25581_4828) to see if he wants to post his comment as a new question though. Maybe we should wait to see if he wants to?
Greenonline
CC BY-SA 4.0
2020-08-10T17:32:26.053Z
Yes, absolutely. :)
Davo
CC BY-SA 4.0
2020-11-07T12:25:31.653Z
Thank you so much for this great explanation. I was wondering why my initial purtge of filament always results in a massive retraction and this is exactly why. I had my start script modifyed to achieve a nice filled nozzle at start
LostKatana
CC BY-SA 4.0
2020-06-23T20:00:06.277Z
2020-08-10T17:27:32.547Z
2020-08-10T17:27:32.547Z
Davo
<p>The <code>G92</code> command is used to set the start position (origin) of one of more axes (including the current extruder) to any arbitrary value. The command <code>G92 E0</code> is often used to perform retraction and nozzle priming. For example, the following commands are often used in start-gcode sequences (prologues) to prime the current extruder by extruding a small amount of filament:</p>

<pre><code>G92 E0     ; Reset the extruder's origin
G1 F200 E3 ; Extrude 3 millimetres of filament
G92 E0     ; Reset the extruder's origin
</code></pre>

<p><a href="http://reprap.org/wiki/G-code#G92:_Set_Position" rel="noreferrer">RepRap Wiki: G92: Set Position</a></p>

CC BY-SA 4.0
2020-01-02T13:38:33.430Z
But what does it mean to reset the extruders origin? What would happen if you did the “G1 F200 E3” without first resetting the extruders origin? G92 makes perfect sense for x, y, and z, but can’t wrap my head around it for the extruder.
Michael
CC BY-SA 4.0
2020-07-20T08:28:30.887Z
@Michael Why, it is exactly the same. Maybe you should not read it as "reset", but as "set" instead. From the top of my head I don't know what is taken when you omitted the first `G92 E0`, I assume it will start at zero anyways. But, it sets the filament extrusion to a certain length to zero, after priming it makes perfect sense to set the length to zero. Slicers (some) set the length back to zero after completion of a print layer, this prevents very large values for the filament length.
0scar
CC BY-SA 4.0
2020-08-10T16:59:32.523Z
Hi @Michael , thanks for your question, as I was thinking the same thing. However, as you're probably aware, questions (even good questions like yours) shouldn't be in comments. Could you post your question as a new question (referring back to Mick's answer - as it is the source of your query), and then Davo's answer below would make more sense there... if you see what I mean? :-)
Greenonline
CC BY-SA 4.0
2020-08-10T19:27:20.437Z
@Greenonline my question would make no sense as its own question. It only makes sense in the context of this answer.
Michael
CC BY-SA 4.0
2020-08-10T21:28:08.070Z
@Michael That is exactly why you should refer to this answer! The context can be found through the reference, this is not uncommon, this has happened more often. Sometimes answers spawn other questions.
0scar
CC BY-SA 3.0
2017-10-29T02:28:35.183Z
2017-10-29T02:40:59.747Z
2017-10-29T02:40:59.747Z
Mick
<p>On the reprap wiki it says using Znnn it sets a new axis position.  But then it says &quot;No physical motion will occur&quot;. What would the line <code>G92 E0</code> be used for?</p>

<g-code>
What is G92 used for in G-code
Keith Bybee
# What is G92 used for in G-code

(Asked by: username_0 on 2017-10-29)

On the reprap wiki it says using Znnn it sets a new axis position. But then it says "No physical motion will occur". What would the line `G92 E0` be used for?

**Tags:** g-code


---

## 2 answers

### Answer by username_5 on 2017-10-29. Score: 13 | Accepted answer

The `G92` command is used to set the start position (origin) of one of more axes (including the current extruder) to any arbitrary value. The command `G92 E0` is often used to perform retraction and nozzle priming. For example, the following commands are often used in start-gcode sequences (prologues) to prime the current extruder by extruding a small amount of filament:

```
G92 E0     ; Reset the extruder's origin
G1 F200 E3 ; Extrude 3 millimetres of filament
G92 E0     ; Reset the extruder's origin

```

[RepRap Wiki: G92: Set Position](http://reprap.org/wiki/G-code#G92:_Set_Position)

> **Comments:**
> **username_6**: But what does it mean to reset the extruders origin? What would happen if you did the “G1 F200 E3” without first resetting the extruders origin? G92 makes perfect sense for x, y, and z, but can’t wrap my head around it for the extruder.  
> **username_2**: @username_6 Why, it is exactly the same. Maybe you should not read it as "reset", but as "set" instead. From the top of my head I don't know what is taken when you omitted the first `G92 E0`, I assume it will start at zero anyways. But, it sets the filament extrusion to a certain length to zero, after priming it makes perfect sense to set the length to zero. Slicers (some) set the length back to zero after completion of a print layer, this prevents very large values for the filament length.  
> **username_3**: Hi @username_6 , thanks for your question, as I was thinking the same thing. However, as you're probably aware, questions (even good questions like yours) shouldn't be in comments. Could you post your question as a new question (referring back to username_5's answer - as it is the source of your query), and then username_1's answer below would make more sense there... if you see what I mean? :-)  
> **username_6**: @username_3 my question would make no sense as its own question. It only makes sense in the context of this answer.  
> **username_2**: @username_6 That is exactly why you should refer to this answer! The context can be found through the reference, this is not uncommon, this has happened more often. Sometimes answers spawn other questions.  

---

### Answer by username_1 on 2020-06-23. Score: 6

To supplement the accepted answer, and answer a question in the answer's comments (which should not be there), consider the E value as another axis - the axis of the filament.

If you executed:

```
G92 E0     ; Reset the extruder's origin
G1 F200 E3 ; Extrude 3 millimetres of filament at a rate of 200 units per second

```

and then went on to printing, the first filament move would have to take you from E3 to whatever E value the next move specified.

If the next move assumed starting at E0, you'd already be 3 mm further along, and the first move would probably be a retract, so for example, if the next printing move was:

```
G1 Xnnn Ynnn E0.5 ; Extrude 0.5 millimetres of filament

```

then **instead of extruding 0.5 mm, you would actually retract 2.5 mm**, to get from 3.0 to 0.5. Just like moving in a negative direction on any other axis.

> **Comments:**
> **username_2**: I think the comment refers to the first G92, not the second.  
> **username_3**: @username_2 - username_1 has made a good point about the question in comments under username_5's answer... username_1, I assume you mean [the comment from username_6](https://3dprinting.stackexchange.com/questions/4826/what-is-g92-used-for-in-g-code/13935#comment21278_4828) (who is not the OP)?. That question (in the comments) should really have been a new question, referring back to this question (I guess), to which username_1's answer would have been the answer to... if you follow me... Man, this is a bit of a muddle..! :-)  
> **username_1**: @username_3 I can post that question as a stand-alone, and self-answer it, if you think that will improve the site.  
> **username_3**: Hi username_1. Yeah, that's an idea I guess... However, I have just left username_6 [a comment](https://3dprinting.stackexchange.com/questions/4826/what-is-g92-used-for-in-g-code/13935?noredirect=1#comment25581_4828) to see if he wants to post his comment as a new question though. Maybe we should wait to see if he wants to?  
> **username_1**: Yes, absolutely. :)  
> **username_4**: Thank you so much for this great explanation. I was wondering why my initial purtge of filament always results in a massive retraction and this is exactly why. I had my start script modifyed to achieve a nice filled nozzle at start  

---

