<p>According to the description, the drive gear you have has a <code>10.8mm</code> diameter. This means that (in the ideal case) one full rotation of the drive gear will advance a length of filament equal to its circumference, which is <code>pi x 10.8mm</code> or approximately <code>33.93mm</code>.</p>

<p>Your motor rotates <code>1.8</code> degrees per step, so it takes <code>360 / 1.8 = 200 steps</code> for a full rotation. Since you are using 16x microstepping, this is multiplied to <code>200 x 16 = 3200 steps</code>.</p>

<p>You thus end up with a steps per mm value of <code>3200 / 33.93 = 94.31 steps/mm</code>.</p>

<p>You might need to calibrate this further, for instance by extruding a set length of filament (e.g. 100mm) and measuring how much is actually extruded, and then compensating the steps/mm value to get you closer to the desired 100mm. A simple way to measure this is to put a mark on your filament at 150mm from the extruder, and then (after extruding 100mm) measure how close the mark is to the extruder (which should be 50mm) However, this theoretically computed value should be a good starting point. Note that the speed you do this test at should be close to your normal printing speed, since extruding at a much higher (resp. lower) speed will falsely lead you to believe you are underextruding (resp. overextruding).</p>

CC BY-SA 3.0
2017-07-26T07:11:58.313Z
Thank you so what i do understand is following in my marlin firmware.

define DEFAULT_AXIS_STEPS_PER_UNIT { 80,80, 4000,  94.31 }
define DEFAULT_MAX_FEEDRATE { 500, 500, 3,  94.31 }
define DEFAULT_MAX_ACCELERATION { 9000, 9000, 100, 3200 }

Is this correct. I made printer called graber i3 and got code from GitHub my exstruder are different from the one they using.

Regards

Gerhard
Gerhard Nell
CC BY-SA 3.0
2017-07-26T07:23:27.160Z
You only need to change the steps per unit. It doesn't make sense to change the max feedrate to the steps per mm value.
Tom van der Zanden
CC BY-SA 3.0
2017-07-26T00:33:33.157Z
2017-07-26T00:33:33.157Z
Tom van der Zanden
<p>Simplest way to calculate your extrusion is:</p>

<p>Set your number of perimeters walls 1
top and bottom layer 0
infill 0%
and print simple 20x20x20 cube 
look at the wall thickness with caliper and compare your extrusion width value on your slicer software</p>

CC BY-SA 3.0
2017-07-28T20:47:01.277Z
2017-07-28T20:47:01.277Z
onurozturk
<p>I have Ramps 1.4 and would like to get answer on extrusion in Marlin firmware. I have NEMA 17 stepper motor 1.8 deg, set to 1/16 step. Mk7 direct drive.
38 teeth in extruder drive gear. I bought it from <a href="https://www.robotics.org.za/RDKIT-00?search=extru" rel="nofollow noreferrer">this website</a>.</p>

<p>Here are my current settings:</p>

<pre><code>#define DEFAULT_AXIS_STEPS_PER_UNIT   { 80,80, 4000, 180 }
#define DEFAULT_MAX_FEEDRATE          { 500, 500, 3, 45 } 
#define DEFAULT_MAX_ACCELERATION      { 9000, 9000, 100, 300 }
</code></pre>

<p>I am using ABS 1.75 filament and a 0.4 nozzle.</p>

<filament><extruder><motor>
Ramps 1.4 1.8 stepper motor extrusion calculation
Gerhard Nell
# Ramps 1.4 1.8 stepper motor extrusion calculation

(Asked by: username_0 on 2017-07-25)

I have Ramps 1.4 and would like to get answer on extrusion in Marlin firmware. I have NEMA 17 stepper motor 1.8 deg, set to 1/16 step. Mk7 direct drive.
38 teeth in extruder drive gear. I bought it from this website.
Here are my current settings:
#define DEFAULT_AXIS_STEPS_PER_UNIT   { 80,80, 4000, 180 }
#define DEFAULT_MAX_FEEDRATE          { 500, 500, 3, 45 } 
#define DEFAULT_MAX_ACCELERATION      { 9000, 9000, 100, 300 }

I am using ABS 1.75 filament and a 0.4 nozzle.

**Tags:** filament, extruder, motor

---

## 2 answers

### Answer by username_1 on 2017-07-26. Score: 4

According to the description, the drive gear you have has a `10.8mm` diameter. This means that (in the ideal case) one full rotation of the drive gear will advance a length of filament equal to its circumference, which is `pi x 10.8mm` or approximately `33.93mm`.

Your motor rotates `1.8` degrees per step, so it takes `360 / 1.8 = 200 steps` for a full rotation. Since you are using 16x microstepping, this is multiplied to `200 x 16 = 3200 steps`.

You thus end up with a steps per mm value of `3200 / 33.93 = 94.31 steps/mm`.

You might need to calibrate this further, for instance by extruding a set length of filament (e.g. 100mm) and measuring how much is actually extruded, and then compensating the steps/mm value to get you closer to the desired 100mm. A simple way to measure this is to put a mark on your filament at 150mm from the extruder, and then (after extruding 100mm) measure how close the mark is to the extruder (which should be 50mm) However, this theoretically computed value should be a good starting point. Note that the speed you do this test at should be close to your normal printing speed, since extruding at a much higher (resp. lower) speed will falsely lead you to believe you are underextruding (resp. overextruding).

> **Comments:**
> **username_0**: Thank you so what i do understand is following in my marlin firmware.  define DEFAULT_AXIS_STEPS_PER_UNIT { 80,80, 4000,  94.31 } define DEFAULT_MAX_FEEDRATE { 500, 500, 3,  94.31 } define DEFAULT_MAX_ACCELERATION { 9000, 9000, 100, 3200 }  Is this correct. I made printer called graber i3 and got code from GitHub my exstruder are different from the one they using.  Regards  Gerhard  
> **username_1**: You only need to change the steps per unit. It doesn't make sense to change the max feedrate to the steps per mm value.  

---

### Answer by username_2 on 2017-07-28. Score: 0

Simplest way to calculate your extrusion is:

Set your number of perimeters walls 1
top and bottom layer 0
infill 0%
and print simple 20x20x20 cube
look at the wall thickness with caliper and compare your extrusion width value on your slicer software


---

