<p>Yes, you read that correctly, you indeed push the filament 10 mm with <code>G1 E10</code> (if you started at a value of <code>E0</code> as in an absolute positioning <a href="https://marlinfw.org/docs/gcode/G090.html" rel="nofollow noreferrer">G90</a> or are using relatively positioning <a href="https://marlinfw.org/docs/gcode/G091.html" rel="nofollow noreferrer">G91</a>. Note that the <code>E</code> can also be interpreted as a volumetric flow value, but this depends if the option to interpret it as such is active. There used to be a lot of fuss a few years ago with Creality printers where the default was changed to volumetric flow. When slicing an object for extrusion length, such G-code file came out underextruded.</p>
<p>The translation from stepper motor rotation to the actual displacement is set by <code>Default Axis Steps Per Unit (linear=steps/mm, rotational=steps/°)</code> in the configuration file from Marlin:</p>
<pre><code>#                                     {  X,  Y,   Z,  E0 }
#define DEFAULT_AXIS_STEPS_PER_UNIT   { 80, 80, 400, 500 }
</code></pre>
<p>In the case above, 500 steps relate to 1 mm of displacement of your filament; for 10 mm, the stepper needs 5000 steps to get to that value. Depending of the amount of steps per revolution (e.g. NEMA 17 steppers are available in 200 steps or 400 steps per revolution) an the micro-stepping settings of your drivers, this value can differ between different printers and/or extruder setups/types.</p>
<p>Note that you do not need to confuse the filament travel path (the E=10 value in a G-code file created by a slicer) with the length coming out of the nozzle. The latter is determined by the nozzle diameter.</p>
<p>A pellet extruder is not different than a normal extruder, there is a relation between the amount of revolutions of the screw driver and the amount of filament it produces, in effect, the pellet extruder makes a &quot;tube&quot; of filament. The translation from rotation to filament production is generally given by the vendor of the extruder, if not, you could tune this afterwards using test prints.</p>

CC BY-SA 4.0
2024-04-11T14:23:20.320Z
You might mention that E values can be linear or volumetric. ;)
Davo
CC BY-SA 4.0
2024-04-11T17:20:14.593Z
@Davo Good point, that is a firmware setting! There used to be a lot of fuzz around this setting a few years ago as Creality sent out printers with the incorrect setting!
0scar
CC BY-SA 4.0
2024-04-03T11:29:10.833Z
2024-06-03T05:44:42.540Z
2024-06-03T05:44:42.540Z
0scar
<p>I understood on a fundamental level that E-value (in G-Code) was the length of filament pushed in millimetres. i.e. E=10 is 10 mm filament to push (with a firmware like Marlin translating this value to stepper motor RPM values).</p>
<p>Is that a correct statement?</p>
<p>Or does it sometimes indicate directly the RPM of steppers depending on a different firmware?</p>
<p>What happens to the E-value interpretation when working with a pellet extruder (such as a WASP3MT 3D printer) which uses spherical pellets and a screw extruder instead of filaments and stepper motors pushing said filament?</p>

CC BY-SA 4.0
2024-06-13T14:36:16.930Z
RPM ("rotations per minute" - *speed*) depends on the F parameter (feed speed) and indirectly, other parameters of G0/G1 and printer limits. E defines the rotation amount; how long the printer takes to extrude that amount, and how much in which part of the motion is calculated basing on motion of the print head.
SF.
<marlin><g-code><extrusion><stepper>
Does the E-Value always define the filament length extrusion in millimeters and/or does it directly give a stepper rotation?
Arthur Mamou-Mani
# Does the E-Value always define the filament length extrusion in millimeters and/or does it directly give a stepper rotation?

(Asked by: username_0 on 2024-03-28)

I understood on a fundamental level that E-value (in G-Code) was the length of filament pushed in millimetres. i.e. E=10 is 10 mm filament to push (with a firmware like Marlin translating this value to stepper motor RPM values).

Is that a correct statement?

Or does it sometimes indicate directly the RPM of steppers depending on a different firmware?

What happens to the E-value interpretation when working with a pellet extruder (such as a WASP3MT 3D printer) which uses spherical pellets and a screw extruder instead of filaments and stepper motors pushing said filament?

**Tags:** marlin, g-code, extrusion, stepper
> **Comments:**
> **username_1**: RPM ("rotations per minute" - *speed*) depends on the F parameter (feed speed) and indirectly, other parameters of G0/G1 and printer limits. E defines the rotation amount; how long the printer takes to extrude that amount, and how much in which part of the motion is calculated basing on motion of the print head.  

---

## 1 answers

### Answer by username_2 on 2024-04-03. Score: 1 | Accepted answer

Yes, you read that correctly, you indeed push the filament 10 mm with G1 E10 (if you started at a value of E0 as in an absolute positioning G90 or are using relatively positioning G91. Note that the E can also be interpreted as a volumetric flow value, but this depends if the option to interpret it as such is active. There used to be a lot of fuss a few years ago with Creality printers where the default was changed to volumetric flow. When slicing an object for extrusion length, such G-code file came out underextruded.
The translation from stepper motor rotation to the actual displacement is set by Default Axis Steps Per Unit (linear=steps/mm, rotational=steps/°) in the configuration file from Marlin:
#                                     {  X,  Y,   Z,  E0 }
#define DEFAULT_AXIS_STEPS_PER_UNIT   { 80, 80, 400, 500 }

In the case above, 500 steps relate to 1 mm of displacement of your filament; for 10 mm, the stepper needs 5000 steps to get to that value. Depending of the amount of steps per revolution (e.g. NEMA 17 steppers are available in 200 steps or 400 steps per revolution) an the micro-stepping settings of your drivers, this value can differ between different printers and/or extruder setups/types.
Note that you do not need to confuse the filament travel path (the E=10 value in a G-code file created by a slicer) with the length coming out of the nozzle. The latter is determined by the nozzle diameter.
A pellet extruder is not different than a normal extruder, there is a relation between the amount of revolutions of the screw driver and the amount of filament it produces, in effect, the pellet extruder makes a "tube" of filament. The translation from rotation to filament production is generally given by the vendor of the extruder, if not, you could tune this afterwards using test prints.

> **Comments:**
> **username_3**: You might mention that E values can be linear or volumetric. ;)  
> **username_2**: @Davo Good point, that is a firmware setting! There used to be a lot of fuzz around this setting a few years ago as Creality sent out printers with the incorrect setting!  

---

